【问题标题】:iOS 5 undeclared identifier GL_TEXTURE_RECTANGLEiOS 5 未声明的标识符 GL_TEXTURE_RECTANGLE
【发布时间】:2012-01-31 20:40:12
【问题描述】:

我在 iOS(iPhone 3gs 或更新版本)上使用矩形纹理时遇到问题

我正在尝试使用 GL_TEXTURE_RECTANGLE 和/或 GL_EXT_texture_rectangle,但 XCODE 自动完成无法识别它,我认为是因为未导入正确的头文件并抛出 undeclared identifier 错误。

还尝试了GL_ARB_texture_non_power_of_twoGL_ARB_texture_rectangle,正如在这个问题OpenGL ES GL_TEXTURE_RECTANGLE 中回答的那样,但没有声明。

我用谷歌搜索并没有找到对它声明的头文件的引用,也没有找到文档示例项目中使用的头文件。

  • 使用 xcode 4.2

这些是我当前正在导入的标头:

#import <OpenGLES/EAGL.h>
#import <OpenGLES/ES1/gl.h>
#import <OpenGLES/ES1/glext.h>
#import <OpenGLES/ES2/gl.h>
#import <OpenGLES/ES2/glext.h>

也尝试导入这些

#import <OpenGL/OpenGL.h> //file not found
#import <OpenGL.h> //file not found
#import <OpenGL/glu.h> //file not found

【问题讨论】:

  • 感谢您的支持。毕竟我决定不使用矩形纹理,而是从矩形图像动态创建一个新的两个纹理的幂。

标签: xcode opengl-es ios5 import undeclared-identifier


【解决方案1】:

iOS 上的 OpenGL ES 不支持矩形纹理。 See here 获取 iOS 上支持的 OpenGL ES 扩展的完整列表。

您使用的是 ES 1.1 还是 ES 2.0? ES2 支持 NPOT 纹理,因此您可以使用它来代替矩形纹理。

【讨论】:

  • 您好,谢谢,实际上我使用的是 es 2.0 但也应该使用 1.1,逻辑定义何时使用每个版本。我尝试在任何地方使用GL_APPLE_texture_2D_limited_npot 而不是GL_TEXTURE_2D,但纹理消失了。
  • 确保您遵守为此扩展列出的限制:khronos.org/registry/gles/extensions/APPLE/… 意思是“......纹理环绕模式都是 CLAMP_TO_EDGE,缩小过滤器是 NEAREST 或 LINEAR”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多