0

私は現在、アプリケーションのフロントエンドに C# と XAML を使用し、グラフィカルな部分に DirectX を使用した C++ を使用する Win8 プロジェクトに取り組んでいます。主にリアルタイム グラフィックスと入力が中心であるため、CoreWindow 用に作成された SwapChain を使用することにしました。

レンダリング スレッドを CompositionTarget にバインドして実行することはできましたが、画面はまだ黒いままです。描画コードは正常に動作し、ImageSurfaceSource で動作しました。最近 SwapChain に切り替えました。

初期化のどの部分でもエラーが返されませんが、何も描画されない理由を明らかにすることはできますか?

4

1 に答える 1

1

まったく同じ問題です。スワップ チェーンを使用すると、画面全体が真っ暗になります。バックエンドは c++ Windows ランタイム コンポーネントであり、実際の実行コードは C# win 8 プロジェクトにあります。

同じコードが C++ プロジェクト内に配置されて機能し始めます。


エラーを再現する手順:

(ここから相互運用コードを使用しました: interop ) SwapChainBackgroundPanel に提示します)

  1. c++ Windows ランタイム コンポーネントは、スワップチェーンを受け取り、提示します。

  2. このコンポーネントを C++ の空のストア アプリに追加すると、レンダリングが正常に機能します。

  3. // 同じコンポーネント プロジェクトを C# の空のストア アプリに追加し、swapChainPanel を作成して渡します。これは、空白の画面が表示される場所です。

解決:

私はCompositionTarget.Rendering += OnRendering; // the render event

ナビゲート中。ここで、実際にナビゲートしたことがないことに注意してください。

したがって、レンダラーは呼び出されませんでした...コンストラクターにイベントを追加すると、私のケースは解決しました。

于 2013-03-21T04:46:13.767 に答える