在xaml项目中使用CoreWindow交换链,为什么没有绘制

Using CoreWindow swapchain in xaml project, why is nothing drawn?

本文关键字:为什么 绘制 交换 CoreWindow 项目 xaml      更新时间:2023-10-16

我目前正在做一个Win8项目,使用c#和XAML作为应用程序的前端,使用c++和DirectX作为图形密集型部分。因为它主要集中于实时图形和输入,所以我决定使用为CoreWindow创建的SwapChain。

当我设法通过将渲染线程绑定到CompositionTarget来运行时,屏幕仍然是黑色的。绘图代码工作得很好,它与imagessurfacesource,我切换到SwapChain最近。

即使初始化的任何部分都没有返回任何错误你们有人能解释一下为什么它没有绘制任何东西吗?

完全相同的问题,我使用交换链,我的整个屏幕变黑。后端为c++ windows运行时组件,实际执行代码驻留在c# win8项目中。

同样的代码在c++项目中开始工作。


重建错误的步骤:

(我从这里使用互操作代码:interop)呈现给SwapChainBackgroundPanel)

  1. c++ windows运行时组件,获取交换链,并呈现

  2. 我将这个组件添加到一个c++空白商店应用程序中,渲染效果很好。

  3. 将相同的组件项目添加到c#空白存储应用程序//然后创建一个swapChainPanel ..把它传过去。

<标题>解决方案:

我设置了CompositionTarget.Rendering += OnRendering; // the render event

而导航。现在我注意到,我从来没有真正导航过。

所以renderer从未被调用…在构造函数中添加事件解决了我的问题