2017-03-24 1 views
0

내가 (sharpdx를 사용하여 C#에서)이 응용 프로그램에 대한 Direct2D의 배우고하지만 난 일을 할 수있는 최신의 방법이다 찾기 위해 힘든 시간을 ... 여기 SharpDX/SolidColorBrush 생성자가 DeviceContext를 사용합니까?

내 현재의 문제 :

처음에는 MSDN의 "빠른 시작"에서 설명한 것처럼 D2D1Factory와 함께 Direct2D 만 사용했습니다. 그러나 성능을 최적화하려고 할 때 some caching mechanism에 액세스하려면 ID2D1DeviceContext를 사용하여 그려야합니다. 따라서 this MSDN article을 따라 제 신청서를 업데이트했습니다.

그러나 SolidColorBrush의 SharpDX 생성자는 RenderTarget을 첫 번째 매개 변수로 받아들이지 만, 생성자는 DeviceContext를 받아들이지 않습니다. 하지만 그것을 가지고, SharpDX 코드 샘플을 발견했습니다.

해당 메소드가 삭제 되었습니까? SharpDX가이 생성자를 삭제 한 이유는 무엇입니까? DeviceContext에서 브러시를 초기화하여 DeviceContext에서 호출을 사용하도록해야하기 때문입니다.

누구나 제발 불 수 있습니다 (... 로직 것)는 다이렉트 자원 예외를 throw() ID2D1DeviceContext.Draw_something로 사용하려고 다음 붓을 만들 수있는 ID2D1Factory에서 렌더 타겟을 만들기?

고맙습니다.

+1

sharpdx에 대해 모르겠다. 필요 없다.하지만 실제 Direct2D SDK를 보셨습니까? ID2D1DeviceContext 그 자체가 렌더링 타겟이며, ID2D1RenderTarget로부터 상속받습니다. – bunglehead

+0

나는 어리 석다 ... 나는 그것을 알아 차리지 못했다! DeviceContext를 RenderTarget으로 전달하면됩니다 ... 원한다면 내 게시물에 귀하의 코멘트로 답장을 보내서 Accepted Answer로 표시 할 수 있습니다. 감사합니다;) – Karnalta

+0

답변으로 게시 됨. – bunglehead

답변

1

SDK ID2D1DeviceContext 자체는 렌더링 대상이므로 ID2D1RenderTarget에서 상속됩니다. 따라서 장치 컨텍스트 포인터를 렌더링 대상 포인터 인수 값으로 사용할 수 있어야합니다.

관련 문제