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;}