SharpDX를 통해 Direct2D를 사용하여 간단한 선 그리기를하고 있습니다. PathGeometry를 만든 다음 Open()을 호출하여 GeometrySink를 얻고 싱크대에 선을 추가합니다. GeometrySinks는 처분 할 수있는, 그래서 이것은 내가 그것을 할 방법을 생각하다 :SharpDX.Direct2D1.GeometrySink를 명시 적으로 삭제해야합니까?
var linePath = new D2D.PathGeometry(D2dFactory);
using (var sink = linePath.Open())
{
sink.BeginFigure(point0, D2D.FigureBegin.Hollow);
sink.AddLine(point1);
sink.AddLine(point2);
sink.EndFigure(D2D.FigureEnd.Open);
sink.Close();
}
이 코드는 작동하지만, VS 2012의 코드 분석 내가 GeometrySink 두 번 폐기 안된다고 말한다. 정말 여기에서 일어나고 있습니까? 내가 sink.Close()
라고 전화했을 때? 그렇다면 using()
성명을 삭제해야합니다. GeometrySink를 사용하는 올바른 방법은 무엇입니까?
그건 내 추측이지만, 이것이 Direct2D 일인지 아니면 SharpDX 일인지 궁금해하고 있습니다. 기본 Direct2D API가 어떻게 작동하는지 알고 있습니까? C++로 이것을 작성했다면 GeometrySink를 릴리스해야합니까? – shoelzer
죄송합니다. 나는 그래픽 종류가 아닙니다. :) –