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 |