我目前正在开发一个Win8项目,该项目使用C#和XAML作为应用程序的前端,使用DirectX的C ++作为图形密集型部分。 因为它主要集中在实时图形和输入上,所以我决定使用为CoreWindow创建的SwapChain。
虽然我设法通过将渲染线程绑定到CompositionTarget来运行渲染线程,但屏幕仍然是黑色的。绘图代码工作正常,它使用ImageSurfaceSource,我最近切换到SwapChain。
即使初始化的任何部分都没有返回任何错误,你们中的任何一个都可以解释为什么它没有绘制任何东西吗?
答案 0 :(得分:1)
完全相同的问题,我使用交换链我的整个屏幕变黑。 后端是c ++ Windows运行时组件,实际执行代码驻留在C#win 8项目中。
相同的代码开始在c ++项目中工作。
(我在这里使用了互操作代码:interop)来呈现给SwapChainBackgroundPanel)
c ++ Windows运行时组件,接受交换链和礼物。
我将此组件添加到c ++空白商店应用程序,渲染效果很好。
将相同的组件项目添加到C#空白商店应用程序//然后创建swapChainPanel ..并传递它。这是我最终得到一个空白屏幕的地方。
我设置了CompositionTarget.Rendering += OnRendering; // the render event
现在我注意到我从未真正导航过。
所以渲染器永远不会被调用...在构造函数上添加事件解决了我的情况。