Поделиться через


Интерфейс IDWriteBitmapRenderTarget (dwrite.h)

Инкапсулирует 32-разрядное точечный рисунок и контекст устройства, которые можно использовать для отрисовки глифов.

Наследование

Интерфейс IDWriteBitmapRenderTarget наследуется от интерфейса IUnknown . IDWriteBitmapRenderTarget также имеет следующие типы элементов:

Методы

Интерфейс IDWriteBitmapRenderTarget содержит следующие методы.

 
IDWriteBitmapRenderTarget::D rawGlyphRun

Рисует выполнение глифов в целевом объекте растрового изображения в указанной позиции.
IDWriteBitmapRenderTarget::GetCurrentTransform

Возвращает преобразование, сопоставляющее абстрактные координаты с DIP. По умолчанию это преобразование удостоверения. Обратите внимание, что это не связано с преобразованием мира в контексте базового устройства.
IDWriteBitmapRenderTarget::GetMemoryDC

Возвращает дескриптор контекста устройства памяти.
IDWriteBitmapRenderTarget::GetPixelsPerDip

Возвращает количество пикселей растрового изображения на DIP.
IDWriteBitmapRenderTarget::GetSize

Возвращает размеры целевого растрового изображения.
IDWriteBitmapRenderTarget::Resize

Изменяет размер растрового изображения.
IDWriteBitmapRenderTarget::SetCurrentTransform

Задает преобразование, которое сопоставляет абстрактную координату с DIP (аппаратно-независимый пиксель). Это не влияет на преобразование мира в контексте базового устройства.
IDWriteBitmapRenderTarget::SetPixelsPerDip

Задает количество пикселей растрового изображения на dip (аппаратно-независимый пиксель). Значение DIP равно 1/96 дюйма, поэтому это значение является числом пикселей на дюйм, разделенным на 96.

Комментарии

IdWriteBitmapRenderTarget создается с помощью метода IDWriteGdiInterop::CreateBitmapRenderTarget, как показано в следующем коде.

if (SUCCEEDED(hr))
{
    hr = g_pGdiInterop->CreateBitmapRenderTarget(hdc, r.right, r.bottom, &g_pBitmapRenderTarget);
}

IDWriteGdiInterop::CreateBitmapRenderTarget принимает дескриптор контроллера домена, а также необходимую ширину и высоту. В приведенном выше примере заданная ширина и высота являются размером прямоугольника окна.

Визуализации

Одним из способов использования IDWriteBitmapRenderTarget для отрисовки в растровое изображение является реализация пользовательского интерфейса отрисовщика, производного от интерфейса IDWriteTextRenderer . В реализации метода DrawGlyphRun пользовательского отрисовщика вызовите метод IDWriteBitmapRenderTarget::D rawGlyphRun , чтобы нарисовать глифы, как показано в следующем коде.
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 инкапсулирует и отрисовывает растровое изображение в памяти. Функция GetMemoryDC возвращает дескриптор в контекст устройства этого растрового изображения.

Требования

   
Минимальная версия клиента Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновлением платформы для Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header dwrite.h