gpt4 book ai didi

windows - glext.h 的问题

转载 作者:IT王子 更新时间:2023-10-29 00:39:34 25 4
gpt4 key购买 nike

当我发现 something that now has me scared to use glext.h 时,我正在浏览 OS X Lion 上的 OpenGL 更新。 .

所以,这是错误。 Lion 的 OpenGL.framework 有一个具有以下定义的 glext.h

typedef void *GLhandleARB;

但是 OpenGL 注册表中的 glext.h 有以下内容。

typedef unsigned int GLhandleARB;

现在,问题在于在 Lion 上构建 x86_64 时我们有 sizeof(void*)==8,但是 sizeof(unsigned int)==4。那你相信什么?狮子头?或者 OpenGL 注册表的 header ?好吧,您当然相信系统 header ,因为显然他们声称知道 64 位 Lion 上的 ABI 具有 64 位 GLhandleARB 类型。

现在,这在我脑海中提出了一些关于各种平台的问题:

  1. 如果您必须使用 Apple 的 glext.h,但 Apple 的 glext.h 不提供任何晚于OpenGL 2.1,那么如何在较新的显卡上获得 3.0+ 功能?

  2. 在 Linux 上使用 OpenGL 注册表的 glext.h 是否不安全?或者您也必须在那里使用系统的 glext.h 吗?在这种情况下,问题 #1 也适用于此。

  3. 在系统上从不glext.h 的情况下,您到底是如何处理 Windows 上的事情的?您显然不能使用驱动程序供应商的 glext.h,因为不同的供应商可能不同意各种类型的大小。 (或者这不是真的?)这是怎么回事?

最佳答案

我看没问题。只需使用操作系统/驱动程序提供的 header 。或者更好地使用多平台 OpenGL 扩展加载器,这将为您解决问题。(例如 GLEW)

另一方面,在代码中你将只使用 GLhandleARB,而不是其他东西,所以在 Mac 上它将是无效的* - 没问题,在 Linux 上 - 不同的东西 - 没问题,在带有 AMD header 的 Linux 上 - 完全不同的东西 -没问题。

源代码可跨不同平台移植,而不是二进制文件,所以我认为这里没有问题。

1) 如果您使用 Apple 提供的版本,您将无法获得更好的 OpenGL。所以目前你可以在 10.7 上获得最大的 OpenGL 3.2 核心配置文件。 (听说 Nvidia 在某些 gpus 上用自己的 OpenGL 3.3 header 绕过了它,但我自己无法检查)。

2) 这取决于。如果您的目标是 OpenGL 2.1 及更低版本,则开源驱动程序支持它,但更高版本仅由专有驱动程序支持,因此您应该使用它们的 header 。但在代码中,您只需放置“#include”,然后链接到适当的 header 和 .so 库。

3) 不知道Win上的情况如何。但供应商可能使用来自 OpenGL 注册表的 glext。

但这一切都是基于错误的假设。您不必知道他们的答案。只需使用已经知道如何处理这种负担的软件。 (例如 GLEW)。

关于windows - glext.h 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6993871/

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