我正在开发一个已有十多年历史的跨平台应用程序。UI 由 Qt 完成,后端渲染由 OpenGL 完成。OpenGL 上下文在后端管理,而不是由 Qt。
我最近为我们的应用程序中的所有 OpenGL 代码添加了错误检查和报告。偶尔会出现这样一种情况,即由 Qt 启动的第一次渲染会在终端中导致“无效的可绘制”错误消息,并且所有后续的 OpenGl 调用都会失败并报告“无效的帧缓冲区”错误。这些无效的drawable错误消息在过去被视为无害的,因为在用户看到它之前,drawable最终变得有效并且场景被正确渲染。但是,使用新的 OpenGL 错误检查/报告是不可能的,因为报告了大量错误。
我想测试drawable是否有效。如果不是,它应该在渲染开始之前返回。如何验证可绘制对象是否有效?
MacBook Pro、OS X Mountain Lion (10.8.3)、ati 显卡