在对象中存储纹理名称 - obj-c

时间:2010-02-26 11:51:03

标签: iphone objective-c opengl-es

我正在学习opengles / obj-c并为iphone创建一个可呈现多个3D模型的应用程序。我创建了一个存储所有重要细节的对象,例如顶点/面/纹理等,但我还想存储当前在模型上使用的纹理名称。在我的CustomModels.h文件中,我有:

@interface CustomModels : NSObject {    
  Vertex3D           *vertices;
  int                numberOfFaces;
  Face3D             *faces;
  Tex3D              *texCoords;
  BOOL               active;
  NSMutableArray    *textures;

  GLuint            activeTexture;
}

然后在我的视图控制器.m文件中我试图存储纹理名称,如下所示:

glGenTextures(1, oModel.activeTexture);

但收到此错误:

lvalue required as unary '&' operand

我是obj-c编程的完全入门者,所以如果有人能指出我正确的方向,我将不胜感激!非常感谢!

1 个答案:

答案 0 :(得分:1)

glGenTextures期望指向GLuint的指针作为其第二个参数。您不能在这个地方使用Objective-C属性(这只是编写[oModel activeTexture]的另一种方式)。请改用临时局部变量:

GLuint texture = 0;
glGenTextures(1, &texture);
oModel.activeTexture = texture;