When using the _XCB engines in Evas, there seems to be an issue with the 
detection in Ecore that causes errors. Here's what I did to reproduce 
the steps.

I first tried to compile Evas with the following engines enabled.

----------------------------------------
Engines:
  Software X11............: yes
  Software XCB............: yes
  Software Framebuffer....: no
  Software Qtopia.........: no
  Software Memory Buffer..: yes
  DirectFB................: no
  OpenGL X11..............: yes
  Cairo X11...............: no
  XRender X11.............: yes
  XRender Xcb.............: yes
  Glitz X11...............: no
----------------------------------------

The XRender XCB engine fails to compile. I disabled the XRender_XCB 
engine and everything compiles in Evas. Then I get to Ecore.

Ecore is compiled with the following options enabled.

----------------------------------------
  Ecore_Job....................: yes
  Ecore_Con....................: yes (OpenSSL: yes)
  Ecore_Txt....................: yes
  Ecore_X (XCB backend)........: yes (Xprint: yes) (Xinerama: yes) 
(Xrandr: yes) (Xscreensaver: yes) (Xshape: yes) (Xsync: yes) (Xrender: 
yes) (Xfixes: yes) (Xdamage: yes) (Xdpms: yes)
  Ecore_FB.....................: no
  Ecore_DFB....................: no
  Ecore_Evas...................: yes
  Ecore_Evas GL Support........: yes
  Ecore_Evas XRender Support...: yes
  Ecore_Evas FB Support........: no
  Ecore_Evas DFB Support.......: no
  Ecore_Evas Buffer Support....: yes
  Ecore_Ipc....................: yes (OpenSSL: yes)
  Ecore_Config.................: yes
  Ecore_DBUS...................: yes
  Ecore_Desktop................: yes
  Ecore_File...................: yes (Inotify: yes) (Poll: yes) (CURL: yes)
----------------------------------------

Even though I have the XRender_XCB engine disabled in Evas, Ecore seems 
to think it is still there.

----------------------------------------
Making all in ecore_evas
make[4]: Entering directory 
`/home/presutti/Code/e17/e17/libs/ecore/src/lib/ecore_evas'
/bin/sh ../../../libtool --tag=CC   --mode=compile i686-pc-linux-gnu-gcc 
-DHAVE_CONFIG_H -I. -I../../.. -I../../../src/lib/ecore 
-I../../../src/lib/ecore_evas -I../../../src/lib/ecore 
-I../../../src/lib/ecore_evas -I../../../src/lib/ecore_x       -g -O2 
-Wall -MT ecore_evas.lo -MD -MP -MF .deps/ecore_evas.Tpo -c -o 
ecore_evas.lo ecore_evas.c
mkdir .libs
 i686-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I../../.. 
-I../../../src/lib/ecore -I../../../src/lib/ecore_evas 
-I../../../src/lib/ecore -I../../../src/lib/ecore_evas 
-I../../../src/lib/ecore_x -g -O2 -Wall -MT ecore_evas.lo -MD -MP -MF 
.deps/ecore_evas.Tpo -c ecore_evas.c  -fPIC -DPIC -o .libs/ecore_evas.o
In file included from ecore_evas.c:4:
ecore_evas_private.h:34:40: error: Evas_Engine_XRender_Xcb.h: No such 
file or directory
ecore_evas_private.h:127:2: warning: #warning [XCB] No Region code
make[4]: *** [ecore_evas.lo] Error 1
make[4]: Leaving directory 
`/home/presutti/Code/e17/e17/libs/ecore/src/lib/ecore_evas'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/presutti/Code/e17/e17/libs/ecore/src/lib'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/presutti/Code/e17/e17/libs/ecore/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/presutti/Code/e17/e17/libs/ecore'
make: *** [all] Error 2
----------------------------------------

Doing some code investigation, it appears to me as though Evas selects 
the XRender_X11 or XRender_XCB engine based on whether or not XCB 
support is enabled in Evas.

----------------------------------------
File : src/lib/ecore_evas/ecore_evas_private.h
----------------------------------------
 25 #ifdef BUILD_ECORE_X
 26 # include "Ecore_X.h"
 27 # ifdef HAVE_ECORE_X_XCB
 28 #  include <Evas_Engine_Software_Xcb.h>
 29 #  include <xcb/xcb.h>
 30 #  ifdef ECORE_XCB_RENDER
 31 #   include <xcb/render.h>
 32 #  endif
 33 #  ifdef BUILD_ECORE_EVAS_XRENDER
 34 #   include <Evas_Engine_XRender_Xcb.h>
 35 #  endif
 36 # else
 37 #  include <Evas_Engine_Software_X11.h>
 38 #  include <X11/Xlib.h>
 39 #  include <X11/Xutil.h>
 40 #  ifdef ECORE_XRENDER
 41 #   include <X11/extensions/Xrender.h>
 42 #  endif
 43 #  ifdef BUILD_ECORE_EVAS_GL
 44 #   include <Evas_Engine_GL_X11.h>
 45 #  endif
 46 #  ifdef BUILD_ECORE_EVAS_XRENDER
 47 #   include <Evas_Engine_XRender_X11.h>
 48 #  endif
 49 # endif /* HAVE_ECORE_X_XCB */
 50 #endif
----------------------------------------

Is this the correct behavior? If I enable XRender and XCB, do I have to 
have the XRender_XCB engine built in Evas? If that's the case, any idea 
when the XRender_XCB will compile again in Evas? :-)

Thanks,
Ed Presutti (ekrunch on freenode)

-- 
"Debugging is twice as hard as writing the code in the first place. 
Therefore, if you write the code as cleverly as possible, you are, by 
definition, not smart enough to debug it." - Brian W. Kernighan

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to