Compartir a través de


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

Consulte también

ID2D1RenderTarget

Formatos de píxel admitidos y modos alfa