HRESULT ImageComponent::CreateGridPatternBrush(ID2D1RenderTarget *pRenderTarget,ID2D1BitmapBrush **ppBitmapBrush)
{
HRESULT hr = S_OK;
// Create a compatible render target.
ID2D1BitmapRenderTarget *pCompatibleRenderTarget = NULL;
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.0f, 1.0f, 10.0f), pGridBrush);
hr = pCompatibleRenderTarget->EndDraw();
if (SUCCEEDED(hr))
{
// Retrieve the bitmap from the render target.
ID2D1Bitmap *pGridBitmap = NULL;
hr = pCompatibleRenderTarget->GetBitmap(&pGridBitmap);
if (SUCCEEDED(hr))
{
// Create the bitmap brush.
hr = m_pRenderTarget->CreateBitmapBrush(pGridBitmap,D2D1::BitmapBrushProperties(D2D1_EXTEND_MODE_WRAP,D2D1_EXTEND_MODE_WRAP),ppBitmapBrush);
pGridBitmap->Release();
}
}
pGridBrush->Release();
}
pCompatibleRenderTarget->Release();
}
return hr;
}