我对 OpenGL 比较陌生,希望让它在可可框架中绘制。我在开发者页面上使用了苹果的示例代码,效果很好。但是,现在我希望能够从顶点结构中进行绘制,以便掌握这个概念。当我为我的 OpenGLView 使用以下代码时,我只得到一个黑色窗口(而不是一个花哨的彩色三角形......)。
#import "MyOpenGLView.h"
#include <OpenGL/gl.h>
#include <GLUT/GLUT.h>
@implementation MyOpenGLView
typedef struct _vertexStruct{
GLfloat position[2];
GLubyte color[4];
} vertexStruct;
- (void)drawRect:(NSRect) bounds
{
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
drawAnObject();
glFlush();
}
static void drawAnObject()
{
const vertexStruct vertices[] = {
{{0.0f, 1.0f},{1.0, 0.0,0.0,1.0}},
{{1.0f, -1.0f},{0.0, 1.0,0.0,1.0}},
{{-1.0f , -1.0f},{0.0, 0.0,1.0,1.0}}
};
const GLshort indices[] = {0,1,2};
glVertexPointer(2, sizeof(vertexStruct),0,&vertices[0].position);
glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(vertexStruct), &vertices[0].color);
glDrawElements(GL_TRIANGLES, sizeof(indices)/sizeof(GLshort), GL_SHORT, indices);
}
@end
我在这里想念什么?