forked from enlightenment/efl
fix up apparent problem with egl context and sizing/rotation... need
to test more though. SVN revision: 83878
This commit is contained in:
parent
0bdfe655a0
commit
4452fad7a3
|
@ -248,6 +248,11 @@ struct _Evas_GL_Shared
|
||||||
Eina_Hash *native_pm_hash;
|
Eina_Hash *native_pm_hash;
|
||||||
Eina_Hash *native_tex_hash;
|
Eina_Hash *native_tex_hash;
|
||||||
|
|
||||||
|
#ifdef GL_GLES
|
||||||
|
// FIXME: hack.
|
||||||
|
void *eglctxt;
|
||||||
|
#endif
|
||||||
|
|
||||||
Evas_GL_Program shader[SHADER_LAST];
|
Evas_GL_Program shader[SHADER_LAST];
|
||||||
|
|
||||||
int references;
|
int references;
|
||||||
|
@ -350,8 +355,11 @@ struct _Evas_Engine_GL_Context
|
||||||
/* If this is set: Force drawing with a particular filter */
|
/* If this is set: Force drawing with a particular filter */
|
||||||
GLuint filter_prog;
|
GLuint filter_prog;
|
||||||
|
|
||||||
|
#ifdef GL_GLES
|
||||||
// FIXME: hack. expose egl display to gl core for egl image sec extn.
|
// FIXME: hack. expose egl display to gl core for egl image sec extn.
|
||||||
void *egldisp;
|
void *egldisp;
|
||||||
|
void *eglctxt;
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Evas_GL_Texture_Pool
|
struct _Evas_GL_Texture_Pool
|
||||||
|
|
|
@ -376,12 +376,23 @@ _evas_gl_common_viewport_set(Evas_Engine_GL_Context *gc)
|
||||||
m = -1;
|
m = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((!gc->change.size) ||
|
#ifdef GL_GLES
|
||||||
((gc->shared->w == w) && (gc->shared->h == h) &&
|
if (gc->shared->eglctxt == gc->eglctxt)
|
||||||
(gc->shared->rot == rot) && (gc->shared->foc == gc->foc) &&
|
#endif
|
||||||
(gc->shared->mflip == m)))
|
{
|
||||||
return;
|
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->w = w;
|
||||||
gc->shared->h = h;
|
gc->shared->h = h;
|
||||||
gc->shared->rot = rot;
|
gc->shared->rot = rot;
|
||||||
|
|
|
@ -406,6 +406,7 @@ eng_window_new(Display *disp,
|
||||||
}
|
}
|
||||||
#ifdef GL_GLES
|
#ifdef GL_GLES
|
||||||
gw->gl_context->egldisp = gw->egl_disp;
|
gw->gl_context->egldisp = gw->egl_disp;
|
||||||
|
gw->gl_context->eglctxt = gw->egl_context[0];
|
||||||
#endif
|
#endif
|
||||||
eng_window_use(gw);
|
eng_window_use(gw);
|
||||||
evas_gl_common_context_resize(gw->gl_context, w, h, rot);
|
evas_gl_common_context_resize(gw->gl_context, w, h, rot);
|
||||||
|
|
Loading…
Reference in New Issue