Presentation is loading. Please wait.

Presentation is loading. Please wait.

EMB306 Building Windows CE Devices With DX Support John L. Marcantonio Program Manager Windows CE Multimedia Microsoft Corporation.

Similar presentations

Presentation on theme: "EMB306 Building Windows CE Devices With DX Support John L. Marcantonio Program Manager Windows CE Multimedia Microsoft Corporation."— Presentation transcript:

1 EMB306 Building Windows CE Devices With DX Support John L. Marcantonio Program Manager Windows CE Multimedia Microsoft Corporation


3 M anagement T ools C ommunications & M essaging Device Update Agent Software Update Services Live Communications Server Exchange Server Internet Security and Acceleration Server Speech Server Image Update L ocation S ervices M ultimedia MapPoint DirectX Windows Media Visual Studio 2005 D evelopment T ools MFC 8.0, ATL 8.0 Win32 N ative M anaged S erver S ide L ightweight R elational SQL Server 2005 Express EditionEDB D ata P rogramming M odel D evice B uilding T ools D evice B uilding T ools H ardware/ D rivers Windows XP DDK Windows Embedded Studio Platform Builder OEM/IHV Supplied BSP (ARM, SH4, MIPS) OEM Hardware and Standard Drivers Standard PC Hardware and Drivers SQL Server 2005SQL Server 2005 Mobile Edition ASP.NET Mobile ControlsASP.NET.NET Compact Framework.NET Framework Microsoft Operations Manager Systems Management Server

4 Agenda Types of Graphics Support Device Considerations Building Devices With DX Graphics Support Driver Design and API Features DemosQuestions

5 Types Of Graphics Support Two Dimensional (2D) Ranging from SW windowing controls to HW accelerated routines Primarily Surface management and presentation Ex: Text generation, images, overlays, color space conversion Three Dimensional (3D) 3D Scene generation Model design and animation Scene rendered special effects Ex: Lighting, texturing, fog

6 Application Classes 2D application development “Windows” applications Ex: Common Controls, window forms Media Applications Video playback, still imaging Gaming Content Casual gaming (Solitaire) 3D application development Telematics High performance gaming Application UI

7 Device Considerations What is the end goal of the device? Game machine Pachinko, ‘Gizmondo’ Consider HW accelerated 2D and 3D Media player Portable media players Consider 2D accelerated API Portable texting device SW 2D may be sufficient 3D may be too much Chose the technologies that will enable the key device scenarios Deliver on device strengths while minimizing BOM HW acceleration might not be required to achieve device scenarios HW acceleration is not only about performance Power consumption

8 Graphics Options Graphics Device Interface (GDI) Controls display of text and graphics Derived from desktop GDI model DirectDraw HW accelerated support for 2D graphics Derived from DX 6.4 Direct3D Mobile HW / SW acceleration for 3D development All technologies architected to provide maximum functionality while balancing characteristics of embedded devices Memory footprint, RAM utilization, breadth of HW architectures

9 Building DX Devices With Platform Builder

10 GDI Design Based on the desktop GDI graphics model Creates uniform knowledge base and consistent platforms Familiarity with desktop APIs and behavior Does not include all desktop functionality Created for devices with limited resources Allows for low footprint implementation while providing breadth of GDI functionality

11 GDI Driver Creation GPE (Graphics Primitive Engine) Device Independent Bitmap (DIB) design Classes used to aid driver development Handles all communication with the DDI Handles default drawing Video buffers are accessible in system address space Video buffer is non-banked Video buffer is non-planar and has one plane Video buffers have one of the following bits-per-pixel: 1, 2, 4, 8, 16, 24, or 32 A 5-, 6-, or 15-bpp driver cannot be GPE-based – though can be exposed GPE enables device-specific accelerations for the drawing of either raster (bitmap) or vector (lines and filled areas) graphic primitives

12 GPE

13 GDI Raster Operations (ROPs) Also known as BLTs GPE uses an emulation library for basic raster ops Found at: %_WINCEROOT%\Public\Common\OAK\Drivers\Display\Emul Can be removed for driver development to leverage HW accelerated paths Set SYSGEN_GPE_NOEMUL

14 GDI Device Contexts Determines target of GDI functionality Physical devices Display controller Printer Logical devices Memory device Contains device interaction attributes Abstracts information required to output to device Control operating modes Text and background colors Pen or brush mixing modes with display surface colors

15 GDI Drawing Objects Pens Used to draw lines and curves Brushes Fills the interiors of enclosed surfaces Fonts Output text to the target device

