public void render(int x, int y, float extra) { setExtraLevel(extra); glPushMatrix(); shader.bind(); glBindVertexArray(vao); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); { glTranslatef(x, y, 0); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, texture); glActiveTexture(GL_TEXTURE2); glBindTexture(GL_TEXTURE_2D, Texture.Lava); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vio); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, 0); glActiveTexture(GL_TEXTURE1); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glBindTexture(GL_TEXTURE_2D, 0); /* * glTranslatef(x, y, 0); glBindTexture(GL_TEXTURE_2D, texture); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vio); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glBindTexture(GL_TEXTURE_2D, 0); */ } glDisableVertexAttribArray(1); glDisableVertexAttribArray(0); glBindVertexArray(0); shader.release(); glPopMatrix(); }
public void render() { glPushMatrix(); glEnable(GL_BLEND); shader.bind(); glBindVertexArray(vao); glEnableVertexAttribArray(0); glEnableVertexAttribArray(1); { glTranslatef(x, y, 0); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, texture); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vio); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glBindTexture(GL_TEXTURE_2D, 0); } glDisableVertexAttribArray(1); glDisableVertexAttribArray(0); glBindVertexArray(0); shader.release(); glDisable(GL_BLEND); glPopMatrix(); }
public static void endRender() { if (isShadowPass) { return; } glPushMatrix(); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glDisable(GL_DEPTH_TEST); glEnable(GL_TEXTURE_2D); // composite glDisable(GL_BLEND); useProgram(ProgramComposite); glDrawBuffers(dfbDrawBuffers); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(0)); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(1)); glActiveTexture(GL_TEXTURE2); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(2)); glActiveTexture(GL_TEXTURE3); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(3)); if (colorAttachments >= 5) { glActiveTexture(GL_TEXTURE4); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(4)); if (colorAttachments >= 6) { glActiveTexture(GL_TEXTURE5); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(5)); if (colorAttachments >= 7) { glActiveTexture(GL_TEXTURE6); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(6)); } } } if (shadowPassInterval > 0) { glActiveTexture(GL_TEXTURE7); glBindTexture(GL_TEXTURE_2D, sfbDepthTexture); } glActiveTexture(GL_TEXTURE0); glColor4f(1.0f, 1.0f, 1.0f, 1.0f); glBegin(GL_QUADS); glTexCoord2f(0.0f, 0.0f); glVertex3f(0.0f, 0.0f, 0.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f, 0.0f, 0.0f); glTexCoord2f(1.0f, 1.0f); glVertex3f(1.0f, 1.0f, 0.0f); glTexCoord2f(0.0f, 1.0f); glVertex3f(0.0f, 1.0f, 0.0f); glEnd(); // final glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); useProgram(ProgramFinal); glClearColor(clearColor[0], clearColor[1], clearColor[2], 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(0)); glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(1)); glActiveTexture(GL_TEXTURE2); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(2)); glActiveTexture(GL_TEXTURE3); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(3)); if (colorAttachments >= 5) { glActiveTexture(GL_TEXTURE4); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(4)); if (colorAttachments >= 6) { glActiveTexture(GL_TEXTURE5); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(5)); if (colorAttachments >= 7) { glActiveTexture(GL_TEXTURE6); glBindTexture(GL_TEXTURE_2D, dfbTextures.get(6)); } } } if (shadowPassInterval > 0) { glActiveTexture(GL_TEXTURE7); glBindTexture(GL_TEXTURE_2D, sfbDepthTexture); } glActiveTexture(GL_TEXTURE0); glColor4f(1.0f, 1.0f, 1.0f, 1.0f); glBegin(GL_QUADS); glTexCoord2f(0.0f, 0.0f); glVertex3f(0.0f, 0.0f, 0.0f); glTexCoord2f(1.0f, 0.0f); glVertex3f(1.0f, 0.0f, 0.0f); glTexCoord2f(1.0f, 1.0f); glVertex3f(1.0f, 1.0f, 0.0f); glTexCoord2f(0.0f, 1.0f); glVertex3f(0.0f, 1.0f, 0.0f); glEnd(); glEnable(GL_BLEND); glPopMatrix(); useProgram(ProgramNone); }