Quel est le nom de la nouvelle API Windows 7, qui permet à des applications telles que IE 9 de profiter de l'accélération Hardware ?

| Microsoft MSDN France | Jérôme Lambert |

Retrouvez l'intégralité des questions / réponses sur le développement sous Windows 7 dans l'article suivant.

Commentez cet article : Commentez ♪

- Titre : Quel est le nom de la nouvelle API Windows 7, qui permet à des applications telles que IE 9 de profiter de l'accélération Hardware ?

- Auteurs : Microsoft MSDN France, Jérôme Lambert

- Parution : 27 décembre 2010

- Licence : Copyright ® 2010 Microsoft MSDN France. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Quel est le nom de la nouvelle API Windows 7, qui permet à des applications telles que IE 9 de profiter de l'accélération Hardware ?

I - Quel est le nom de la nouvelle API Windows 7, qui permet à des applications telles que IE 9 de profiter de l'accélération Hardware ?

Direct2D est une API pour la création de graphiques 2D. Basée sur Direct3D 10, elle offre aux développeurs Win32, une API indépendante de la résolution, et qui utilise la puissance des cartes graphiques de nouvelle génération. Vous pouvez, avec Direct2D, améliorer vos applications GDI existantes, sans être obligé de les réécrire. En effet Direct2D a été conçu pour coopérer avec le GDI et d'autres technologies graphiques. Enfin, Direct2D vous permet d'écrire du contenu Direct2D sur une surface GDI.

Exemple pour dessiner un rectangle en utilisant Direct2D

int DessinerUnRectangle()
{
HRESULT hr;
CComPtr<ID2D1Factory> fabriqueD2D1;
hr=D2D1CreateFactory (D2D1_FACTORY_TYPE_SINGLE_THREADED,
&fabriqueD2D1);
if (FAILED(hr)) return -1;
CComPtr<ID2D1HwndRenderTarget> contexteRenduD2D1;

//Récupère la zone cliente
RECT rc;
GetClientRect(_hwndParent,&rc);
D2D1_SIZE_U size = D2D1::SizeU((rc.right - rc.left),(rc.bottom - rc.top));

//Création du contexte de rendu
D2D1_RENDER_TARGET_PROPERTIES proprietesRendu=D2D1::RenderTargetProperties();
D2D1_HWND_RENDER_TARGET_PROPERTIES proprietesHwndRendu=D2D1::HwndRenderTargetProperties (_hwndParent,size);
hr=fabriqueD2D1->CreateHwndRenderTarget (proprietesRendu, proprietesHwndRendu, &contexteRenduD2D1);
if (FAILED(hr)) return -1;
//Création de la Brosse Verte
CComPtr<ID2D1SolidColorBrush> brosseVerte;
hr=contexteRenduD2D1->CreateSolidColorBrush (D2D1::ColorF(D2D1::ColorF::Green), &brosseVerte);
if (FAILED(hr)) return -1;
//Création de la Brosse Orange
CComPtr<ID2D1SolidColorBrush> brosseOrange;

hr=contexteRenduD2D1->CreateSolidColorBrush (D2D1::ColorF(D2D1::ColorF::Orange), &brosseOrange);
if (FAILED(hr)) return -1;
contexteRenduD2D1->BeginDraw ();
D2D1_RECT_F rectangleVert = D2D1::RectF(
size.width/4 - 50.0f,
size.height/2 - 50.0f,
size.width/2 + 50.0f,
size.height/2 + 50.0f
);

contexteRenduD2D1->FillRectangle (rectangleVert,brosseVerte);

D2D1_RECT_F rectangleOrange = D2D1::RectF(
size.width/4 - 100.0f,
size.height/2 - 100.0f,
size.width/2 + 100.0f,
size.height/2 + 100.0f
);
contexteRenduD2D1->DrawRectangle (rectangleOrange ,brosseOrange);
contexteRenduD2D1->EndDraw ();
return 0;
}

Pour plus d'infos :

- MSDN : http://msdn.microsoft.com/fr-fr/windows/default.aspx

- Le coach Windows 7 : http://msdn.microsoft.com/fr-fr/windows/msdn.coach.windows7

- Kit de développement pour Windows 7 : http://msdn.microsoft.com/fr-fr/windows/gg398052.aspx