Метод ID2D1RenderTarget::CreateCompatibleRenderTarget(D2D1_SIZE_F;ID2D1BitmapRenderTarget**) (d2d1.h)
Создает целевой объект отрисовки точечного рисунка для использования во время промежуточного рисования вне экрана, совместимого с текущим целевым объектом отрисовки.
Синтаксис
HRESULT CreateCompatibleRenderTarget(
D2D1_SIZE_F desiredSize,
ID2D1BitmapRenderTarget **bitmapRenderTarget
);
Параметры
desiredSize
Тип: [in] D2D1_SIZE_F
Требуемый размер нового целевого объекта отрисовки в независимых от устройства пикселях. Размер пикселя вычисляется на основе требуемого размера с использованием родительского целевого DPI. Если значение desiredSize сопоставляется с целочисленным размером пикселей, то значение DPI совместимого целевого объекта отрисовки совпадает с DPI родительского целевого объекта. Если значение desiredSize сопоставляется с размером в дробном пикселе, размер пикселя округляется до ближайшего целого числа, а значение DPI для совместимого целевого объекта отрисовки немного выше, чем значение DPI родительского целевого объекта отрисовки. Во всех случаях координата (desiredSize.width, desiredSize.height) сопоставляется с правым нижним углом совместимого целевого объекта отрисовки.
bitmapRenderTarget
Тип: [out] ID2D1BitmapRenderTarget**
При возврате этого метода содержит указатель на указатель на новый целевой объект отрисовки растрового рисунка. Этот параметр передается неинициализированным.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Целевой объект отрисовки растрового рисунка, созданный этим методом, несовместим с GDI.
Примеры
В следующем примере метод CreateCompatibleRenderTarget используется для создания ID2D1BitmapRenderTarget и используется для рисования шаблона сетки. Шаблон сетки используется в качестве источника 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;
}
В следующем примере кода используется кисть для рисования шаблона.
// Paint a grid background.
m_pRenderTarget->FillRectangle(
D2D1::RectF(0.0f, 0.0f, renderTargetSize.width, renderTargetSize.height),
m_pGridPatternBitmapBrush
);
Код в этом примере опущен.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновление платформы для Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | d2d1.h |
Библиотека | D2d1.lib |
DLL | D2d1.dll |