gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 07:48:54 25 4
gpt4 key购买 nike

我目前正在开发一个 Win8 项目,该项目使用 C# 和 XAML 作为应用程序的前端,使用带有 DirectX 的 C++ 作为图形密集型部分。因为它主要以实时图形和输入为中心,所以我决定使用为 CoreWindow 创建的交换链。

虽然我通过将渲染线程绑定(bind)到 CompositionTarget 设法让渲染线程运行,但屏幕仍然是黑色的。绘图代码工作正常,它使用 ImageSurfaceSource,我最近切换到 SwapChain。

即使初始化的任何部分都没有返回任何错误,你们中的任何人都可以阐明为什么它不绘制任何东西吗?

最佳答案

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

相同的代码开始在 c++ 项目中运行。


重现错误的步骤:

(我使用了此处的互操作代码:interop)呈现给 SwapChainBackgroundPanel)

  1. c++ windows 运行时组件,采用交换链并呈现。

  2. 我将这个组件添加到一个 C++ 空白商店应用程序中,渲染工作正常。

  3. 将相同的组件项目添加到 C# 空白商店应用//然后创建一个 swapChainPanel .. 并传递它。这是我最终得到一个空白屏幕的地方。

解决方案:

我设置了 CompositionTarget.Rendering += OnRendering;//渲染事件

导航时。现在我注意到我从未真正导航过。

所以渲染器从未被调用...在构造函数上添加事件解决了我的问题。

关于c# - 在 xaml 项目中使用 CoreWindow 交换链,为什么没有绘制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14268806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com