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.

MethodDescription
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

D2d1.h

Library

D2d1.lib

DLL

D2d1.dll

See also

ID2D1Factory::CreatePathGeometry
Path Geometries Overview
Geometries Overview
Geometries How-to Topics

 

 

Community Additions

ADD
Show:
© 2014 Microsoft