On Thu, 28 Nov 2013 10:23:45 +0400 Stanislav Vorobiov <[email protected]>
said:
> Instead of hardcoding yinvert=1 we should query for
> EGL_NOK_texture_from_pixmap extension and if it's present
> use EGL_Y_INVERTED_NOK value
see my other email about the #define of EGL_Y_INVERTED_NOK :)
> ---
> src/modules/evas/engines/gl_x11/evas_engine.c | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c
> b/src/modules/evas/engines/gl_x11/evas_engine.c index d25610f..f311f1b 100644
> --- a/src/modules/evas/engines/gl_x11/evas_engine.c
> +++ b/src/modules/evas/engines/gl_x11/evas_engine.c
> @@ -71,6 +71,7 @@ struct _Render_Engine
> static int initted = 0;
> static int gl_wins = 0;
> static int extn_have_buffer_age = 1;
> +static int extn_have_y_inverted = 0;
>
> typedef void (*_eng_fn) (void);
> typedef _eng_fn (*glsym_func_eng_fn) ();
> @@ -711,6 +712,10 @@ gl_extn_veto(Render_Engine *re)
> {
> extn_have_buffer_age = 0;
> }
> + if (strstr(str, "EGL_NOK_texture_from_pixmap"))
> + {
> + extn_have_y_inverted = 1;
> + }
> }
> else
> {
> @@ -2225,6 +2230,7 @@ eng_image_native_set(void *data, void *image, void
> *native) EGLConfig egl_config;
> int config_attrs[20];
> int num_config, i = 0;
> + int yinvert = 1;
>
> eina_hash_add(re->win->gl_context->shared->native_pm_hash,
> &pmid, im);
> @@ -2250,6 +2256,16 @@ eng_image_native_set(void *data, void *image, void
> *native) if (!eglChooseConfig(re->win->egl_disp, config_attrs,
> &egl_config, 1, &num_config))
> ERR("eglChooseConfig() failed for pixmap 0x%x, num_config = %
> i", (unsigned int)pm, num_config); +#ifdef EGL_NOK_texture_from_pixmap
> + else
> + {
> + int val;
> + if (extn_have_y_inverted &&
> + eglGetConfigAttrib(re->win->egl_disp, egl_config,
> + EGL_Y_INVERTED_NOK, &val))
> + yinvert = val;
> + }
> +#endif
> memcpy(&(n->ns), ns, sizeof(Evas_Native_Surface));
> n->pixmap = pm;
> n->visual = vis;
> @@ -2263,7 +2279,7 @@ eng_image_native_set(void *data, void *image, void
> *native) ERR("Try eglCreateImage on EGL with no support");
> if (!n->egl_surface)
> ERR("eglCreatePixmapSurface() for 0x%x failed", (unsigned
> int)pm);
> - im->native.yinvert = 1;
> + im->native.yinvert = yinvert;
> im->native.loose = 0;
> im->native.data = n;
> im->native.func.data = re;
> --
> 1.7.9.5
>
>
> ------------------------------------------------------------------------------
> Rapidly troubleshoot problems before they affect your business. Most IT
> organizations don't have a clear picture of how application performance
> affects their revenue. With AppDynamics, you get 100% visibility into your
> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
> http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
> _______________________________________________
> enlightenment-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
--
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler) [email protected]
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel