我刚刚开始为iPhone学习OpenGL ES,我想创建一些自定义方法,以GLfloat
数组的形式生成我自己的顶点,这些顶点必须作为GLfloat *
传递指针。
在方法:glBufferData(GL_ARRAY_BUFFER, sizeof(gCubeVertexData), gCubeVertexData, GL_STATIC_DRAW);
中,有必要获取数组的大小,所以我想传入自定义数组的大小。我知道这对指向数组的指针是不可能的,但我也知道有几种解决方法。
我想到的就是使用一个带有数组内部结构的结构:
#ifndef QuickBlueprint_GLfloatWithSize_h
#define QuickBlueprint_GLfloatWithSize_h
typedef struct {
GLfloat *vertices;
NSUInteger size;
} GLfloatWithSize;
#endif
然后在我的课堂上使用它:
@interface MeasurableObject : NSObject
@property(nonatomic, assign) double length;
@property(nonatomic, assign) double width;
@property(nonatomic, assign) double height;
@property(nonatomic, assign) GLfloatWithSize vertices;
@end
然后,我将有一个构造函数,它相对于vertices
,GLfloatWithSize
和length
字段初始化width
内的height
数组,并将该对象的size
设置为sizeof(vertices)
。
有更好的方法吗?