перечисление D2D1_LAYER_OPTIONS (d2d1.h)
Указывает параметры, которые могут применяться при применении ресурса слоя для создания слоя.
Синтаксис
typedef enum D2D1_LAYER_OPTIONS {
D2D1_LAYER_OPTIONS_NONE = 0x00000000,
D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE = 0x00000001,
D2D1_LAYER_OPTIONS_FORCE_DWORD = 0xffffffff
} ;
Константы
D2D1_LAYER_OPTIONS_NONE Значение: 0x00000000 Текст в этом слое не использует сглаживание ClearType. |
D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE Значение: 0x00000001 Слой правильно отображается для текста ClearType. Если для целевого объекта отрисовки задано значение ClearType, слой продолжает отображать ClearType. Если для целевого объекта отрисовки задано значение ClearType, а этот параметр не указан, целевой объект отрисовки будет настроен на отрисовку серого цвета до тех пор, пока слой не будет выброшен. Вызывающий объект может переопределить это значение по умолчанию, вызвав Метод SetTextAntialiasMode в пределах слоя. Этот флаг немного медленнее, чем по умолчанию. |
D2D1_LAYER_OPTIONS_FORCE_DWORD Значение: 0xffffffff |
Комментарии
Сглаживание ClearType должно использовать текущее содержимое целевого объекта отрисовки для правильного смешивания. Когда отправленный слой запрашивает инициализацию ClearType, Direct2D копирует текущее содержимое целевого объекта отрисовки на слой, чтобы можно было выполнить сглаживание ClearType. Отрисовка текста ClearType в прозрачный слой не дает нужных результатов.
При вызове ID2D1RenderTarget::Clear происходит небольшое снижение производительности при повторном копировании содержимого.
Примеры
В следующем примере показано, как использовать CreateLayer, PushLayer и PopLayer. Для всех полей в структуре D2D1_LAYER_PARAMETERS заданы значения по умолчанию, за исключением opacityBrush, для которого задано значение ID2D1RadialGradientBrush.
// Create a layer.
ID2D1Layer *pLayer = NULL;
hr = pRT->CreateLayer(NULL, &pLayer);
if (SUCCEEDED(hr))
{
pRT->SetTransform(D2D1::Matrix3x2F::Translation(300, 250));
// Push the layer with the content bounds.
pRT->PushLayer(
D2D1::LayerParameters(
D2D1::InfiniteRect(),
NULL,
D2D1_ANTIALIAS_MODE_PER_PRIMITIVE,
D2D1::IdentityMatrix(),
1.0,
m_pRadialGradientBrush,
D2D1_LAYER_OPTIONS_NONE),
pLayer
);
pRT->DrawBitmap(m_pBambooBitmap, D2D1::RectF(0, 0, 190, 127));
pRT->FillRectangle(
D2D1::RectF(25.f, 25.f, 50.f, 50.f),
m_pSolidColorBrush
);
pRT->FillRectangle(
D2D1::RectF(50.f, 50.f, 75.f, 75.f),
m_pSolidColorBrush
);
pRT->FillRectangle(
D2D1::RectF(75.f, 75.f, 100.f, 100.f),
m_pSolidColorBrush
);
pRT->PopLayer();
}
SafeRelease(&pLayer);
Дополнительные примеры см. в разделе Общие сведения о слоях.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновление платформы для Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP] |
Верхняя часть | d2d1.h |