loading...

lunes, 27 de diciembre de 2010

Direct2D le permite escribir el contenido en una superficie Direct2D GDI

I. ¿Cuál es el nombre de la nueva API de Windows 7, que permite a las aplicaciones como IE9 aprovechar la aceleración de hardware?

Direct2D es un API para la creación de gráficos 2D. Sobre la base de Direct3D 10, que proporciona a los desarrolladores Win32 independiente de la resolución de la API, y usa el poder de gráficos de próxima generación de tarjetas. Usted puede, con Direct2D, mejorar su actual aplicaciones GDI, sin tener que reescribir. De hecho Direct2D fue diseñado para trabajar con el Gobierno de la India y las tecnologías de gráficos. Por último, Direct2D le permite escribir el contenido en una superficie Direct2D GDI.

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

Ejemplo para dibujar un rectángulo con Direct2D

int  DessinerUnRectangle ()
{
HRESULT hr ;
CComPtr < ID2D1Factory > fabriqueD2D1 ;
h = D2D1CreateFactory (D2D1_FACTORY_TYPE_SINGLE_THREADED ,
y fabriqueD2D1) ,
si ( ERROR (h)) devolver - 1 ;
CComPtr < ID2D1HwndRenderTarget > contexteRenduD2D1 ;


/ / Obtener la zona de cliente
RECT rc ;
GetClientRect (_hwndParent , y rc) ;
tamaño D2D1_SIZE_U = D2D1 : : SizeU ((rc . derecha - rc . izquierda) , (rc . fondo - rc . arriba)) ;

/ / Crear el marco de la prestación
D2D1_RENDER_TARGET_PROPERTIES proprietesRendu = D2D1 : : RenderTargetProperties () ;
D2D1_HWND_RENDER_TARGET_PROPERTIES proprietesHwndRendu = D2D1 : : HwndRenderTargetProperties (_hwndParent , tamaño) ;
h = fabriqueD2D1 - > CreateHwndRenderTarget (proprietesRendu , proprietesHwndRendu , y contexteRenduD2D1) ,
si ( ERROR (h)) devolver - 1 ;
/ / Creación de la Pincel Verde
CComPtr < ID2D1SolidColorBrush > brosseVerte ;
h = contexteRenduD2D1 - > CreateSolidColorBrush (D2D1 : : ColorF (D2D1 : : ColorF : : Verde) , y brosseVerte) ,
si ( ERROR (h)) devolver - 1 ;
/ / Creación de la brocha de Orange
CComPtr < ID2D1SolidColorBrush > brosseOrange ;

h = contexteRenduD2D1 - > CreateSolidColorBrush (D2D1 : : ColorF (D2D1 : : ColorF : : Naranja) , y brosseOrange) ,
si ( ERROR (h)) devolver - 1 ;
contexteRenduD2D1 - > BeginDraw () ;
rectangleVert D2D1_RECT_F = D2D1 : : RectF (tamaño . anchura / 4 - 50 . 0F ,
tamaño . altura / 2 - 50 . 0F ,
tamaño . anchura / 2 + 50 . 0F ,
tamaño . altura / 2 + 50 . 0F
) ;


contexteRenduD2D1 - > FillRectangle (rectangleVert , brosseVerte) ;

rectangleOrange D2D1_RECT_F = D2D1 : : RectF (tamaño . anchura / 4 - 100 . 0F ,
tamaño . altura / 2 - 100 . 0F ,
tamaño . anchura / 2 + 100 . 0F ,
tamaño . altura / 2 + 100 . 0F
) ;
contexteRenduD2D1 - > DrawRectangle (rectangleOrange , brosseOrange) ;
contexteRenduD2D1 - > EndDraw () ;
retorno 0 ;
}

Para más información:


Versión en PDF ( Miroir ) Versión fuera de línea ( Espejo )

No hay comentarios:

Publicar un comentario