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