enumeração D2D1_LAYER_OPTIONS (d2d1.h)

Especifica as opções que podem ser aplicadas quando um recurso de camada é aplicado para criar uma camada.

Nota A partir de Windows 8, não há mais suporte para a opção D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE. Consulte D2D1_LAYER_OPTIONS1 para obter opções de camada Windows 8.
 

Syntax

typedef enum D2D1_LAYER_OPTIONS {
  D2D1_LAYER_OPTIONS_NONE = 0x00000000,
  D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE = 0x00000001,
  D2D1_LAYER_OPTIONS_FORCE_DWORD = 0xffffffff
} ;

Constantes

 
D2D1_LAYER_OPTIONS_NONE
Valor: 0x00000000
O texto nessa camada não usa a suavização ClearType.
D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE
Valor: 0x00000001
A camada é renderizada corretamente para texto ClearType. Se o destino de renderização for definido como ClearType, a camada continuará renderizando ClearType. Se o destino de renderização for definido como ClearType e essa opção não for especificada, o destino de renderização será definido para renderizar a escala cinza até que a camada seja exibida. O chamador pode substituir esse padrão chamando SetTextAntialiasMode enquanto estiver dentro da camada. Esse sinalizador é um pouco mais lento que o padrão.
D2D1_LAYER_OPTIONS_FORCE_DWORD
Valor: 0xffffffff

Comentários

A suavização ClearType deve usar o conteúdo atual do destino de renderização para mesclar corretamente. Quando uma camada enviada por push solicita a inicialização para ClearType, Direct2D copia o conteúdo atual do destino de renderização para a camada para que a suavização ClearType possa ser executada. Renderizar o texto ClearType em uma camada transparente não produz os resultados desejados.

Um pequeno impacto no desempenho da cópia de conteúdo ocorre quando ID2D1RenderTarget::Clear é chamado.

Exemplos

O exemplo a seguir mostra como usar CreateLayer, PushLayer e PopLayer. Todos os campos na estrutura D2D1_LAYER_PARAMETERS definidos como padrões, exceto opacityBrush, que é definido como 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);

Para obter exemplos adicionais, consulte a Visão geral das camadas.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Atualização de Plataforma para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Cabeçalho d2d1.h

Confira também

Visão geral das camadas