2017-03-24 8 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の描画呼び出しでブラシを使用する必要があるためです。

誰もが私をしてください点灯することができます(...ロジック思われる)DirectXのリソース例外を投げる()ID2D1DeviceContext.Draw_somethingでそれらを使用しようその後、私のブラシを作成し、するID2D1Factoryからレンダーターゲットを作成しますか?

ありがとうございました。

+1

sharpdxについてよくわかりませんが、実際にDirect2D SDKを見たことがありますか? ID2D1DeviceContext自体はレンダーターゲットですが、ID2D1RenderTargetから継承します。 – bunglehead

+0

私はばかです...私はそれに気づいていません! DeviceContextをRenderTargetとして渡す必要があります。必要に応じて、自分の投稿に返信して、Accepted Answerとしてマークすることができます。ありがとう;) – Karnalta

+0

いいえ、回答として投稿しました。 – bunglehead

答えて

1

SDK ID2D1DeviceContext自体はレンダリング対象であるため、ID2D1RenderTargetを継承しています。だから、デバイスコンテキストポインタをレンダリングターゲットポインタの引数値として使用できるはずです。

関連する問題