History

Removing almost all the QFramebufferObject (instead in overlay layer) in favor of gpu::Framebuffer, eveyrthing seems to work properly

Sam Gateau committed 11 years ago

Commit fec52f61 parent 870302313 files · +133 −288Browse files

Showing the changes to libraries/render-utils/src/DeferredLightingEffect.cpp (1 of 13 files). Show all

Unified · Split

libraries/render-utils/src/DeferredLightingEffect.cpp+11−13
@@ -12,7 +12,6 @@ · 11 unmodified lines
1212 // include this before QOpenGLFramebufferObject, which includes an earlier version of OpenGL
1313 #include <gpu/GPUConfig.h>
1414
15−#include <QOpenGLFramebufferObject>
1615
1716 #include <GLMHelpers.h>
1817 #include <PathUtils.h>
@@ -183,12 +182,13 @@ void DeferredLightingEffect::render() { · 164 unmodified lines
183182
184183 auto textureCache = DependencyManager::get<TextureCache>();
185184
186− // QOpenGLFramebufferObject* primaryFBO = textureCache->getPrimaryFramebufferObject();
187− // primaryFBO->release();
185+ glBindFramebuffer(GL_FRAMEBUFFER, 0 );
186+
188187 QSize framebufferSize = textureCache->getFrameBufferSize();
189188
190− QOpenGLFramebufferObject* freeFBO = DependencyManager::get<GlowEffect>()->getFreeFramebufferObject();
191− freeFBO->bind();
189+ auto freeFBO = DependencyManager::get<GlowEffect>()->getFreeFramebuffer();
190+ glBindFramebuffer(GL_FRAMEBUFFER, gpu::GLBackend::getFramebufferID(freeFBO));
191+
192192 glClear(GL_COLOR_BUFFER_BIT);
193193 // glEnable(GL_FRAMEBUFFER_SRGB);
194194
@@ -211,11 +211,7 @@ void DeferredLightingEffect::render() { · 16 unmodified lines
211211 const int VIEWPORT_Y_INDEX = 1;
212212 const int VIEWPORT_WIDTH_INDEX = 2;
213213 const int VIEWPORT_HEIGHT_INDEX = 3;
214− /* float sMin = viewport[VIEWPORT_X_INDEX] / (float)primaryFBO->width();
215− float sWidth = viewport[VIEWPORT_WIDTH_INDEX] / (float)primaryFBO->width();
216− float tMin = viewport[VIEWPORT_Y_INDEX] / (float)primaryFBO->height();
217− float tHeight = viewport[VIEWPORT_HEIGHT_INDEX] / (float)primaryFBO->height();
218− */
214+
219215 float sMin = viewport[VIEWPORT_X_INDEX] / (float)framebufferSize.width();
220216 float sWidth = viewport[VIEWPORT_WIDTH_INDEX] / (float)framebufferSize.width();
221217 float tMin = viewport[VIEWPORT_Y_INDEX] / (float)framebufferSize.height();
@@ -436,7 +432,9 @@ void DeferredLightingEffect::render() { · 214 unmodified lines
436432 glActiveTexture(GL_TEXTURE0);
437433 glBindTexture(GL_TEXTURE_2D, 0);
438434
439− freeFBO->release();
435+ //freeFBO->release();
436+ glBindFramebuffer(GL_FRAMEBUFFER, 0);
437+
440438 // glDisable(GL_FRAMEBUFFER_SRGB);
441439
442440 glDisable(GL_CULL_FACE);
@@ -445,12 +443,12 @@ void DeferredLightingEffect::render() { · 2 unmodified lines
445443 glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_CONSTANT_ALPHA, GL_ONE);
446444 glColorMask(true, true, true, false);
447445
448− auto primaryFBO = gpu::GLBackend::getFramebufferID(textureCache->getPrimaryOpaqueFramebuffer());
446+ auto primaryFBO = gpu::GLBackend::getFramebufferID(textureCache->getPrimaryFramebuffer());
449447 glBindFramebuffer(GL_DRAW_FRAMEBUFFER, primaryFBO);
450448
451449 //primaryFBO->bind();
452450
453− glBindTexture(GL_TEXTURE_2D, freeFBO->texture());
451+ glBindTexture(GL_TEXTURE_2D, gpu::GLBackend::getTextureID(freeFBO->getRenderBuffer(0)));
454452 glEnable(GL_TEXTURE_2D);
455453
456454 glPushMatrix();