Pro OpenGL ES for iOS

(singke) #1

18 CHAPTER 1: Computer Graphics: From Then to Now^



  • (void)setupGL
    {
    [EAGLContext setCurrentContext:self.context]; //7


[self loadShaders];

self.effect = [[GLKBaseEffect alloc] init]; //8
self.effect.light0.enabled = GL_TRUE; //9
self.effect.light0.diffuseColor = GLKVector4Make(1.0f, 0.4f, 0.4f, 1.0f); //10

glEnable(GL_DEPTH_TEST); //11

glGenVertexArraysOES(1, &_vertexArray); //12
glBindVertexArrayOES(_vertexArray);

glGenBuffers(1, &_vertexBuffer); //13
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
glBufferData(GL_ARRAY_BUFFER,
sizeof(gCubeVertexData), gCubeVertexData, GL_STATIC_DRAW); //14

glEnableVertexAttribArray(GLKVertexAttribPosition); //15
glVertexAttribPointer(GLKVertexAttribPosition, 3, GL_FLOAT, GL_FALSE, 24,
BUFFER_OFFSET(0));
glEnableVertexAttribArray(GLKVertexAttribNormal);
glVertexAttribPointer(GLKVertexAttribNormal, 3, GL_FLOAT, GL_FALSE, 24,
BUFFER_OFFSET(12));

glBindVertexArrayOES(0); //16
}


  • (void)tearDownGL //17
    {
    [EAGLContext setCurrentContext:self.context];


glDeleteBuffers(1, &_vertexBuffer);
glDeleteVertexArraysOES(1, &_vertexArray);

self.effect = nil;

if (_program) {
glDeleteProgram(_program);
_program = 0;
}
}
Free download pdf