ios - 使用GLKit加载纹理时如何在glTexImage2D中传递数据参数?

标签 ios opengl-es

我按照以下代码使用GLKit加载texture.png纹理:

    // Setup texture       
CGImageRef imageRef = [[UIImage imageNamed:@"texture.png"] CGImage];
GLKTextureInfo texInfo = [GLKTextureLoader textureWithCGImage:imageRef options:nil error:NULL];

glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texInfo.name);


// Set parameters that control texture sampling for the bound
// texture
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, texInfo.width, texInfo.height, 0, GL_RGB, GL_UNSIGNED_BYTE, XXXX);

XXXX是指定指向存储器中的图像数据的指针的数据。问题是我正在使用GLKit加载纹理,但在Apple文档中找不到从GLKTextureInfo类检索数据的任何方式。有谁知道我该如何解决?

最佳答案

如果您已调用[GLKTextureLoader textureWithCGImage:options:error:],则无需上传位图数据。它已经发生了,因此不需要调用glTexImage2D()

关于ios - 使用GLKit加载纹理时如何在glTexImage2D中传递数据参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14411239/

相关文章:

linux - 在 x86 Linux 上是否有任何 GLES 示例,用 C++ 编写?

ios - CAL层裁剪

ios - 有什么可以阻止 -[NSData bytes] 成为悬空指针吗?

ios - 如何在ios应用程序中将pdf页面转换为文本文件

ios - OpenGL ES 1.1 clearColor 绘图

java - OpenGL 2.0 ES 矩阵堆栈如何工作?

android - 面向 alpha 的 Android OpenGL ES 纹理压缩策略

iOS-如何在限制范围内绘画

ios - 在 Parse 和 SWIFT 中从数组中检索和转换数据

ios - 尝试设置自定义 backBarButtonItem 图像/难以调整大小的图像