Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Lights::draw() {
- glUseProgram(programHandle);
- //Attributes & Uniforms
- sMVPMatrixHandle = glGetUniformLocation(programHandle, "u_MVPMatrix");
- checkGlError("mvpHandle");
- sPositionHandle = glGetAttribLocation(programHandle, "a_Position");
- checkGlError("positionHandle");
- amountHandle = glGetUniformLocation(programHandle, "amount");
- checkGlError("amount");
- lightposHandle = glGetUniformLocation(programHandle, "lightpos");
- checkGlError("lightposHandle");
- lightcolorHandle = glGetUniformLocation(programHandle, "lightcolor");
- checkGlError("lighcolorhandle");
- esTransform::esMatrixLoadIdentity(&modelMatrix, 0);
- this->drawSquare();
- }
- void Lights::drawSquare() {
- if (!buffered)
- bufferVertices();
- glBindBuffer(GL_ARRAY_BUFFER, vertexBufferIdx);
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, elementBufferIdx);
- checkGlError("bindBuffers");
- glVertexAttribPointer(sPositionHandle, POSITION_DATA_SIZE, GL_FLOAT,
- GL_FALSE, STRIDE * sizeof(GLfloat), (void*) 0);
- checkGlError("glVertexAttribPointer");
- glEnableVertexAttribArray(sPositionHandle);
- checkGlError("enableVertexArray");
- esTransform::esMatrixLoadIdentity(&this->MVPMatrix, 0);
- esTransform::esMatrixMultiply(&this->MVPMatrix, &Engine::projectionMatrix,
- &this->modelMatrix);
- glUniformMatrix4fv(sMVPMatrixHandle, 1, GL_FALSE,
- (GLfloat*) &this->MVPMatrix.m);
- glUniform1i(amountHandle, amount);
- glUniform2fv(lightposHandle, amount, lightpositions);
- checkGlError("lightPositions");
- glUniform4fv(lightcolorHandle, amount, lightcolors);
- checkGlError("lightColors");
- glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0);
- checkGlError("glDrawElements");
- glDisableVertexAttribArray(sPositionHandle);
- checkGlError("glDisable");
- glBindBuffer(GL_ARRAY_BUFFER, 0);
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
- checkGlError("unbind");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement