antognolli pushed a commit to branch master.

commit 8254bbc5e3c84b8ad2f20f1ce4685146de70ef51
Author: Rafael Antognolli <[email protected]>
Date:   Fri May 17 20:28:07 2013 -0300

    evas/gl: Restore framebuffer after texture creation.
    
    If we don't do this, the framebuffer object used on shader_array_flush()
    will be wrong.
    
    NOTE: shader_array_flush() should take care of setting the fbo
    correctly.
---
 src/modules/evas/engines/gl_common/evas_gl_texture.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/modules/evas/engines/gl_common/evas_gl_texture.c 
b/src/modules/evas/engines/gl_common/evas_gl_texture.c
index e34f4bc..33cd8d5 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_texture.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_texture.c
@@ -363,6 +363,7 @@ static Evas_GL_Texture_Pool *
 _pool_tex_render_new(Evas_Engine_GL_Context *gc, int w, int h, int intformat, 
int format)
 {
    Evas_GL_Texture_Pool *pt;
+   int fnum;
 
    pt = calloc(1, sizeof(Evas_GL_Texture_Pool));
    if (!pt) return NULL;
@@ -395,6 +396,7 @@ _pool_tex_render_new(Evas_Engine_GL_Context *gc, int w, int 
h, int intformat, in
 
    _print_tex_count();
 
+   glGetIntegerv(GL_DRAW_FRAMEBUFFER_BINDING, &fnum);
    glGenTextures(1, &(pt->texture));
    GLERR(__FUNCTION__, __FILE__, __LINE__, "");
    glBindTexture(GL_TEXTURE_2D, pt->texture);
@@ -415,7 +417,7 @@ _pool_tex_render_new(Evas_Engine_GL_Context *gc, int w, int 
h, int intformat, in
    GLERR(__FUNCTION__, __FILE__, __LINE__, "");
    glsym_glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, 
GL_TEXTURE_2D, pt->texture, 0);
    GLERR(__FUNCTION__, __FILE__, __LINE__, "");
-   glsym_glBindFramebuffer(GL_FRAMEBUFFER, 0);
+   glsym_glBindFramebuffer(GL_FRAMEBUFFER, fnum);
    GLERR(__FUNCTION__, __FILE__, __LINE__, "");
 
    glBindTexture(GL_TEXTURE_2D, gc->pipe[0].shader.cur_tex);

-- 

------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d

Reply via email to