That's all reasonable, I'll make patch v3 then

On 11/28/2013 11:44 AM, Carsten Haitzler (The Rasterman) wrote:
> On Thu, 28 Nov 2013 09:59:41 +0400 Stanislav Vorobiov <s.vorob...@samsung.com>
> said:
> 
>>> the patch itself... why the #ifdef? when checking for extensions, we look
>>> for strings, and not defined macros.
>> I think #ifdef is needed because token EGL_Y_INVERTED_NOK might not be
>> declared in EGL headers and then compilation will fail
> 
> then the ifdef should be for that... not #ifdef EGL_NOK_texture_from_pixmap :)
> 
> normally ewhat we do is simply #define that extension id anyway so we can 
> detect
> extension runtime regardless if headers had the info in them. i.e. we do
> 
> #ifndef EGL_Y_INVERTED_NOK
> #define EGL_Y_INVERTED_NOK 0x1234
> #endif
> 
> now it's always available and runtime checks do the rest regardless what you
> built against. :) you will have to find out what the magic number is for that
> extension define (its fixed so it'll never change so finding it out is fine).
> 
>>> also extension checks are done in gl_extn_veto
>>> () (which lets us go assume an extension is there then veto it if its not
>>> and save that value). so no need to do it every single time with the query
>>> string... :)
>> Ok, I'll fix this and send patch v2
> 
> :)
> 
>> On 11/28/2013 08:21 AM, Carsten Haitzler (The Rasterman) wrote:
>>> On Wed, 27 Nov 2013 15:39:06 +0400 Stanislav Vorobiov
>>> <s.vorob...@samsung.com> said:
>>>
>>> the patch itself... why the #ifdef? when checking for extensions, we look
>>> for strings, and not defined macros. also extension checks are done in
>>> gl_extn_veto () (which lets us go assume an extension is there then veto it
>>> if its not and save that value). so no need to do it every single time with
>>> the query string... :)
>>>
>>>> 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 |   17 ++++++++++++++++-
>>>>  1 file changed, 16 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..da25019
>>>> 100644
>>>> --- a/src/modules/evas/engines/gl_x11/evas_engine.c
>>>> +++ b/src/modules/evas/engines/gl_x11/evas_engine.c
>>>> @@ -2225,6 +2225,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 +2251,20 @@ 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
>>>> +                {
>>>> +                  const char *evasglexts = eglQueryString
>>>> (re->win->egl_disp, EGL_EXTENSIONS); +
>>>> +                  if (evasglexts && (strstr(evasglexts,
>>>> "EGL_NOK_texture_from_pixmap") != NULL))
>>>> +                    {
>>>> +                      int val;
>>>> +                      if (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 +2278,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
>>>>
>>>
>>>
>>
>>
>> ------------------------------------------------------------------------------
>> 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
>>
> 
> 


------------------------------------------------------------------------------
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