Advertisement
Guest User

lights

a guest
Jun 11th, 2013
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.84 KB | None | 0 0
  1. void Lights::draw() {
  2.     glUseProgram(programHandle);
  3.  
  4.     //Attributes & Uniforms
  5.     sMVPMatrixHandle = glGetUniformLocation(programHandle, "u_MVPMatrix");
  6.     checkGlError("mvpHandle");
  7.     sPositionHandle = glGetAttribLocation(programHandle, "a_Position");
  8.     checkGlError("positionHandle");
  9.     amountHandle = glGetUniformLocation(programHandle, "amount");
  10.     checkGlError("amount");
  11.     lightposHandle = glGetUniformLocation(programHandle, "lightpos");
  12.     checkGlError("lightposHandle");
  13.     lightcolorHandle = glGetUniformLocation(programHandle, "lightcolor");
  14.     checkGlError("lighcolorhandle");
  15.  
  16.     esTransform::esMatrixLoadIdentity(&modelMatrix, 0);
  17.  
  18.     this->drawSquare();
  19. }
  20.  
  21. void Lights::drawSquare() {
  22.     if (!buffered)
  23.         bufferVertices();
  24.  
  25.     glBindBuffer(GL_ARRAY_BUFFER, vertexBufferIdx);
  26.     glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, elementBufferIdx);
  27.     checkGlError("bindBuffers");
  28.  
  29.     glVertexAttribPointer(sPositionHandle, POSITION_DATA_SIZE, GL_FLOAT,
  30.             GL_FALSE, STRIDE * sizeof(GLfloat), (void*) 0);
  31.     checkGlError("glVertexAttribPointer");
  32.  
  33.     glEnableVertexAttribArray(sPositionHandle);
  34.     checkGlError("enableVertexArray");
  35.  
  36.     esTransform::esMatrixLoadIdentity(&this->MVPMatrix, 0);
  37.     esTransform::esMatrixMultiply(&this->MVPMatrix, &Engine::projectionMatrix,
  38.             &this->modelMatrix);
  39.  
  40.     glUniformMatrix4fv(sMVPMatrixHandle, 1, GL_FALSE,
  41.             (GLfloat*) &this->MVPMatrix.m);
  42.  
  43.     glUniform1i(amountHandle, amount);
  44.  
  45.     glUniform2fv(lightposHandle, amount, lightpositions);
  46.     checkGlError("lightPositions");
  47.  
  48.     glUniform4fv(lightcolorHandle, amount, lightcolors);
  49.     checkGlError("lightColors");
  50.  
  51.     glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
  52.     checkGlError("glDrawElements");
  53.  
  54.     glDisableVertexAttribArray(sPositionHandle);
  55.     checkGlError("glDisable");
  56.  
  57.     glBindBuffer(GL_ARRAY_BUFFER, 0);
  58.     glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
  59.     checkGlError("unbind");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement