From 7cf188a67d341ce9a5d5093c0a84cc4905a9337d Mon Sep 17 00:00:00 2001 From: Eduardo Bart Date: Thu, 11 Aug 2011 23:04:28 -0300 Subject: [PATCH] fix framebuffer --- src/framework/graphics/framebuffer.cpp | 5 +++++ src/framework/graphics/graphics.cpp | 4 +++- src/map.cpp | 5 +++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/framework/graphics/framebuffer.cpp b/src/framework/graphics/framebuffer.cpp index 21102fc5..77b1d9d0 100644 --- a/src/framework/graphics/framebuffer.cpp +++ b/src/framework/graphics/framebuffer.cpp @@ -78,6 +78,9 @@ FrameBuffer::FrameBuffer(int width, int height) m_fallbackOldImp = true; break; } + + // restore back buffer + oglBindFramebuffer(GL_FRAMEBUFFER_EXT, 0); } else { // otherwise fallback to copy texture from screen implementation m_fallbackOldImp = true; @@ -147,6 +150,8 @@ void FrameBuffer::draw(int x, int y, int width, int height) { g_graphics.disableDrawing(); + glEnable(GL_TEXTURE_2D); + glColor4ubv(Color::white.rgbaPtr()); glBindTexture(GL_TEXTURE_2D, m_fboTexture); glBegin(GL_QUADS); glTexCoord2i(0, 0); glVertex2i(x, y); diff --git a/src/framework/graphics/graphics.cpp b/src/framework/graphics/graphics.cpp index dd6b4b93..b1dda4e0 100644 --- a/src/framework/graphics/graphics.cpp +++ b/src/framework/graphics/graphics.cpp @@ -33,7 +33,6 @@ void Graphics::init() glEnable(GL_ALPHA_TEST); // enable alpha by default glAlphaFunc(GL_GREATER, 0.0f); // default alpha mode glDisable(GL_DEPTH_TEST); // we are rendering 2D only, we don't need it - glEnable(GL_TEXTURE_2D); // enable textures by default glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); glShadeModel(GL_SMOOTH); glEnable(GL_BLEND); @@ -127,6 +126,9 @@ void Graphics::disableDrawing() if(m_drawMode != DRAW_NONE) { glEnd(); m_drawMode = DRAW_NONE; + + m_bindedTexture.reset(); + glColor4ubv(Color::white.rgbaPtr()); } } diff --git a/src/map.cpp b/src/map.cpp index 62caa989..e2b34023 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -1,5 +1,6 @@ #include "map.h" #include "game.h" +#include void Map::draw(int x, int y) { @@ -18,9 +19,9 @@ void Map::draw(int x, int y) } } } - m_framebuffer->unbind(); - m_framebuffer->draw(0, 0, width, heigth); + + m_framebuffer->draw(0, 0, g_graphics.getScreenSize().width(), g_graphics.getScreenSize().height()); } void Map::addThing(Thing *thing, const Position& pos)