ID2D1PathGeometry interface
Represents a complex shape that may be composed of arcs, curves, and lines.
When to implement
Custom implementations are not supported.
Members
The ID2D1PathGeometry interface inherits from ID2D1Geometry. ID2D1PathGeometry also has these types of members:
Methods
The ID2D1PathGeometry interface has these methods.
| Method | Description |
|---|---|
| GetFigureCount |
Retrieves the number of figures in the path geometry. |
| GetSegmentCount |
Retrieves the number of segments in the path geometry. |
| Open |
Retrieves the geometry sink that is used to populate the path geometry with figures and segments. |
| 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
|
Minimum supported client |
Windows 7, Windows Vista with SP2 and Platform Update for Windows Vista [desktop apps | Windows Store apps] |
|---|---|
|
Minimum supported server |
Windows Server 2008 R2, Windows Server 2008 with SP2 and Platform Update for Windows Server 2008 [desktop apps | Windows Store apps] |
|
Minimum supported phone |
Windows Phone 8.1 [Windows Phone Silverlight 8.1 and Windows Runtime apps] |
|
Header |
|
|
Library |
|
|
DLL |
|
See also
- ID2D1Geometry
- ID2D1Factory::CreatePathGeometry
- Path Geometries Overview
- Geometries Overview
- Geometries How-to Topics