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

Slides:



Advertisements
Similar presentations
Microsoft Windows NT Embedded 4.0
Advertisements

Windows Presentation Foundation ("Avalon") Overview of Windows Vista Graphics Pablo Fernicola PRS 309 Group Program Manager Microsoft Corporation
EMB304 Building Trustworthy Windows CE Embedded Devices and Applications Ganapathy Raman Program Manager Windows CE Security Team Microsoft Corporation.
64bit Development Overview March 28 Microsoft. Objectives Learn about the current 64-bit platforms from a hardware, software and tools perspective Review.
3D Graphics - Current Technologies Open GLOpen GL (Open Graphics Language) –SGI Silicon Graphics Direct 3DDirect 3D –Microsoft Direct X Technology Java3DJava3D.
Chapter 13 Embedded Systems
Mobile Application Development
Final Presentation Spring 2003 Project ID: D0822 Project Name: WinCE integrating BT media share application Supervisor: Evgeny Rivkin Performed by: Maya.
Amit Chopra APP209 Introducing “Orcas” Huh ? What’s “Orcas”?
What’s new for Rich Clients? Martin Parry Developer & Platform Group Microsoft Ltd
Microsoft ® Application Virtualization 4.5 Infrastructure Planning and Design Series.
EMB321 How To Write A Windows CE SDIO Client
An Overview of Qt - asankar1. Agenda About Qt –A brief intro of Qt Qt development tools –Tools used for building Qt application Qt Architecture –The underlying.
Graphics Virtual Channels (VCs) Mouse & Keyboard VCs Partner Virtual Channel Plug-Ins Partner Virtual Channel Plug-Ins Bulk Compression (RDP5+,
EMB313 Increasing Developer Productivity With Windows CE 5.0 Matt Young Windows Mobile Joint Development Program (JDP) Microsoft.
CLI339 Building Bluetooth Applications On The Windows CE 5.0 And Windows Mobile Platforms Anil Dhawan Program Manager Windows Mobile.
Powerful, modern desktops enable next generation applications Hardware acceleration brings real-time lighting, texturing and rendering Visual.
DXVA 2.0 A new Hardware Video Acceleration Pipeline for Windows Vista
What is Windows Embedded all about? Don Kerr Embedded Strategy Manager Microsoft Australia Andrew McGrath PrincipalBluBits SOL215.
EMB425 Using Advanced Platform Builder Debugger Features James Stulz Program Manager Windows CE Core Tools Microsoft Corporation.
EMB313 Increasing Developer Productivity With Windows CE 5.0
Android Introduction Platform Overview.
EMB318 Improve Product Quality Using Windows CE Error Reporting (Watson) James Stulz Program Manager Windows CE Core Tools Microsoft Corporation.
EMB315 Non-Volatile Object Store And Hive Based Registry Design For Windows CE Rick Austin Principle Engineer Intermec Corporation.
EMB426 Windows CE Memory Architecture Steve Maillet CEO/Chief Software Architect EmbeddedFusion.
 2002 Prentice Hall. All rights reserved. 1 Introduction to Visual Basic.NET,.NET Framework and Visual Studio.NET Outline 1.7Introduction to Visual Basic.NET.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
CLI324 Tablet PC Platform Advanced Topics Software Design Engineer/Test Lead
CHAPTER 4 Window Creation and Control © 2008 Cengage Learning EMEA.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Windows CE 시스템 개발 개요. 임베디드시스템소프트웨어 -Windows CE 2 Overview  Selecting a Windows Embedded Operating System  The Windows CE Platform Development Cycle.
BIZ208 Windows CE 5.0 Bringing to Market a Broad Range of Devices Dan Javnozon Product Manager MEDG Microsoft Corporation Business Track Presentation.
EMB423 Creating A Trusted Environment For Windows CE 5.0 Nat Frampton President Real Time Development
Introduction to Embedded Software Development School of software Engineering Introduction to Windows CE.
Overview of System Development. Overview Selecting a Windows Embedded Operating System The Windows CE Platform Development Cycle The Application Development.
CHAPTER FOUR COMPUTER SOFTWARE.
Karthik Lakshminarayanan Group Program Manager - RemoteFX Microsoft Corporation SESSION CODE: VIR305.
CHAPTER TEN AUTHORING.
Dion Hutchings Technical Evangelist Microsoft Session Code: EMB305.
EMB422 Advanced Embedded Visual C++ Application Development Control - View Nat Frampton President Real Time Development
Android architecture & setting up. Android operating system comprises of different software components arranges in stack. Different components of android.
EMB424 Implementing Fault Tolerant Systems in Windows CE 5.0 Nat Frampton President Real Time Development
Name Microsoft Student Partner Overview of the Visual Studio 2005 Express Products.
Windows CE 시스템 개발 개요. 모바일운영체제 - Windows CE 2 Overview  Selecting a Windows Embedded Operating System  The Windows CE Platform Development Cycle  The.
New Managed Messaging, State, And Notification APIs In Windows Mobile 2005 Gaurav Khanna Developer Evangelist Microsoft India.
EMB427 Writing Real-Time Applications On Windows CE 5.0 Nat Frampton President Real Time Development Corporation
CLI205 Basic Considerations For Mobile PC Application Development Tablet and Mobile PC Technical Evangelist Microsoft Corporation.
© Copyright Khronos Group, Page 1 OpenGL ES SIGGRAPH 2006 Neil Trevett Vice President Embedded Content, NVIDIA President, Khronos.
Dissecting the Windows CE Build Process James Y. Wilson Principal Engineer, Windows Embedded MVP CalAmp, Inc. James Y. Wilson Principal Engineer, Windows.
CLI325 In Depth – Ink Data Management Mark Hopkins Programmer Writer Tablet and Mobile PC Group Microsoft Corporation.
Goodbye SMI - ACPI and Graphics Driver/System Firmware Interface Paul Blinzer Staff Engineer ATI Research, Inc.
SVR201 SQL Server 2005 Mobile Edition: The Evolution Of SQL Server CE Scott Smith Program Manager Visual Studio for Devices Microsoft Corporation.
CLI210 Introduction To Managed Development For Devices With Visual Studio 2005 Scott D. Smith Program Manager Visual Studio for Devices Microsoft Corporation.
Advanced Memory Management Douglas Boling President Boling Consulting Inc.
Windows CE Services Douglas Boling President Boling Consulting Inc.
Gowtham Prasad K N Partner Technical Consultant | Microsoft Corporation |
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
BizTalk Damir Dobric Lead Architect. Agenda Microsoft BizTalk RFID Overview Architecture Application models Implementing Event Handlers Sensors.
What is DirectX? DirectX is built by Microsoft as a collection of API’s (Application Programming Interfaces) for the purpose of multimedia processing.
Build /24/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Building beautiful and interactive apps with HTML5 & CSS3
Office Power Hour New developer APIs and features for Apps for Office
.NET and .NET Core 7. XAML Pan Wuming 2017.
Certifying graphics experiences on Windows 8
1/14/2019 3:57 AM © 2004 Microsoft Corporation. All rights reserved.
Windows Virtual PC / Hyper-V
Direct2D Karolis Jodikaitis.
Delivering great hardware solutions for Windows
Windows Presentation Foundation
Overview of System Development for Windows CE.NET
Presentation transcript:

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

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

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

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

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

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

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

Building DX Devices With Platform Builder

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

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

GPE

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

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

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

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

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

DirectDraw Architecture

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

DDGPE

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

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 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

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)

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

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

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

Direct3D Mobile Resources

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

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: msdn.microsoft.com/embedded/community msdn.microsoft.com/embedded/community Windows Embedded Partner Program: Windows Mobile 5.0 Eval Kit including Visual Studio 2005 Beta 2 Mobile2Market Contest and win up to $25000: mobile2marketcontest.com mobile2marketcontest.com Microsoft Solutions Partner Program: partner.microsoft.com partner.microsoft.com

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

Questions

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