ID2D1RenderTarget::CreateLayer(constD2D1_SIZE_F*,ID2D1Layer**) メソッド (d2d1.h)

このレンダー ターゲットとその互換性のあるレンダー ターゲットで使用できるレイヤー リソースを作成します。

構文

HRESULT CreateLayer(
  const D2D1_SIZE_F *size,
  ID2D1Layer        **layer
);

パラメーター

size

型: [in] const D2D1_SIZE_F*

(0, 0) が指定されている場合、レイヤー リソースの背後にバッキング ストアは作成されません。 PushLayer が呼び出されると、レイヤー リソースは最小サイズに割り当てられます。

layer

種類: [out] ID2D1Layer**

メソッドから制御が戻るときに、新しいレイヤーへのポインターへのポインターが格納されます。 このパラメーターは初期化せずに渡されます。

戻り値

型: HRESULT

このメソッドは、成功すると S_OK を返します。 それ以外の場合は、 HRESULT エラー コードが返されます。

注釈

必要に応じて、レイヤー自体のサイズが自動的に変更されます。

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

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
ヘッダー d2d1.h
Library D2d1.lib
[DLL] D2d1.dll

こちらもご覧ください

ID2D1RenderTarget

レイヤーの概要