ID2D1PathGeometry interface (d2d1.h)
Represents a complex shape that may be composed of arcs, curves, and lines.
Inheritance
The ID2D1PathGeometry interface inherits from ID2D1Geometry. ID2D1PathGeometry also has these types of members:
Methods
The ID2D1PathGeometry interface has these methods.
ID2D1PathGeometry::GetFigureCount Retrieves the number of figures in the path geometry. |
ID2D1PathGeometry::GetSegmentCount Retrieves the number of segments in the path geometry. |
ID2D1PathGeometry::Open Retrieves the geometry sink that is used to populate the path geometry with figures and segments. |
ID2D1PathGeometry::Stream Copies the contents of the path geometry to the specified ID2D1GeometrySink. |
Remarks
An ID2D1PathGeometry object enables you to describe a geometric path. To describe an ID2D1PathGeometry object's path, use the object's Open method to retrieve an ID2D1GeometrySink. Use the sink to populate the path geometry with figures and segments.
Creating ID2D1PathGeometry Objects
To create a path geometry, use the ID2D1Factory::CreatePathGeometry method.ID2D1PathGeometry objects are device-independent resources created by ID2D1Factory. In general, you should create geometries once and retain them for the life of the application, or until they need to be modified. For more information about device-independent and device-dependent resources, see the Resources Overview.
Examples
The following example creates an ID2D1PathGeometry, retrieves a sink, and uses it to define an hourglass shape. For the complete example, see How to Draw and Fill a Complex Shape.
ID2D1GeometrySink *pSink = NULL;
// Create a path geometry.
if (SUCCEEDED(hr))
{
hr = m_pD2DFactory->CreatePathGeometry(&m_pPathGeometry);
if (SUCCEEDED(hr))
{
// Write to the path geometry using the geometry sink.
hr = m_pPathGeometry->Open(&pSink);
if (SUCCEEDED(hr))
{
pSink->BeginFigure(
D2D1::Point2F(0, 0),
D2D1_FIGURE_BEGIN_FILLED
);
pSink->AddLine(D2D1::Point2F(200, 0));
pSink->AddBezier(
D2D1::BezierSegment(
D2D1::Point2F(150, 50),
D2D1::Point2F(150, 150),
D2D1::Point2F(200, 200))
);
pSink->AddLine(D2D1::Point2F(0, 200));
pSink->AddBezier(
D2D1::BezierSegment(
D2D1::Point2F(50, 150),
D2D1::Point2F(50, 50),
D2D1::Point2F(0, 0))
);
pSink->EndFigure(D2D1_FIGURE_END_CLOSED);
hr = pSink->Close();
}
SafeRelease(&pSink);
}
}
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista [desktop apps | UWP apps] |
Minimum supported server | Windows Server 2008 R2, Windows Server 2008 with SP2 and Platform Update for Windows Server 2008 [desktop apps | UWP apps] |
Target Platform | Windows |
Header | d2d1.h |