From: Stanislav Vorobiov Date: Tue, 5 Nov 2013 10:25:27 +0000 (+0400) Subject: YaGL: Fix surface invalidation in onscreen backend X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~558 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bf10df307b1815ae98c8bc61cc731ed0e55d04a5;p=sdk%2Femulator%2Fqemu.git YaGL: Fix surface invalidation in onscreen backend We should always bind framebuffer zero before attaching new texture/renderbuffer since current framebuffer might be different from framebuffer zero Change-Id: I797b9686473def2c85060a88ad7e9ae794070165 --- diff --git a/hw/yagl/yagl_backends/egl_onscreen/yagl_egl_onscreen_surface.c b/hw/yagl/yagl_backends/egl_onscreen/yagl_egl_onscreen_surface.c index bd9f2c3534..911e22a6b7 100644 --- a/hw/yagl/yagl_backends/egl_onscreen/yagl_egl_onscreen_surface.c +++ b/hw/yagl/yagl_backends/egl_onscreen/yagl_egl_onscreen_surface.c @@ -79,8 +79,20 @@ static void yagl_egl_onscreen_surface_invalidate(struct yagl_eglb_surface *sfc, osfc->ws_sfc = ws_sfc; if (egl_onscreen_ts->sfc_draw == osfc) { + GLuint cur_fb = 0; + yagl_egl_onscreen_surface_setup(osfc); + + egl_onscreen->gles_driver->GetIntegerv(GL_FRAMEBUFFER_BINDING, + (GLint*)&cur_fb); + + egl_onscreen->gles_driver->BindFramebuffer(GL_FRAMEBUFFER, + egl_onscreen_ts->ctx->fb); + yagl_egl_onscreen_surface_attach_to_framebuffer(osfc); + + egl_onscreen->gles_driver->BindFramebuffer(GL_FRAMEBUFFER, + cur_fb); } YAGL_LOG_FUNC_EXIT(NULL);