fix up apparent problem with egl context and sizing/rotation... need

to test more though.



SVN revision: 83878
This commit is contained in:
Carsten Haitzler 2013-02-14 03:27:23 +00:00
parent 0bdfe655a0
commit 4452fad7a3
3 changed files with 26 additions and 6 deletions

View File

@ -248,6 +248,11 @@ struct _Evas_GL_Shared
Eina_Hash *native_pm_hash;
Eina_Hash *native_tex_hash;
#ifdef GL_GLES
// FIXME: hack.
void *eglctxt;
#endif
Evas_GL_Program shader[SHADER_LAST];
int references;
@ -350,8 +355,11 @@ struct _Evas_Engine_GL_Context
/* If this is set: Force drawing with a particular filter */
GLuint filter_prog;
#ifdef GL_GLES
// FIXME: hack. expose egl display to gl core for egl image sec extn.
void *egldisp;
void *eglctxt;
#endif
};
struct _Evas_GL_Texture_Pool

View File

@ -376,12 +376,23 @@ _evas_gl_common_viewport_set(Evas_Engine_GL_Context *gc)
m = -1;
}
if ((!gc->change.size) ||
((gc->shared->w == w) && (gc->shared->h == h) &&
(gc->shared->rot == rot) && (gc->shared->foc == gc->foc) &&
(gc->shared->mflip == m)))
return;
#ifdef GL_GLES
if (gc->shared->eglctxt == gc->eglctxt)
#endif
{
if ((!gc->change.size) ||
(
(gc->shared->w == w) && (gc->shared->h == h) &&
(gc->shared->rot == rot) && (gc->shared->foc == gc->foc) &&
(gc->shared->mflip == m)
)
)
return;
}
#ifdef GL_GLES
gc->shared->eglctxt = gc->eglctxt;
#endif
gc->shared->w = w;
gc->shared->h = h;
gc->shared->rot = rot;

View File

@ -406,6 +406,7 @@ eng_window_new(Display *disp,
}
#ifdef GL_GLES
gw->gl_context->egldisp = gw->egl_disp;
gw->gl_context->eglctxt = gw->egl_context[0];
#endif
eng_window_use(gw);
evas_gl_common_context_resize(gw->gl_context, w, h, rot);