Método ID2D1RenderTarget::CreateCompatibleRenderTarget(D2D1_SIZE_F,ID2D1BitmapRenderTarget**) (d2d1.h)
Crea un destino de representación de mapa de bits para su uso durante el dibujo intermedio fuera de la pantalla que es compatible con el destino de representación actual.
Sintaxis
HRESULT CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize,
ID2D1BitmapRenderTarget **bitmapRenderTarget
);
Parámetros
desiredSize
Tipo: [in] D2D1_SIZE_F
Tamaño deseado del nuevo destino de representación en píxeles independientes del dispositivo. El tamaño de píxel se calcula a partir del tamaño deseado mediante el valor de PPP de destino primario. Si desiredSize se asigna a un tamaño de píxel entero, el valor de PPP del destino de representación compatible es el mismo que el valor de PPP del destino primario. Si desiredSize se asigna a un tamaño de píxel fraccionado, el tamaño de píxel se redondea al entero más cercano y el valor de PPP para el destino de representación compatible es ligeramente superior al valor de PPP del destino de representación primario. En todos los casos, la coordenada (desiredSize.width, desiredSize.height) se asigna a la esquina inferior derecha del destino de representación compatible.
bitmapRenderTarget
Tipo: [out] ID2D1BitmapRenderTarget**
Cuando este método vuelve, contiene un puntero a un puntero a un nuevo destino de representación de mapa de bits. Este parámetro se pasa sin inicializar.
Valor devuelto
Tipo: HRESULT
Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT .
Comentarios
El destino de representación de mapa de bits creado por este método no es compatible con GDI.
Ejemplos
En el ejemplo siguiente se usa el método CreateCompatibleRenderTarget para crear un id2D1BitmapRenderTarget y usarlo para dibujar un patrón de cuadrícula. El patrón de cuadrícula se usa como origen de un ID2D1BitmapBrush.
HRESULT DemoApp::CreateGridPatternBrush(
ID2D1RenderTarget *pRenderTarget,
ID2D1BitmapBrush **ppBitmapBrush
)
{
// Create a compatible render target.
ID2D1BitmapRenderTarget *pCompatibleRenderTarget = NULL;
HRESULT hr = pRenderTarget->CreateCompatibleRenderTarget(
D2D1::SizeF(10.0f, 10.0f),
&pCompatibleRenderTarget
);
if (SUCCEEDED(hr))
{
// Draw a pattern.
ID2D1SolidColorBrush *pGridBrush = NULL;
hr = pCompatibleRenderTarget->CreateSolidColorBrush(
D2D1::ColorF(D2D1::ColorF(0.93f, 0.94f, 0.96f, 1.0f)),
&pGridBrush
);
if (SUCCEEDED(hr))
{
pCompatibleRenderTarget->BeginDraw();
pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.0f, 10.0f, 1.0f), pGridBrush);
pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.1f, 1.0f, 10.0f), pGridBrush);
pCompatibleRenderTarget->EndDraw();
// Retrieve the bitmap from the render target.
ID2D1Bitmap *pGridBitmap = NULL;
hr = pCompatibleRenderTarget->GetBitmap(&pGridBitmap);
if (SUCCEEDED(hr))
{
// Choose the tiling mode for the bitmap brush.
D2D1_BITMAP_BRUSH_PROPERTIES brushProperties =
D2D1::BitmapBrushProperties(D2D1_EXTEND_MODE_WRAP, D2D1_EXTEND_MODE_WRAP);
// Create the bitmap brush.
hr = m_pRenderTarget->CreateBitmapBrush(pGridBitmap, brushProperties, ppBitmapBrush);
pGridBitmap->Release();
}
pGridBrush->Release();
}
pCompatibleRenderTarget->Release();
}
return hr;
}
En el ejemplo de código siguiente se usa el pincel para pintar un patrón.
// Paint a grid background.
m_pRenderTarget->FillRectangle(
D2D1::RectF(0.0f, 0.0f, renderTargetSize.width, renderTargetSize.height),
m_pGridPatternBitmapBrush
);
El código se ha omitido en este ejemplo.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | d2d1.h |
Library | D2d1.lib |
Archivo DLL | D2d1.dll |