我正在学习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编程的完全入门者,所以如果有人能指出我正确的方向,我将不胜感激!非常感谢!
答案 0 :(得分:1)
glGenTextures
期望指向GLuint的指针作为其第二个参数。您不能在这个地方使用Objective-C属性(这只是编写[oModel activeTexture]
的另一种方式)。请改用临时局部变量:
GLuint texture = 0;
glGenTextures(1, &texture);
oModel.activeTexture = texture;