IDWriteBitmapRenderTarget-Schnittstelle (dwrite.h)
Kapselt eine geräteunabhängige 32-Bit-Bitmap und einen Gerätekontext, die zum Rendern von Glyphen verwendet werden kann.
Vererbung
Die IDWriteBitmapRenderTarget-Schnittstelle erbt von der IUnknown-Schnittstelle . IDWriteBitmapRenderTarget verfügt auch über folgende Membertypen:
Methoden
Die IDWriteBitmapRenderTarget-Schnittstelle verfügt über diese Methoden.
IDWriteBitmapRenderTarget::D rawGlyphRun Zeichnet eine Ausführung von Glyphen auf ein Bitmapziel an der angegebenen Position. |
IDWriteBitmapRenderTarget::GetCurrentTransform Ruft die Transformation ab, die abstrakte Koordinaten DIPs zuordnet. Standardmäßig ist dies die Identitätstransformation. Beachten Sie, dass dies nicht mit der Welttransformation des zugrunde liegenden Gerätekontexts zusammenhängt. |
IDWriteBitmapRenderTarget::GetMemoryDC Ruft ein Handle für den Kontext des Speichergeräts ab. |
IDWriteBitmapRenderTarget::GetPixelsPerDip Ruft die Anzahl der Bitmappixel pro DIP ab. |
IDWriteBitmapRenderTarget::GetSize Ruft die Dimensionen der Ziel-Bitmap ab. |
IDWriteBitmapRenderTarget::Ändern der Größe Ändert die Größe der Bitmap. |
IDWriteBitmapRenderTarget::SetCurrentTransform Legt die Transformation fest, die die abstrakte Koordinate DIPs (geräteunabhängiges Pixel) zuordnet. Dies wirkt sich nicht auf die Welttransformation des zugrunde liegenden Gerätekontexts aus. |
IDWriteBitmapRenderTarget::SetPixelsPerDip Legt die Anzahl der Bitmappixel pro DIP (geräteunabhängiges Pixel) fest. Ein DIP ist 1/96 Zoll, daher ist dieser Wert die Zahl, wenn Pixel pro Zoll durch 96 geteilt wird. |
Hinweise
Sie erstellen eine IDWriteBitmapRenderTarget-Methode mit der IDWriteGdiInterop::CreateBitmapRenderTarget-Methode , wie im folgenden Code gezeigt.
if (SUCCEEDED(hr))
{
hr = g_pGdiInterop->CreateBitmapRenderTarget(hdc, r.right, r.bottom, &g_pBitmapRenderTarget);
}
IDWriteGdiInterop::CreateBitmapRenderTarget verwendet ein Handle für einen DC und die gewünschte Breite und Höhe. Im obigen Beispiel sind die angegebene Breite und Höhe die Größe des Fenster rect.
Rendering
Eine Möglichkeit, ein IDWriteBitmapRenderTarget zum Rendern in einer Bitmap zu verwenden, besteht darin, eine benutzerdefinierte Rendererschnittstelle zu implementieren, die von der IDWriteTextRenderer-Schnittstelle abgeleitet ist. Rufen Sie in Ihrer Implementierung der DrawGlyphRun-Methode Ihres benutzerdefinierten Renderers die IDWriteBitmapRenderTarget::D rawGlyphRun-Methode auf, um die Glyphen wie im folgenden Code gezeigt zu zeichnen.STDMETHODIMP GdiTextRenderer::DrawGlyphRun(
__maybenull void* clientDrawingContext,
FLOAT baselineOriginX,
FLOAT baselineOriginY,
DWRITE_MEASURING_MODE measuringMode,
__in DWRITE_GLYPH_RUN const* glyphRun,
__in DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription,
IUnknown* clientDrawingEffect
)
{
HRESULT hr = S_OK;
// Pass on the drawing call to the render target to do the real work.
RECT dirtyRect = {0};
hr = pRenderTarget_->DrawGlyphRun(
baselineOriginX,
baselineOriginY,
measuringMode,
glyphRun,
pRenderingParams_,
RGB(0,200,255),
&dirtyRect
);
return hr;
}
IdWriteBitmapRenderTarget kapselt und rendert sie in eine Bitmap im Arbeitsspeicher. Die GetMemoryDC-Funktion gibt ein Handle an den Gerätekontext dieser Bitmap zurück.
Anforderungen
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 | dwrite.h |