0

我目前正在开发一个 Win8 项目,该项目使用 C# 和 XAML 作为应用程序的前端,使用 C++ 和 DirectX 作为图形密集型部分。因为它主要以实时图形和输入为中心,所以我决定使用为 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 回答