ID2D1Geometry::Simplify method

Creates a simplified version of the geometry that contains only lines and (optionally) cubic Bezier curves and writes the result to an ID2D1SimplifiedGeometrySink.

Syntax


HRESULT Simplify(
  D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,
  [in, optional]  const D2D1_MATRIX_3X2_F *worldTransform,
  [in]            ID2D1SimplifiedGeometrySink *geometrySink
) const;

Parameters

simplificationOption

Type: D2D1_GEOMETRY_SIMPLIFICATION_OPTION

A value that specifies whether the simplified geometry should contain curves.

worldTransform [in, optional]

Type: const D2D1_MATRIX_3X2_F*

The transform to apply to the simplified geometry, or NULL.

geometrySink [in]

Type: ID2D1SimplifiedGeometrySink*

The ID2D1SimplifiedGeometrySink to which the simplified geometry is appended.

Return value

Type: HRESULT

If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.

Examples

The following code shows how to use Simplify method to transform a geometry with Beziers into one containing only line segments. For the complete project, see Interactive 3D Text Sample.


HRESULT D2DFlatten(
    ID2D1Geometry *pGeometry,
    float flatteningTolerance,
    ID2D1Geometry **ppGeometry
    )
{
    HRESULT hr;
    ID2D1Factory *pFactory = NULL;
    pGeometry->GetFactory(&pFactory);

    ID2D1PathGeometry *pPathGeometry = NULL;
    hr = pFactory->CreatePathGeometry(&pPathGeometry);

    if (SUCCEEDED(hr))
    {
        ID2D1GeometrySink *pSink = NULL;
        hr = pPathGeometry->Open(&pSink);

        if (SUCCEEDED(hr))
        {
            hr = pGeometry->Simplify(
                    D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES,
                    NULL, // world transform
                    flatteningTolerance,
                    pSink
                    );

            if (SUCCEEDED(hr))
            {
                hr = pSink->Close();

                if (SUCCEEDED(hr))
                {
                    *ppGeometry = pPathGeometry;
                    (*ppGeometry)->AddRef();
                }
            }
            pSink->Release();
        }
        pPathGeometry->Release();
    }

    pFactory->Release();

    return hr;
}


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

ID2D1Geometry

 

 

Community Additions

ADD
Show:
© 2014 Microsoft