gpt4 book ai didi

c++ - 检查所有使用的 OpenGL 扩展

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:35:30 29 4
gpt4 key购买 nike

我在我的应用程序中使用 GLEE,在普通 Windows 上一切正常。

但是,在虚拟化下运行时,我的应用程序无法正常运行。它要么崩溃,要么只呈现黑色。这可能是由于缺少某些 OpenGL 扩展。我试图识别所有使用的扩展并在程序启动期间检查,以便它警告用户。这在崩溃的情况下已经解决了。但是,在呈现黑色的情况下,我没有收到任何扩展名丢失警告。我怀疑这是因为我错过了一些扩展检查。所以我的问题是。

有没有什么好的方法可以识别应用程序中使用的所有 OpenGL 扩展,以便为它们添加检查?

最佳答案

有可能,但需要做一些工作。

GLEE 提供延迟加载,因此您应该能够简单地修改它以记录每个被调用的函数。延迟加载代码(我没有看过,诚然,但它可能是类似的)可能看起来像:
if(funcptr == 0) { _ glee_load_fp(funcptr, _ _ FUNCTION _ _) } funcptr(参数); .

因此,您首先要做的是记录您实际以这种方式调用的所有函数,然后您必须进行反向查找,将函数名称映射到扩展。通常这意味着要解析 glext.spec,这是一个可怕的过程。但幸运的是,您可以从 GLEE 网站下载 GLEE 内部所有内容的 xml 表示形式,这样使用起来要好得多。

关于c++ - 检查所有使用的 OpenGL 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5139312/

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