ID2D1PathGeometry::Open メソッド

図と線分を持つパス ジオメトリの作成に使用されるジオメトリ シンクを取得します。

構文

virtual HRESULT Open(
  [out]  ID2D1GeometrySink **geometrySink
) = 0;

パラメーター

  • geometrySink [out]
    ID2D1GeometrySink このメソッドが返されるときに、geometrySink には、図と線分を持つパス ジオメトリの作成に使用されるジオメトリ シンクへのポインターのアドレスが格納されます。このパラメーターは初期化されずに渡されます。

戻り値

HRESULT

メソッドが成功した場合は、S_OK が返されます。 それ以外の場合は、エラー コードが返されます。HRESULT.

解説

パス ジオメトリは不変で一度しか作成できないため、パス ジオメトリで Open を複数回呼び出すとエラーになります。

塗りつぶしモードの既定値は D2D1_FILL_MODE_ALTERNATE です。塗りつぶしモードを設定するには、BeginFigure の最初の呼び出しの前に SetFillMode を呼び出します。この順で呼び出さないと、ジオメトリ シンクがエラー状態になります。

次の例では、ID2D1PathGeometry を作成してシンクを取得し、取得したシンクを使用して砂時計の図形を定義します。完全な例については、「複雑な図形を描画して塗りつぶす方法」を参照してください。

  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);
    }
}

要件

クライアントの最小要件

Windows 7, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム

サーバーの最小要件

Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム

ヘッダー

D2d1.h

ライブラリ

D2d1.lib

DLL

D2d1.dll

参照

ID2D1PathGeometry