Gilles Guimard Application Development Manager Microsoft France Incorporez Direct2D dans vos applications tout en conservant votre existant Gilles Guimard Application Development Manager Microsoft France
Microsoft Services: Un accompagnement global de nos clients Architecture & Planning Planification Conseil et Projets Déploiement et adoption Support Optimisation et Opération Evaluation Développement Déploiement Stabilisation Opérations Support Premier Enterprise Strategy Consulting Services Division Services France 2010 180 Consultants 125 Technical Account Managers 190 Ingénieurs Support 17 Responsables de Mission 41 Partenaires référencés Division Services Monde 2010 82 pays couverts 18 000 employés 35 000 partenaires 44 langues parlées par nos ingénieurs www.microsoft.fr/services
Nos clients et partenaires sont particulièrement satisfaits par… Notre positionnement est d’intervenir sur les projets critiques et les technologies récentes Criticité du projet Maturité de la technologie Partenaires Notre engagement auprès de nos partenaires est : De leur assurer un transfert d’expertise, De leur apporter notre support sur les dernières technologies, De leur donner accès aux meilleures pratiques de mise en œuvre et de support. Nos clients et partenaires sont particulièrement satisfaits par… Le niveau d’engagement des consultants : 94% La gestion de l’équipe de projet : 92% Les compétences techniques des consultants : 91% La relation avec les équipes du client : 90%
Agenda Introduction Direct2D – Direct Write – Direct Animation Les défis Architecture générale Les fonctionnalités Les performances Comparatif D2D – GDI – GDI+ Modèle de Threading Les scénarios d'interopérabilité Windows Scenic Animation Windows 7-2008 SP1 / Visual Studio 2010 SP1 Intégration dans les MFC RemoteFx
Introduction Les Systèmes supportant Direct2D Windows 7 Windows Vista SP2 + Platform Update for Windows Vista http://support.microsoft.com/kb/971644 Les Produits Microsoft utilisant Direct 2D Windows Live 2011 Internet Explorer 9
Technologies Microsoft / GPU Modèle de développement Natif / C++ Managé / .NET Web Productivité Direct2D WPF Silverlight 4 Graphiques Direct2D, DirectX Média Média Fondation DXVA XNA, WPF Jeux DirectX XNA HTML5 / SVG HTML5 Canvas HTML5 Vidéo HTML5 Canvas
Architecture générale Internet Explorer 9 WPF .NET Silverlight C++ Media Foundation WIC GDI+ Direct2D USER GDI DirectWrite CLR 2.0, 4.0 DXVA DirectX 10.1 DirectX 11 Win32K Windows DirectX Graphics Infrastructure (DXGI) DirectX 9 DXGKernel Pilote de la Carte graphique – (WDM 1.1) Windows Vista Windows 7
Le design de Direct2D Accélération matérielle Les performances Des primitives 2D de bas niveau Simplicité d’implémentation Mode de rendu immédiat date
Fonctionnalités de Direct2D Des primitives de base Rectangles, ellipses, bésier… Brosses, Images, dégradés linéaires dégradés radiaux Les opérations complexes tel que: Les calques, les masques d'opacité Opérations à base de matrice pour les rotations, zooms, translations
Fonctionnalités de Direct2D Utilise DirectWrite pour dessiner du texte Support du Multi langue complet Utilise Windows Imaging Component pour les images Lecture, sauvegarde d'images
Fonctionnalités de DirectWrite Fonctionnalité avancée sur les polices de caractère Dans Direct2D, les routines utilisant du texte utilisent DirectWrite Prend en charge le rendu de texte par bloc afin de pouvoir réaliser des animations Supporte le rendu par caractère afin d'animer des caractères individuels
Windows Imaging Components WIC Permet de travailler sur des images et métadonnées des images Support de multiples formats d'image assuré par des codecs BMP, GIF, ICO, JPEG, PNG, TIFF, Photo HD Extensible via l'écriture d'un codec Décodage de l'image progressive Support du multithread date
Modèle de programmation C++ Basé sur COM Interface de type IUnknown Assure le « versionning » Allocateur mémoire « neutre » Gestion des erreurs sous forme d'un HRESULT Les includes <d2d1.h>, <d2d1helper.h>, <Dwrite.h>, <Wincodec.h> Les Libs windowscodecs.lib, d2d1.lib, dwrite.lib .NET Windows® API Code Pack for Microsoft® .NET Framework
Modèle de programmation Initialiser COM et Direct2D Créer un contexte d'affichage CComPtr<ID2D1Factory> _spD2DFactory; D2D1CreateFactory<ID2D1Factory>(D2D1_FACTORY_TYPE_SINGLE_THREADED, options, &_spD2DFactory)); CComPtr<ID2D1HwndRenderTarget> _spHwndRT; rtProp = D2D1::RenderTargetProperties(D2D1_RENDER_TARGET_TYPE_HARDWARE, D2D1::PixelFormat(DXGI_FORMAT_UNKNOWN, D2D1_ALPHA_MODE_IGNORE), 96.0f, 96.0f); _spD2DFactory->CreateHwndRenderTarget(rtProp, D2D1::HwndRenderTargetProperties( Hwnd, D2D1::Size((UINT32)_State.windowWidth, (UINT32)_State.windowHeight), D2D1_PRESENT_OPTIONS_IMMEDIATELY), &_spHwndRT));
Modèle de programmation Dessiner case WM_PAINT: { hdc = BeginPaint(hWnd, &ps); OnRender(hWnd); EndPaint(hWnd, &ps); } HRESULT OnRender(HWND hwnd) { g_spHwndRT->BeginDraw(); g_spHwndRT->DrawText(sc_helloWorld, ARRAYSIZE(sc_helloWorld) - 1, g_spTextFormat, D2D1::RectF(300, 300, renderTargetSize.width, renderTargetSize.height), g_spBlackBrush); hr = g_spHwndRT->EndDraw();
Ma première application Direct2D Démo Ma première application Direct2D
L'interface ID2D1Factory L'objet de base, permet de créer une ressource Direct2D Permet de créer un contexte de dessin A partir d'un HDC, Hwnd, Direct3D Permet de créer un contexte pour WIC Deux "Factories" disponibles : Singlethread et Multithread Service de "Debug"
L'interface ID2D1RenderTarget Représente l'objet qui va recevoir les commandes de dessin Trois type d’opérations Les méthodes de type « Draw » DrawLine, DrawRectangle, DrawRoundedRectangle, DrawText, DrawBitmap, DrawEllipse, DrawGeometry, DrawGlyphRun Les méthodes de type « Fill » FillEllipse, FillGeometry, FillMesh, FillRectangle, FillRoundedRectangle, Les méthodes de type « Divers » Clear, Transformation, Layer Un service de sélection des objects date
Dessiner Les pinceaux De couleur Gradient de type radial Gradient de type linéaire Transformation Les stylos Largeur de la ligne Motif de la ligne Les objets complexes D2D1Mesh Représentent un ensemble de sommets qui forment une liste de triangles
Démo Dessiner
DirectWrite - Architecture Fonctionnalités standards ou avancés suivant les scénarios Application DirectWrite API graphique Text Layout System Font Script Processor Rasterizer
DirectWrite Scénario standard Affichage de texte dans l’interface utilisateur d’une application Contrôles, Labels, Listbox.. Utilisation de l’interface IDWriteTextLayout et DrawTextLayout() Scénario avancé Examples: Internet Explorer 9,0 Utilisation de « DirectWrite‘s Text Analysis & Font System » avec l’API DrawGlyphRun(), pour construire et rendre le texte
Démo DirectWrite
Les performances De nombreux facteurs Utilisation des ressources de la carte graphique Partage d’objets Utilisation de bitmap de type Atlas … Les outils Windows Performance ToolKit, GPUView Le profiler de Visual Studio Support du Multithead D2D1_FACTORY_TYPE enum D2D1_FACTORY_TYPE_SINGLE_THREADED D2D1_FACTORY_TYPE_MULTI_THREADED D2D1CreateFactory( __in D2D1_FACTORY_TYPE factoryType, __out Factory **factory );
Modèle de threading 1 factory, x RenderTarget : Synchronization sur la fonction T1 RenderTarget BeginDraw DrawLine Factory T2 RenderTarget BeginDraw DrawLline EndDraw T1 Factory RenderTarget BeginDraw DrawLine EndDraw T2 Factory RenderTarget BeginDraw DrawLine EndDraw
Performances GDI+, GDI, Direct2D Démo Performances GDI+, GDI, Direct2D
Interopérabilité DWrite D2D GDI D3D10 DXGI 1.1 D3D 11 DXVA D3D 9 Ex
Interopérabilité GDI HDC dans D2D Création d’un « render target » compatible GDI D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE QI sur l’objet IGdiInteropRenderTarget GetDC() ReleaseDC() D2D dans HDC CreateDCRenderTarget() ID2D1DCRenderTarget::BindDC() DirectX Utiliser un niveau Direct3D 10 ou 10Level9 Mapper la surface D3D dans un render target D2D CreateDxgiSurfaceRenderTarget() Appeler EndDraw() avant Present()
Interopérabilité DirectX Démo Interopérabilité DirectX
Windows Scenic Animation Une API qui simplifie le développement d’animations graphiques Elle permet d’animer différents éléments comme la position, la couleur, le contraste, la taille, l’opacité…. Création de story-board avec une séquence de transitions Vous définissez un déplacement entre deux points Vous définissez le type de transition (linéaire, parabolique…) Vous êtes notifiés lors de l’animation afin de positionner l’objet que vous désirez afficher.
Windows Scenic Animation Démo Windows Scenic Animation
Visual Studio 2010 SP1 Support de Direct2D, DirectWrite intégré nativement dans les MFC Support de Direct Animation dans les MFC
Introduction à RemoteFX Remote Desktop Protocol (RDP) Remote Desktop Virtualization Host (RDVH) RemoteFX Infrastructure Remote Desktop Services (RDS) Infrastructure RemoteFX-Remote Desktop Services (RDS) Client RemoteFX Client Support de Windows Aero, de l’accélération 3D coté serveur Vidéo haute définition avec le support du son synchronisé
RemoteFX Trois principaux composants Pipeline d’encoding / decoding Support des GPU 3D coté serveur Redirection USB RemoteFX pour VDI (Virtual Desktop Infrastructure) Supporte les trois fonctionnalités RemoteFX pour RDSH Supporte une fonctionnalité (encoding/decoding) date
RemoteFX in RDSH Solutions TechReady11 4/22/2017 Les Scénarios RemoteFX - VDI RemoteFX in RDSH Solutions -Enabled Clients: RemoteFX , encodage logiciel Client Windows Client léger Clients ultra-léger Avec un ASIC RemoteFX Ecran LCD Avec un ASIC RemoteFX RemoteFX Encodage et décodage via un ASIC Processeur graphique © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Démo RemoteFx
Références SDK Windows http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6B6C21D2-2006-4AFA-9702-529FA782D63B Exemples C++ http://code.msdn.microsoft.com/Project/ProjectDirectory.aspx?ProjectSearchText=Direct2D Exemples .NET http://code.msdn.microsoft.com/WindowsAPICodePack RemoteFX http://technet.microsoft.com/fr-fr/library/ff817578(WS.10).aspx date
Questions?
MSDN et TechNet : l’essentiel des ressources techniques à portée de clic Portail administration et infrastructure pour informaticiens Portail de ressources technique pour développeurs http://technet.com http://msdn.com