On Thu, 28 Nov 2013 12:02:36 +0400 Stanislav Vorobiov <s.vorob...@samsung.com>
said:

and that looks great! well done! :) now the question is... is this a new
feature.. or a bug fix... hmm i guess it's a bug fix as it makes something work
given specific drivers and setup that didn't work before, BUT needs an
extension to do it.

> 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
> ---
>  src/modules/evas/engines/gl_x11/evas_engine.c |   20 +++++++++++++++++++-
>  1 file changed, 19 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..4e5c22c 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) ();
> @@ -90,6 +91,9 @@ static Eina_Bool eng_preload_make_current(void *data, void
> *doit);
>  #ifndef EGL_BUFFER_AGE_EXT
>  # define EGL_BUFFER_AGE_EXT 0x313d
>  #endif
> +#ifndef EGL_Y_INVERTED_NOK
> +# define EGL_Y_INVERTED_NOK 0x307F
> +#endif
>  
>  _eng_fn  (*glsym_eglGetProcAddress)            (const char *a) = NULL;
>  void    *(*glsym_eglCreateImage)               (EGLDisplay a, EGLContext b,
> EGLenum c, EGLClientBuffer d, const int *e) = NULL; @@ -711,6 +715,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 +2233,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 +2259,15 @@ 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);
> +              else
> +                {
> +                  int val;
> +                  if (extn_have_y_inverted &&
> +                      eglGetConfigAttrib(re->win->egl_disp, egl_config,
> +                                         EGL_Y_INVERTED_NOK, &val))
> +                        yinvert = val;
> +                }
> +
>                memcpy(&(n->ns), ns, sizeof(Evas_Native_Surface));
>                n->pixmap = pm;
>                n->visual = vis;
> @@ -2263,7 +2281,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
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
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
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to