void NormalFilter::render(const ITextureObject& texture, const ICamera<float>& renderedCamera) { const Box2d<float> box(Vector2d<float>(-1.0, -1.0), Vector2d<float>(1.0, 1.0)); const auto& positions = box.toArray(); glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glEnable(GL_DEPTH_TEST); //glDisable(GL_DEPTH_TEST); glUseProgram(shader.getId()); texture.bind(); //glGetUniformLocation( texture.getId() glUniform1i(shader.getUniformLocation("depthTex"), texture.getId()); glUniform1f(shader.getUniformLocation("texelSizeW"), 1.0f / static_cast<float>(texture.getWidth())); glUniform1f(shader.getUniformLocation("texelSizeH"), 1.0f / static_cast<float>(texture.getHeight())); glUniformMatrix4fv(shader.getUniformLocation("projectionMatrix"), 1, GL_FALSE, renderedCamera.getProjectionMatrix().toArray().data()); glVertexAttribPointer(shader.getAttribLocation("positions"), 2, GL_FLOAT, GL_FALSE, 0, positions.data()); glEnableVertexAttribArray(0); glDrawArrays(GL_QUADS, 0, static_cast<GLsizei>( positions.size() / 2) ); glDisableVertexAttribArray(0); glBindFragDataLocation(shader.getId(), 0, "fragColor"); texture.unbind(); glDisable(GL_DEPTH_TEST); glUseProgram(0); }
void OnScreenRenderer::render(const ITextureObject& texture) { const Box2d<float> box(Vector2d<float>(-1.0, -1.0), Vector2d<float>(1.0, 1.0)); const auto& positions = box.toArray(); //glEnable(GL_DEPTH_TEST); glUseProgram(shader.getId()); texture.bind(); glUniform1i(shader.getUniformLocation("texture"), texture.getId()); glVertexAttribPointer(shader.getAttribLocation("positions"), 2, GL_FLOAT, GL_FALSE, 0, positions.data()); glEnableVertexAttribArray(0); glDrawArrays(GL_QUADS, 0, static_cast<GLsizei>( positions.size() / 2) ); glDisableVertexAttribArray(0); glBindFragDataLocation(shader.getId(), 0, "fragColor"); texture.unbind(); //glDisable(GL_DEPTH_TEST); glUseProgram(0); }