16 DirectX Design Designed to abstract device characteristics HW and SW paths abstracted from the application developer DirectX Capability Bits (CAPS Bits) Foundation of DX architecture Can be queried to determine device functionality and ‘fast paths’ (HW acceleration) Queried from application at runtime Single application can leverage breadth of target architectures

17 DirectDraw Features Functional overlaps with GDI Bit-block transfers (BLTs) Page flipping and multiple back buffers Overlays Placing one image surface over another on the video display Alpha source over destination blending Blending two surfaces using the source alpha image component Video YUV pixel formats and color conversion Direct video access to the frame buffer

18 DirectDraw Architecture

19 DDGPE Similar to GDI GPE driver classes Can be derived from GPE classes to streamline driver development Emulation and HW support DDHEL Hardware Emulation Layer Designed for SW fallback of routines not supported in device HW DDHAL Hardware Abstraction Layer Leverage device HW acceleration for specific routines Calls passed directly to accelerators


21 DirectDraw Driver Considerations Port or scratch development? Do have you an existing driver for your target platform / graphics chipset? Existing driver code could be leveraged for many routines – particularly HW access What version was the driver developed for? D3D9 driver might require too much back porting Porting from an earlier CE driver might be cost effective What functionality are you looking to expose? Limited features for device scenarios or general purpose Color conversion or overlays for video HW flipping for high speed game applications Are you leveraging an existing GPE driver for CE? This will provide a solid foundation for the graphics system to start from

22 Direct3D Mobile Complete 3D API derived from the desktop model Based on DX8 API signatures Includes some aspects of DX9 Architected specifically for mobile and embedded devices Ultra small footprint (~65KB) No SW fallback in runtime Type Independent Data Support A compliant D3DM driver requires support for both IEEE 32-bit Floats 16.16 Fixed Point Fixed Function Pipeline Only D3DM does not support programmable pipelines VS/PS support being considered for future revisions D3DM is not tied explicitly to Direct Draw Direct Draw surface management can be leveraged by SW based D3DM drivers

23 D3DM Architecture D3DM is based on a Thin API / Thick Driver Architecture API Middleware Call Transport Synchronization OS Integration Driver (~100KB+) – Actual Drawing Services Pure SW (CPU Only) SW + HW Assist (SIMD, DSP) Pure HW (External Graphics Controller) Simplified DDI Compared to the desktop the DDI complexity has been reduced significantly (~30 to ~10)

24 D3DM Driver Types Locally Hooked Driver Loads the D3DM driver in app process space Leverage Direct Draw for surface management to frame buffer Primarily for SW based drivers Remotely Hooked Driver Loaded in GWES Identical to CE display driver architecture Designed to access graphics HW Hybrid Model Combined traits of local and remote hooked

25 D3DM NULL Driver Created specifically for D3DM driver writers ‘Fill in the functions’ Strongly recommended as a starting point for D3DM driver development Core functionality and design already created for you Provides a stable starting point to work from Skeletal framework for D3DM driver design including Entry points Command token generation Debug zones and error checking

26 D3DM Reference Driver Complete SW driver implementation of D3DM v1.0 definition Not performance oriented, designed as a QA tool Used extensively in the D3DM CETK suite Completely functional in a runtime environment Can be used for prototype development if no production driver is currently available While a non-optimized solution, ‘reasonable’ performance can be obtained on high end devices

27 Direct3D Mobile Resources

28 While at MEDC 2005… Fill out an evaluation for this session Randomly selected instant WIN prizes! Randomly selected instant WIN prizes! Use real technology in a lab Instructor led Reef E/F & Breakers L Self-paced Reef B/C Self-paced Reef B/C Visit the Microsoft Product Pavilion in the Exhibit Hall Shorelines B in the Exhibit Hall Shorelines B

29 After The Conference… Develop Build InstallBuildJoin Install Enter Enter Join Full-featured trial versions of Windows CE and/or Windows XP Embedded Cool stuff & tell us about it: Windows Embedded Partner Program: Windows Mobile 5.0 Eval Kit including Visual Studio 2005 Beta 2 Mobile2Market Contest and win up to $25000: Microsoft Solutions Partner Program:

30 Tools & Resources embedded microsoft.public. windowsxp.embedded windowsce.platbuilder windowsce.platbuilder mikehall Windows CE 5.0 Eval Kit Windows XP Embedded Eval Kit mobility microsoft.public. pocketpc.developer smartphone.developer dotnet.framework.compactframework windowsmobile vsdteam netcfteam Windows Mobile 5.0 Eval Kit Websites Newsgroups Blogs Tools Build Develop

31 Questions

32 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Download ppt "EMB306 Building Windows CE Devices With DX Support John L. Marcantonio Program Manager Windows CE Multimedia Microsoft Corporation."

Similar presentations

Ads by Google