次の方法で共有


ID2D1Layer インターフェイス (d2d1.h)

レイヤーのレンダリングに必要なバッキング ストアを表します。

継承

ID2D1Layer インターフェイスは ID2D1Resource から継承されます。 ID2D1Layer には、次の種類のメンバーもあります。

メソッド

ID2D1Layer インターフェイスには、これらのメソッドがあります。

 
ID2D1Layer::GetSize

デバイスに依存しないピクセル単位でレイヤーのサイズを取得します。

解説

レイヤーを作成するには、レイヤーを使用するレンダー ターゲットの CreateLayer メソッドを呼び出します。 レイヤーに描画するには、 PushLayer メソッドを呼び出して、レイヤーをレンダー ターゲット スタックにプッシュします。 レイヤーへの描画が完了したら、 PopLayer メソッドを呼び出します。

PushLayer 呼び出しと PopLayer 呼び出しの間で、レイヤーは使用中であり、別のレンダー ターゲットでは使用できません。

レイヤーのサイズが指定されていない場合、対応する PushLayer 呼び出しによって、レイヤーコンテンツ境界とジオメトリック マスクに基づいて、最小レイヤー サイズが決定されます。 レイヤー リソースは、レンダリング成果物なしで PushLayer で必要なサイズよりも大きくなる可能性があります。

レイヤーのサイズが指定されている場合、またはレイヤーが使用されていて、 PushLayer 中に計算される必要なバッキング ストア のサイズがレイヤーよりも大きい場合、レイヤー リソースは各軸に単調に展開され、十分な大きさになるようにします。 レイヤー リソースのサイズが縮小されることはありません。

ID2D1Layer オブジェクトの作成

レイヤーを作成するには、レイヤーを使用するレンダー ターゲットの CreateLayer メソッドを呼び出します。

レイヤーはデバイスに依存するリソースです。アプリケーションは、レイヤーを使用するレンダー ターゲットを初期化した後にレイヤーを作成し、レンダー ターゲットを再作成する必要がある場合は常にレイヤーを再作成する必要があります。 (リソースの詳細については、「リソースの 概要」を参照してください)。

次の例では、レイヤーを使用して図面をジオメトリック マスクにクリップします。 完全な例については、「 方法: ジオメトリック マスクにクリップする」を参照してください。

HRESULT DemoApp::RenderWithLayer(ID2D1RenderTarget *pRT)
{
    HRESULT hr = S_OK;

    // Create a layer.
    ID2D1Layer *pLayer = NULL;
    hr = pRT->CreateLayer(NULL, &pLayer);

    if (SUCCEEDED(hr))
    {
        pRT->SetTransform(D2D1::Matrix3x2F::Translation(350, 50));

        // Push the layer with the geometric mask.
        pRT->PushLayer(
            D2D1::LayerParameters(D2D1::InfiniteRect(), m_pPathGeometry),
            pLayer
            );
            
  
        pRT->DrawBitmap(m_pOrigBitmap, D2D1::RectF(0, 0, 200, 133));
        pRT->FillRectangle(D2D1::RectF(0.f, 0.f, 25.f, 25.f), m_pSolidColorBrush);  
        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->FillRectangle(D2D1::RectF(100.f, 100.f, 125.f, 125.f), m_pSolidColorBrush); 
        pRT->FillRectangle(D2D1::RectF(125.f, 125.f, 150.f, 150.f), m_pSolidColorBrush);    
        

        pRT->PopLayer();
    }

    SafeRelease(&pLayer);

    return hr;
}

要件

   
サポートされている最小のクライアント Windows 7、Windows Vista SP2 および Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d2d1.h

関連項目

ID2D1RenderTarget

ID2D1Resource

レイヤーの概要