ID2D1Layer 接口 (d2d1.h)

表示呈现层所需的后备存储。

继承

ID2D1Layer 接口继承自 ID2D1ResourceID2D1Layer 还具有以下类型的成员:

方法

ID2D1Layer 接口具有这些方法。

 
ID2D1Layer::GetSize

获取层的大小(以与设备无关的像素为单位)。

备注

若要创建层,请调用将使用该层的呈现器目标的 CreateLayer 方法。 若要绘制到层,请通过调用 PushLayer 方法将层推送到呈现目标堆栈。 完成对层的绘制后,调用 PopLayer 方法。

PushLayerPopLayer 调用之间,层正在使用中,不能由另一个呈现目标使用。

如果未指定层的大小,则相应的 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、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 d2d1.h

另请参阅

ID2D1RenderTarget

ID2D1Resource

层概述