GL_EXT_packed_pixels 对比 GL_APPLE_packed_pixels
GL_EXT_packed_pixels vs GL_APPLE_packed_pixels
我的应用程序在使用 UNSIGNED_INT_8_8_8_8_EXT
等打包像素格式之前检查 GL_EXT_packed_pixels
扩展名。在我的 MacBook 上,我的代码找不到这个扩展,尽管使用打包像素格式似乎仍然有效。
OpenGL Extension Viewer 似乎暗示它在 OS X:
上有一个特殊的名称
有什么区别?在评估是否支持 UNSIGNED_INT_8_8_8_8_EXT
时,我应该只检查 GL_EXT_packed_pixels
or GL_APPLE_packed_pixels
吗?
EXT_packed_pixels
有这些定义:
UNSIGNED_BYTE_3_3_2_EXT 0x8032
UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
UNSIGNED_INT_8_8_8_8_EXT 0x8035
UNSIGNED_INT_10_10_10_2_EXT 0x8036
虽然 APPLE_packed_pixels
有这些:
UNSIGNED_BYTE_3_3_2 0x8032
UNSIGNED_BYTE_2_3_3_REV 0x8362
UNSIGNED_SHORT_5_6_5 0x8363
UNSIGNED_SHORT_5_6_5_REV 0x8364
UNSIGNED_SHORT_4_4_4_4 0x8033
UNSIGNED_SHORT_4_4_4_4_REV 0x8365
UNSIGNED_SHORT_5_5_5_1 0x8034
UNSIGNED_SHORT_1_5_5_5_REV 0x8366
UNSIGNED_INT_8_8_8_8 0x8035
UNSIGNED_INT_8_8_8_8_REV 0x8367
UNSIGNED_INT_10_10_10_2 0x8036
UNSIGNED_INT_2_10_10_10_REV 0x8368
两者比较,EXT_packed_pixels
是APPLE_packed_pixels
的子集,共享值相同。因此,如果支持 APPLE_packed_pixels
,您可以安全地使用 EXT_packed_pixels
.
中的所有定义
正如您的扩展查看器屏幕截图所示,GL_EXT_packed_pixels
自 OpenGL 1.2 以来一直是核心功能。所以在大多数情况下,您不必在扩展字符串中测试任何这些。如果您首先检查版本,它至少是 1.2,那么您已经知道该功能可用。测试逻辑可能如下所示:
if (strcmp(glGetString(GL_VERSION), "1.2") >= 0 ||
strstr(glGetString(GL_EXTENSIONS), "_packed_pixels") != NULL)
{
// supported
}
我的应用程序在使用 UNSIGNED_INT_8_8_8_8_EXT
等打包像素格式之前检查 GL_EXT_packed_pixels
扩展名。在我的 MacBook 上,我的代码找不到这个扩展,尽管使用打包像素格式似乎仍然有效。
OpenGL Extension Viewer 似乎暗示它在 OS X:
上有一个特殊的名称有什么区别?在评估是否支持 UNSIGNED_INT_8_8_8_8_EXT
时,我应该只检查 GL_EXT_packed_pixels
or GL_APPLE_packed_pixels
吗?
EXT_packed_pixels
有这些定义:
UNSIGNED_BYTE_3_3_2_EXT 0x8032
UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
UNSIGNED_INT_8_8_8_8_EXT 0x8035
UNSIGNED_INT_10_10_10_2_EXT 0x8036
虽然 APPLE_packed_pixels
有这些:
UNSIGNED_BYTE_3_3_2 0x8032
UNSIGNED_BYTE_2_3_3_REV 0x8362
UNSIGNED_SHORT_5_6_5 0x8363
UNSIGNED_SHORT_5_6_5_REV 0x8364
UNSIGNED_SHORT_4_4_4_4 0x8033
UNSIGNED_SHORT_4_4_4_4_REV 0x8365
UNSIGNED_SHORT_5_5_5_1 0x8034
UNSIGNED_SHORT_1_5_5_5_REV 0x8366
UNSIGNED_INT_8_8_8_8 0x8035
UNSIGNED_INT_8_8_8_8_REV 0x8367
UNSIGNED_INT_10_10_10_2 0x8036
UNSIGNED_INT_2_10_10_10_REV 0x8368
两者比较,EXT_packed_pixels
是APPLE_packed_pixels
的子集,共享值相同。因此,如果支持 APPLE_packed_pixels
,您可以安全地使用 EXT_packed_pixels
.
正如您的扩展查看器屏幕截图所示,GL_EXT_packed_pixels
自 OpenGL 1.2 以来一直是核心功能。所以在大多数情况下,您不必在扩展字符串中测试任何这些。如果您首先检查版本,它至少是 1.2,那么您已经知道该功能可用。测试逻辑可能如下所示:
if (strcmp(glGetString(GL_VERSION), "1.2") >= 0 ||
strstr(glGetString(GL_EXTENSIONS), "_packed_pixels") != NULL)
{
// supported
}