【问题标题】:Is ARB_texture_storage core profile?ARB_texture_storage 是核心配置文件吗?
【发布时间】:2015-03-09 15:03:29
【问题描述】:

我目前正在开发一个 ogl 4.3 项目,我正在使用核心配置文件,并且 ARB_texture_storage 不受支持,尽管在 4.2 兼容中。这是 SDL/我的驱动程序中的错误还是 ARB_texture_storage 不在核心中?

【问题讨论】:

  • 虽然我已经回答了你的问题,但我怀疑你只是问错了问题。您是否有机会使用 GLEW 加载扩展指针?如果是这样,您只是遇到了一个众所周知的 GLEW 错误。
  • 是的,我是!我不知道,有解决方法吗?
  • GLEW 的扩展加载正在中断核心配置文件。您可以在调用glewInit() 之前设置glewExperimental=GL_TRUE; 作为解决方法。然后将加载函数指针,但 GLEW 仍会认为缺少扩展。
  • 非常感谢,如果我能让它工作,我不在乎扩展。

标签: c++ c opengl texture-mapping


【解决方案1】:

ARB_texture_storage 的功能是自 OpenGL 4.2 以来的核心功能,无论是在兼容性还是核心配置方面。但是,由于这是一个核心功能,因此不需要实现也将其宣传为任何存在。在 GL >=4.2 中,无论ARB_texture_storage 是否在扩展字符串中,都可以使用glTexStorage*() 系列函数。

【讨论】:

  • 所以 glTexStorage*() 为空对我来说是一个错误?
  • @gan_:查看对您问题的评论。
【解决方案2】:

不,对GL_ARB_texture_storage 的支持在技术上不是必需的。

这是一个扩展,它提供的功能是OpenGL 4.2+中的core。也不要将短语“suchandsuch is core in ...”与核心配置文件混淆,它们是两个不同的东西。

无论该扩展名是否列在您的扩展名字符串中,您都可以保证使用它提供的所有功能,因为 OpenGL 4.2 需要它。事实上,您唯一需要按名称检查此扩展程序的情况是您是否在 OpenGL 4.1 或更早版本的上下文中运行。

【讨论】:

  • 感谢您的解释,我不知道。可能是因为 glew 在扩展和核心内容之间没有区别。
猜你喜欢
  • 2018-11-24
  • 1970-01-01
  • 2011-06-09
  • 2014-10-31
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多