gpt4 book ai didi

c++ - QQuickItem 不会渲染

转载 作者:太空宇宙 更新时间:2023-11-04 14:01:48 24 4
gpt4 key购买 nike

我对这个错误束手无策。任何有关如何追踪它的建议都将不胜感激。

背景:

我一直在尝试将 ogre3d View 实现为 Qt5 中的 QQuickItem。有一个示例 (qmlogre) 表明这是可能的。需要的示例代码对 Win32 进行了大量重构,并且做的不仅仅是演示。该示例只是概念证明。

问题:

当我在 Ogre 代码 (SceneManager::createEntity) 中调用特定方法时,Qt 项目将不再呈现。如果我注释掉对它呈现的方法的调用。如果我注释掉方法中的代码并将其替换为“return 0”,它将不再呈现。有问题的代码与图形无关(它将 3d 实体加载到内存中)。

我尝试过的:

  • 检查显示异常的 ogre 日志。
  • 将 Qt 日志记录重定向到一个文件以查看警告/异常。
  • 检查“this”指针。我在方法入口处将“this”动态地转换为它正在运行的类,并收到一个非空指针。所以 rtti 认为它是一个有效的类指针。
  • 为确保 Qt 代码正确无误,我将 qmlogre 示例中的自定义呈现代码替换为呈现纯色矩形的代码。
  • 我似乎没有失忆

我可以在 valgrind 下运行这么大、这么复杂的东西吗?有没有类似的好用的工具? (编译器是Windows 7上v5.1下载Qt提供的Mingw)

我知道 Qt5 默认是线程化的。如何判断是否超出了线程堆栈大小?

Ogre 不是线程安全的。 Qt代码是否有可能同时在不同线程上运行并导致食人魔崩溃?我的代码由来自 QML 的事件调用(它在 Qt 槽中)。

最佳答案

我不太了解 Ogre,但文档说实体类使用 OpenGL 缓冲区。那么可能您在访问 OpenGL 后端的线程之间存在冲突。

您是否尝试过像 GLIntercept 或 gDEBugger 这样的 OpenGL 调试器(参见 https://www.opengl.org/wiki/Debugging_Tools)?

关于c++ - QQuickItem 不会渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19005854/

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