Метод ID2D1Factory::CreateDCRenderTarget (d2d1.h)
Создает целевой объект отрисовки, который обращается к контексту устройства интерфейса графического устройства Windows (GDI).
Синтаксис
HRESULT CreateDCRenderTarget(
[in] const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties,
[out] ID2D1DCRenderTarget **dcRenderTarget
);
Параметры
[in] renderTargetProperties
Тип: const D2D1_RENDER_TARGET_PROPERTIES*
Режим отрисовки, формат пикселей, параметры удаленного взаимодействия, сведения о DPI и минимальная поддержка DirectX, необходимая для аппаратной отрисовки. Чтобы обеспечить работу целевого объекта отрисовки контекста устройства (DC) с GDI, задайте для формата DXGI значение DXGI_FORMAT_B8G8R8A8_UNORM , а для альфа-режима — D2D1_ALPHA_MODE_PREMULTIPLIED или D2D1_ALPHA_MODE_IGNORE. Дополнительные сведения о форматах пикселей см. в разделе Поддерживаемые форматы пикселей и альфа-режимы.
[out] dcRenderTarget
Тип: ID2D1DCRenderTarget**
При возврате этого метода dcRenderTarget содержит адрес указателя на ID2D1DCRenderTarget , созданный методом .
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Перед отрисовкой с целевым объектом отрисовки контроллера домена необходимо использовать метод BindDC целевого объекта отрисовки, чтобы связать его с контроллером домена GDI. Сделайте это для каждого отдельного контроллера домена и при изменении размера области, в которой вы хотите нарисовать.
Чтобы целевой объект отрисовки контроллера домена мог работать с GDI, задайте для целевого объекта отрисовки формат DXGI DXGI_FORMAT_B8G8R8A8_UNORM , а альфа-режим — D2D1_ALPHA_MODE_PREMULTIPLIED или D2D1_ALPHA_MODE_IGNORE.
Приложение должно создавать целевые объекты отрисовки один раз и удерживать их на протяжении всего времени существования приложения или до тех пор, пока метод EndDraw целевого объекта отрисовки не вернет ошибку D2DERR_RECREATE_TARGET . При появлении этой ошибки повторно создайте целевой объект отрисовки (и все созданные им ресурсы).
Примеры
В следующем коде создается целевой объект отрисовки контроллера домена.
// Create a DC render target.
D2D1_RENDER_TARGET_PROPERTIES props = D2D1::RenderTargetProperties(
D2D1_RENDER_TARGET_TYPE_DEFAULT,
D2D1::PixelFormat(
DXGI_FORMAT_B8G8R8A8_UNORM,
D2D1_ALPHA_MODE_IGNORE),
0,
0,
D2D1_RENDER_TARGET_USAGE_NONE,
D2D1_FEATURE_LEVEL_DEFAULT
);
hr = m_pD2DFactory->CreateDCRenderTarget(&props, &m_pDCRT);
В приведенном выше коде m_pD2DFactory является указателем на ID2D1Factory, а m_pDCRT — указателем на ID2D1DCRenderTarget.
В следующем примере кода контроллер домена привязывается к ID2D1DCRenderTarget.
HRESULT DemoApp::OnRender(const PAINTSTRUCT &ps)
{
// Get the dimensions of the client drawing area.
GetClientRect(m_hwnd, &rc);
// Bind the DC to the DC render target.
hr = m_pDCRT->BindDC(ps.hdc, &rc);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | 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 |