Commit cb530286 authored by Christopher Tenter's avatar Christopher Tenter

fix multiviewport bug for some post processors

git-svn-id: http://www.openflipper.org/svnrepo/OpenFlipper/branches/Free@20479 383ad7c9-94d9-4d36-a494-682f7c89f535
parent 1408c8f3
......@@ -97,20 +97,14 @@ void PostProcessorAnaglyphPlugin::postProcess(ACG::GLState* _glstate, const std:
// Bind input texture
// ======================================================================================================
glActiveTexture(GL_TEXTURE1);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, _input[1]->colorTex_);
glActiveTexture(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, _input[0]->colorTex_);
_input[1]->bindColorTex(1);
_input[0]->bindColorTex(0);
// ======================================================================================================
// Bind output FBO
// ======================================================================================================
glBindFramebuffer(GL_FRAMEBUFFER, _output.fbo_);
glDrawBuffer(_output.drawBuffer_);
_output.bind();
// ======================================================================================================
// Setup render states
......
......@@ -80,31 +80,13 @@ void PostProcessorDepthImagePlugin::postProcess(ACG::GLState* _glstate, const st
// Bind input texture
// ======================================================================================================
glActiveTexture(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, _input[0]->depthTex_);
_input[0]->bindDepthTex(0);
// ======================================================================================================
// Bind output FBO
// ======================================================================================================
glBindFramebuffer(GL_FRAMEBUFFER, _output.fbo_);
glDrawBuffer(_output.drawBuffer_);
// ======================================================================================================
// Clear rendering buffer
// ======================================================================================================
_glstate->clearBuffers();
// ======================================================================================================
// Setup render states
// ======================================================================================================
glDepthMask(1);
glColorMask(1,1,1,1);
glDisable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
_output.bind();
// ======================================================================================================
// Setup shader
......
......@@ -80,31 +80,14 @@ void PostProcessorGrayscalePlugin::postProcess(ACG::GLState* _glstate, const std
// Bind input texture
// ======================================================================================================
glActiveTexture(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, _input[0]->colorTex_);
// glEnable(GL_TEXTURE_2D);
_input[0]->bindColorTex(0);
// ======================================================================================================
// Bind output FBO
// ======================================================================================================
glBindFramebuffer(GL_FRAMEBUFFER, _output.fbo_);
glDrawBuffer(_output.drawBuffer_);
// ======================================================================================================
// Clear rendering buffer
// ======================================================================================================
_glstate->clearBuffers();
// ======================================================================================================
// Setup render states
// ======================================================================================================
glDepthMask(1);
glColorMask(1,1,1,1);
glDisable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
_output.bind();
// ======================================================================================================
// Setup shader
......
......@@ -92,11 +92,8 @@ void PostProcessorPhilipsStereoPlugin::postProcess(ACG::GLState* _glstate, const
// ======================================================================================================
// Bind textures to different texture units and tell shader where to find them
// ======================================================================================================
glActiveTexture(GL_TEXTURE1);
glBindTexture(GL_TEXTURE_2D, _input[0]->depthTex_);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, _input[0]->colorTex_);
_input[0]->bindDepthTex(1);
_input[0]->bindColorTex(0);
pProgram_->setUniform("ColorTexture", 0);
pProgram_->setUniform("DepthStencil", 1);
......@@ -134,14 +131,7 @@ void PostProcessorPhilipsStereoPlugin::postProcess(ACG::GLState* _glstate, const
// Bind output FBO
// ======================================================================================================
glBindFramebuffer(GL_FRAMEBUFFER, _output.fbo_);
glDrawBuffer(_output.drawBuffer_);
// ======================================================================================================
// Clear buffers
// ======================================================================================================
glClearColor(.0, .0, .0, 0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
_output.bind();
// ======================================================================================================
// Execute
......@@ -266,7 +256,8 @@ void PostProcessorPhilipsStereoPlugin::postProcess(ACG::GLState* _glstate, const
// Select the top left of the renderbuffer and
// write complete header into these bits
glRasterPos2i(0, _glstate->context_height() - 1);
// glRasterPos2i(0, _glstate->context_height() - 1);
glRasterPos2i(_output.viewport_[0], _output.viewport_[1] + _output.height - 1);
glDrawPixels(bitVector.size() / 3, 1, GL_RGB, GL_UNSIGNED_BYTE, &bitVector[0]);
// ======================================================================================================
......
......@@ -79,33 +79,13 @@ void PostProcessorSobelPlugin::postProcess(ACG::GLState* _glstate, const std::ve
// Bind input texture
// ======================================================================================================
const PostProcessorInput* input = _input[0];
glActiveTexture(GL_TEXTURE0);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, input->colorTex_);
_input[0]->bindColorTex(0);
// ======================================================================================================
// Bind output FBO
// ======================================================================================================
glBindFramebuffer(GL_FRAMEBUFFER, _output.fbo_);
glDrawBuffer(_output.drawBuffer_);
// ======================================================================================================
// Clear rendering buffer
// ======================================================================================================
_glstate->clearBuffers();
// ======================================================================================================
// Setup render states
// ======================================================================================================
glDepthMask(1);
glColorMask(1,1,1,1);
glDisable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
_output.bind();
// ======================================================================================================
// Setup shader
......@@ -114,7 +94,7 @@ void PostProcessorSobelPlugin::postProcess(ACG::GLState* _glstate, const std::ve
shader_->use();
shader_->setUniform("textureSampler", 0);
ACG::Vec2f texcoordOffset(1.0f / float(input->width), 1.0f / float(input->height));
ACG::Vec2f texcoordOffset(1.0f / float(_input[0]->width), 1.0f / float(_input[0]->height));
shader_->setUniform("texcoordOffset", texcoordOffset);
// ======================================================================================================
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment