Share via


D2D1_LAYER_OPTIONS 列挙型

レイヤーの作成にレイヤー リソースが適用されるときに適用できるオプションを指定します。

構文

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

定数

  • D2D1_LAYER_OPTIONS_NONE
    このレイヤーのテキストでは、ClearType アンチエイリアシングを使用しません。

  • D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE
    レイヤーは ClearType テキスト用に正しくレンダリングされます。レンダー ターゲットが ClearType に設定されている場合、レイヤーは ClearType のレンダリングを続行します。レンダー ターゲットが ClearType に設定されていても、このオプションが指定されていない場合、レンダー ターゲットは、レイヤーがポップされるまでグレー スケールをレンダリングするように設定されます。呼び出し元は、レイヤー内でSetTextAntialiasMode を呼び出すことで、この既定値をオーバーライドできます。このフラグは、既定値より若干遅くなります。

解説

ClearType アンチエイリアシングでは、レンダー ターゲットの現在の内容を使用して適切にブレンドする必要があります。プッシュされたレイヤーが ClearType の初期化を要求すると、Direct 2D は ClearType アンチエイリアシングを実行できるようにレンダー ターゲットの現在の内容をレイヤーにコピーします。ClearType テキストを透過的なレイヤーにレンダリングしても、目的の結果は生成されません。

ID2D1RenderTarget::Clear を呼び出すと、内容が再度コピーされることによってパフォーマンスに若干の影響が生じます。

次の例は、CreateLayerPushLayer、および 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));

    m_pRenderTarget->FillRectangle(
        D2D1::RectF(25.f, 25.f, 50.f, 50.f), 
        m_pSolidColorBrush
        );
    m_pRenderTarget->FillRectangle(
        D2D1::RectF(50.f, 50.f, 75.f, 75.f),
        m_pSolidColorBrush
        ); 
    m_pRenderTarget->FillRectangle(
        D2D1::RectF(75.f, 75.f, 100.f, 100.f),
        m_pSolidColorBrush
        );    
 
    m_pRenderTarget->PopLayer();
}
SafeRelease(&pLayer);

その他の例については、「レイヤーの概要」を参照してください。

要件

クライアントの最小要件

Windows 7, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム

サーバーの最小要件

Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム

ヘッダー

D2d1.h

参照

レイヤーの概要