Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

ID2D1RenderTarget::FillRectangle(constD2D1_RECT_F*,ID2D1Brush*) method (d2d1.h)

Paints the interior of the specified rectangle.

Syntax

void FillRectangle(
 const D2D1_RECT_F *rect,
 ID2D1Brush *brush
);

Parameters

rect

Type: [in] const D2D1_RECT_F*

The dimension of the rectangle to paint, in device-independent pixels.

brush

Type: [in] ID2D1Brush*

The brush used to paint the rectangle's interior.

Return value

None

Remarks

This method doesn't return an error code if it fails. To determine whether a drawing operation (such as FillRectangle) failed, check the result returned by the ID2D1RenderTarget::EndDraw or ID2D1RenderTarget::Flush methods.

Examples

The following example uses an ID2D1HwndRenderTarget to draw and fill several rectangles. This example produces the output shown in the following illustration.

👁 Illustration of two rectangles on a grid background
// This method discards device-specific
// resources if the Direct3D device disappears during execution and
// recreates the resources the next time it's invoked.
HRESULT DemoApp::OnRender()
{
 HRESULT hr = S_OK;

 hr = CreateDeviceResources();

 if (SUCCEEDED(hr))
 {
 m_pRenderTarget->BeginDraw();

 m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());

 m_pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::White));

 D2D1_SIZE_F rtSize = m_pRenderTarget->GetSize();

 // Draw a grid background.
 int width = static_cast<int>(rtSize.width);
 int height = static_cast<int>(rtSize.height);

 for (int x = 0; x < width; x += 10)
 {
 m_pRenderTarget->DrawLine(
 D2D1::Point2F(static_cast<FLOAT>(x), 0.0f),
 D2D1::Point2F(static_cast<FLOAT>(x), rtSize.height),
 m_pLightSlateGrayBrush,
 0.5f
 );
 }

 for (int y = 0; y < height; y += 10)
 {
 m_pRenderTarget->DrawLine(
 D2D1::Point2F(0.0f, static_cast<FLOAT>(y)),
 D2D1::Point2F(rtSize.width, static_cast<FLOAT>(y)),
 m_pLightSlateGrayBrush,
 0.5f
 );
 }

 // Draw two rectangles.
 D2D1_RECT_F rectangle1 = D2D1::RectF(
 rtSize.width/2 - 50.0f,
 rtSize.height/2 - 50.0f,
 rtSize.width/2 + 50.0f,
 rtSize.height/2 + 50.0f
 );

 D2D1_RECT_F rectangle2 = D2D1::RectF(
 rtSize.width/2 - 100.0f,
 rtSize.height/2 - 100.0f,
 rtSize.width/2 + 100.0f,
 rtSize.height/2 + 100.0f
 );


 // Draw a filled rectangle.
 m_pRenderTarget->FillRectangle(&rectangle1, m_pLightSlateGrayBrush);

 // Draw the outline of a rectangle.
 m_pRenderTarget->DrawRectangle(&rectangle2, m_pCornflowerBlueBrush);

 hr = m_pRenderTarget->EndDraw();
 }

 if (hr == D2DERR_RECREATE_TARGET)
 {
 hr = S_OK;
 DiscardDeviceResources();
 }

 return hr;
}

For a related tutorial, see Create a simple Direct2D application.

Requirements

Requirement Value
Target Platform Windows
Header d2d1.h (include D2d1.h)
Library D2d1.lib
DLL D2d1.dll

See also

Create a simple Direct2D application

ID2D1RenderTarget


Feedback

Was this page helpful?

Additional resources