ID2D1PathGeometry::Open 메서드(d2d1.h)
경로 기하 도형을 그림 및 세그먼트로 채우는 데 사용되는 기하 도형 싱크를 검색합니다.
구문
HRESULT Open(
[out] ID2D1GeometrySink **geometrySink
);
매개 변수
[out] geometrySink
형식: 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 Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | d2d1.h |
라이브러리 | D2d1.lib |
DLL | D2d1.dll |