views:

109

answers:

1

I'm in the process of learning opengles / obj-c and creating an app for the iphone that will render multiple 3d models. I've created an object that stores all the important details such as vertices / faces / textures etc but I also want to store the texture name that is currently being used on the model. In my CustomModels.h file I have:

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

  GLuint            activeTexture;
}

then in my view controller .m file I'm trying to store the texture name like this:

glGenTextures(1, oModel.activeTexture);

But receive this error:

lvalue required as unary '&' operand

I'm a complete starter in obj-c programming so if anyone can point me in the right direction it would be much appreciated! Many thanks!

+1  A: 

glGenTextures expects a pointer to a GLuint as its second parameter. You cannot use an Objective-C property (which is just another way of writing [oModel activeTexture]) in this place. Use a temp local variable instead:

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