FireMonkey Deep Dive The Next Generation of Business Application Development Consumer Software Renaissance • • • • Media and graphics Rich user experiences Intuitive and interactive – easy to learn Simulated real world physics Touch and motion interaction Business/Industry Software Stuck in Past • 90’s Windows user experiences • Confined to mouse/keyboard interaction • Complex to learn - slow to use Key Markets • • • • • ISV’s / Packaged Software Healthcare / Medical Manufacturing Financial Services Telecommunications • • • • • Energy Aviation & Automotive BioSciences Pharmaceuticals Utilities User Experience FireMonkey UE Richness VCL MFC UE Performance Business SW is stuck here Introducing… FireMonkey! FireMonkey • • • • Rich Application Platform for Business Native CPU and GPU performance Built-in Enterprise Database connectivity Windows, Mac, and iOS Managed RIA FireMonkey is not … HTML5/CSS3 Game Engine FireMonkey is… App Development Platform C++Builder Windows Delphi Mac OS iOS VCL and FireMonkey Win Mac VCL FM iOS Native CPU/GPU Application Platform • Compile natively to Windows, Mac, and iOS • Application, Database, and Animation are CPU powered • All UI, Graphics, and Effects are GPU powered HD Forms • • • • • High performance GPU powered Scalable Vector Uis Maximum resolution on any device Hundreds of visual UI components GPU based Style Engine to control UI look & feel HUDs with transparencies and transition effects 3D Forms • GPU powered 3D Forms • Hardware based lighting, textures, and animation • 3D Forms can contain HD UI elements and effects Effects & Animation • 50+ Photoshop-like GPU Effects • Simultaneous multiple effects without performance hit • Path based animation for all HD and 3D UI and graphics FireMonkey Overview • Cross-platform • Modern themed/skinned UIs • Real-time image and animation effects • Direct2D, D3D, Quartz and OpenGL • Native Delphi and C++ • 100% Object Pascal Framework FireMonkey technology • Mac • HD use Quartz • 3D rendering on Mac is OpenGL • Windows • Direct2D for HD • Direct3D for 3D • FireMonkey use GDI+ for HD vector forms/controls, when Direct2D is not available “FireMonkey” – HD, 3D, and GPU • FireMonkey takes advantage of GPU whenever possible • HD Form can be rendered on a computer without a GPU with a few restrictions: – No TViewport3D, No Shader based Filters • A 3D Form requires a GPU - performs sophisticated transitions and manipulations of the user interface… … in other words, a 3D form may be the best choice for building a sophisticated HD user interface “FireMonkey” Architecture • TFmxObject = class(TComponent) – – – – – – – Create, destroy and release object Cloning, storing and loading object from a stream Child object manipulations (add, remove, search) Free notifications Abstraction layer for tab order Support for FireMonkey resources Support for FireMonkey animations • IControl – Handles Focus, Mouse and Keyboard events – Implemented by TControl and TControl3D “FireMonkey” Architecture • IRoot – Interface for top-level containers – Handles Focused, Captured, Active controls – Implemented by TCustomForm • IScene – Container interface for 2D objects – Implemented by TForm, TCustomLayer3D • IViewport3D – Container interface for 3D objects – Implemented by TForm3D, TViewport3D FireMonkey Styles • FireMonkey Stylebook – – – – Any object inherited from TBaseObject Set StyleName to identify Found using FindStyleResource method from parented object Stored In / Loaded From a stream file • FireMonkey Styles – – – – A collection of FireMonkey resource style WPF type of implementation Styles can be inherited, saved, loaded Look and Feel style files for Win7, MacOS, iOS and custom themes “FireMonkey” – Animation • • • • • Used to modify property values over time Machine speed independent Can be looped and / or reversed Can follow a variety of time / value curves Can be triggered by MouseOver, Focus, Visibility, etc. “FireMonkey” – Effects / Filters • Can be applied to bitmaps • Can be applied to controls • Can be triggered by MouseOver, Focus, Visibility, etc. • GPU shader based implementation 3D Programming • One object model to target multiple platforms • FM uses right-handed orientation in 3D • Hardware acceleration – Windows – DirectX – MacOS – OpenGL – iOS – OpenGL ES FireMonkey and Cross Platform • FM is a platform that supports – – – – RTL GUI Database Operating System • Compile / Run on all platforms we support * • * subset for mobile platforms Fire Monkey - Demos • • • • • Your first FireMonkey App Windows Mac OS X HD / 3D GPU/Shaders Summary • FireMonkey - The Next Generation Business Application Platform • Fully harness the powerful GPU graphics hardware • Rapidly build visually spectacular applications • Invest in one platform and deploy to numerous OS-s • Delphi and C++ compiled, native executable • Fully programmable animations and effects • Your imagination is the only limit !!! • Go FIREMONKEY !!!