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 ?

Toutes les semaines un peu de code pour aller plus loin avec Windows 7

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

Commentez cet article : 41 commentaires Donner une note à l'article (5)

Article lu   fois.

Les deux auteurs

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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
Sélectionnez
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 :

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

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. Droits de diffusion permanents accordés à Developpez LLC.