Freigeben über


ID2D1RenderTarget::CreateCompatibleRenderTarget(D2D1_SIZE_F,ID2D1BitmapRenderTarget**)-Methode (d2d1.h)

Erstellt ein Bitmaprenderziel für die Verwendung während einer Zwischenzeichnung, die mit dem aktuellen Renderziel kompatibel ist.

Syntax

HRESULT CreateCompatibleRenderTarget(
  D2D1_SIZE_F             desiredSize,
  ID2D1BitmapRenderTarget **bitmapRenderTarget
);

Parameter

desiredSize

Typ: [in] D2D1_SIZE_F

Die gewünschte Größe des neuen Renderziels in geräteunabhängigen Pixeln. Die Pixelgröße wird aus der gewünschten Größe mit dem übergeordneten ZIEL-DPI berechnet. Wenn die desiredSize einer ganzzahligen Pixelgröße zugeordnet ist, ist der DPI des kompatiblen Renderziels mit dem DPI des übergeordneten Ziels identisch. Bei Bedarf Wird die Größe einer Bruchpixelgröße zugeordnet, wird die Pixelgröße auf die nächste ganze Zahl aufgerundet, und der DPI für das kompatible Renderziel ist etwas höher als der DPI des übergeordneten Renderziels. In allen Fällen wird die Koordinate (desiredSize.width, desiredSize.height) der unteren rechten Ecke des kompatiblen Renderziels zugeordnet.

bitmapRenderTarget

Typ: [out] ID2D1BitmapRenderTarget**

Wenn diese Methode zurückgibt, enthält einen Zeiger auf einen Zeiger auf ein neues Bitmaprenderingziel. Dieser Parameter wird nicht initialisiert übergeben.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Hinweise

Das von dieser Methode erstellte Bitmaprenderziel ist nicht mit GDI kompatibel.

Beispiele

Im folgenden Beispiel wird die CreateCompatibleRenderTarget-Methode verwendet, um ein ID2D1BitmapRenderTarget zu erstellen und ein Rastermuster zu zeichnen. Das Rastermuster wird als Quelle eines ID2D1BitmapBrush verwendet.

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;
}

Im folgenden Codebeispiel wird der Pinsel verwendet, um ein Muster zu zeichnen.

// Paint a grid background.
m_pRenderTarget->FillRectangle(
    D2D1::RectF(0.0f, 0.0f, renderTargetSize.width, renderTargetSize.height),
    m_pGridPatternBitmapBrush
    );

Code wurde aus diesem Beispiel weggelassen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d2d1.h
Bibliothek D2d1.lib
DLL D2d1.dll

Weitere Informationen

ID2D1RenderTarget

Unterstützte Pixelformate und Alpha-Modi