ID2D1BitmapRenderTarget 接口 (d2d1.h)
呈现到 由 CreateCompatibleRenderTarget 方法创建的中间纹理。
继承
ID2D1BitmapRenderTarget 接口继承自 ID2D1RenderTarget。 ID2D1BitmapRenderTarget 也具有以下类型的成员:
方法
ID2D1BitmapRenderTarget 接口具有这些方法。
ID2D1BitmapRenderTarget::GetBitmap 检索此渲染目标的位图。 返回的位图可用于绘图操作。 |
注解
ID2D1BitmapRenderTarget 写入中间纹理。 这对于创建用于 ID2D1BitmapBrush 的模式或缓存将重复使用的绘图数据非常有用。
若要改为直接写入 WIC 位图,请使用 ID2D1Factory::CreateWicBitmapRenderTarget 方法。 此方法返回写入指定 WIC 位图的 ID2D1RenderTarget 。
创建 ID2D1BitmapRenderTarget 对象
若要创建位图呈现目标,请调用 ID2D1RenderTarget::CreateCompatibleRenderTarget 方法。与其他呈现目标一样, ID2D1BitmapRenderTarget 是依赖于设备的资源,必须在关联的设备不可用时重新创建。 有关详细信息,请参阅 资源概述。
示例
以下示例使用 CreateCompatibleRenderTarget 方法创建 ID2D1BitmapRenderTarget 并使用它绘制网格模式。 网格模式用作 ID2D1BitmapBrush 的源。
HRESULT DemoApp::CreateGridPatternBrush(
ID2D1RenderTarget *pRenderTarget,
ID2D1BitmapBrush **ppBitmapBrush
)
{
// Create a compatible render target.
ID2D1BitmapRenderTarget *pCompatibleRenderTarget = NULL;
HRESULT hr = pRenderTarget->CreateCompatibleRenderTarget(
D2D1::SizeF(10.0f, 10.0f),
&pCompatibleRenderTarget
);
if (SUCCEEDED(hr))
{
// Draw a pattern.
ID2D1SolidColorBrush *pGridBrush = NULL;
hr = pCompatibleRenderTarget->CreateSolidColorBrush(
D2D1::ColorF(D2D1::ColorF(0.93f, 0.94f, 0.96f, 1.0f)),
&pGridBrush
);
if (SUCCEEDED(hr))
{
pCompatibleRenderTarget->BeginDraw();
pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.0f, 10.0f, 1.0f), pGridBrush);
pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.1f, 1.0f, 10.0f), pGridBrush);
pCompatibleRenderTarget->EndDraw();
// Retrieve the bitmap from the render target.
ID2D1Bitmap *pGridBitmap = NULL;
hr = pCompatibleRenderTarget->GetBitmap(&pGridBitmap);
if (SUCCEEDED(hr))
{
// Choose the tiling mode for the bitmap brush.
D2D1_BITMAP_BRUSH_PROPERTIES brushProperties =
D2D1::BitmapBrushProperties(D2D1_EXTEND_MODE_WRAP, D2D1_EXTEND_MODE_WRAP);
// Create the bitmap brush.
hr = m_pRenderTarget->CreateBitmapBrush(pGridBitmap, brushProperties, ppBitmapBrush);
pGridBitmap->Release();
}
pGridBrush->Release();
}
pCompatibleRenderTarget->Release();
}
return hr;
}
下面的代码示例使用画笔绘制图案。
// Paint a grid background.
m_pRenderTarget->FillRectangle(
D2D1::RectF(0.0f, 0.0f, renderTargetSize.width, renderTargetSize.height),
m_pGridPatternBitmapBrush
);
此示例中已省略代码。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | d2d1.h |