diff --git a/legacy/evas/Makefile.am b/legacy/evas/Makefile.am index 1e000f4c53..1114352f32 100644 --- a/legacy/evas/Makefile.am +++ b/legacy/evas/Makefile.am @@ -30,6 +30,7 @@ evas-software-buffer.pc \ evas-software-qtopia.pc \ evas-software-x11.pc \ evas-software-16-x11.pc \ +evas-software-8-x11.pc \ evas-xrender-x11.pc \ evas-xrender-xcb.pc \ evas-software-gdi.pc \ @@ -69,6 +70,7 @@ evas-software-buffer.pc.in \ evas-software-qtopia.pc.in \ evas-software-x11.pc.in \ evas-software-16-x11.pc.in \ +evas-software-8-x11.pc.in \ evas-xrender-x11.pc.in \ evas-xrender-xcb.pc.in \ evas-software-gdi.pc.in \ @@ -90,6 +92,10 @@ if BUILD_ENGINE_SOFTWARE_16_X11 pkgconfig_DATA += evas-software-16-x11.pc endif +if BUILD_ENGINE_SOFTWARE_8_X11 +pkgconfig_DATA += evas-software-8-x11.pc +endif + if BUILD_ENGINE_DIRECTFB pkgconfig_DATA += evas-directfb.pc endif diff --git a/legacy/evas/configure.ac b/legacy/evas/configure.ac index f76c784b9b..ce24f37b40 100644 --- a/legacy/evas/configure.ac +++ b/legacy/evas/configure.ac @@ -106,6 +106,7 @@ want_evas_engine_software_sdl="no" want_evas_engine_fb="no" want_evas_engine_directfb="no" want_evas_engine_software_qtopia="no" +want_evas_engine_software_8_x11="no" want_evas_engine_software_16_x11="no" want_evas_engine_software_16_ddraw="no" want_evas_engine_software_16_wince="no" @@ -148,6 +149,7 @@ case "$host_os" in *) want_evas_engine_software_xlib="auto" want_evas_engine_xrender_x11="auto" + want_evas_engine_software_8_x11="auto" want_evas_engine_software_16_x11="auto" ;; esac @@ -521,6 +523,8 @@ EVAS_CHECK_ENGINE([directfb], [${want_evas_engine_directfb}], [no], [DirectFB]) # disable cairo engine for the release #EVAS_CHECK_ENGINE([software-qtopia], [${want_evas_engine_software_qtopia}], [no], [Qtopia]) +EVAS_CHECK_ENGINE([software-8-x11], [${want_evas_engine_software_8_x11}], [yes], [Software X11 8 bits grayscale]) + EVAS_CHECK_ENGINE([software-16-x11], [${want_evas_engine_software_16_x11}], [yes], [Software X11 16 bits]) EVAS_CHECK_ENGINE([software-16-ddraw], [${want_evas_engine_software_16_ddraw}], [no], [Software DirectDraw 16 bits]) @@ -659,6 +663,28 @@ if test "x${have_static_software_16}" = "xyes"; then AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_16, [1], [Build software 16 engine as part of libevas]) fi +# if software 8 x11 is enabled - build software_8 (the generic 8bit +# engine). +have_evas_engine_software_8="no" +if test "x$have_evas_engine_software_8_x11" = "xyes" -o "x$have_evas_engine_software_8_x11" = "xstatic"; then + have_evas_engine_software_8="yes" +fi +AM_CONDITIONAL(BUILD_ENGINE_SOFTWARE_8, test "x$have_evas_engine_software_8" = "xyes") + +# if software 8 need to be build as part of libevas.so +have_static_software_8="no" +AC_ARG_ENABLE([static-software-8], + [AC_HELP_STRING([--enable-static-software-8], [Build software 8 engine as part of libevas])], + [have_static_software_8=${enableval}] +) +AC_MSG_CHECKING([Whether to build software 8 engine as part of libevas]) +AC_MSG_RESULT([${have_static_software_8}]) + +AM_CONDITIONAL(EVAS_STATIC_BUILD_SOFTWARE_8, test "x${have_static_software_8}" = "xyes") +if test "x${have_static_software_8}" = "xyes"; then + AC_DEFINE(EVAS_STATIC_BUILD_SOFTWARE_8, [1], [Build software 8 engine as part of libevas]) +fi + ##################################################################### ## Image loaders @@ -1409,6 +1435,7 @@ evas-opengl-sdl.pc evas-quartz.pc evas-software-buffer.pc evas-software-x11.pc +evas-software-8-x11.pc evas-software-16-x11.pc evas-xrender-x11.pc evas-xrender-xcb.pc @@ -1437,6 +1464,7 @@ src/lib/engines/common/evas_op_copy/Makefile src/lib/engines/common/evas_op_mask/Makefile src/lib/engines/common/evas_op_mul/Makefile src/lib/engines/common/evas_op_sub/Makefile +src/lib/engines/common_8/Makefile src/lib/engines/common_16/Makefile src/modules/Makefile src/modules/engines/Makefile @@ -1456,6 +1484,8 @@ src/modules/engines/gl_sdl/Makefile src/modules/engines/quartz/Makefile src/modules/engines/xrender_x11/Makefile src/modules/engines/software_sdl/Makefile +src/modules/engines/software_8/Makefile +src/modules/engines/software_8_x11/Makefile src/modules/engines/software_16/Makefile src/modules/engines/software_16_x11/Makefile src/modules/engines/software_16_ddraw/Makefile @@ -1530,6 +1560,7 @@ fi echo " Software Framebuffer.......: $have_evas_engine_fb" echo " DirectFB...................: $have_evas_engine_directfb" #echo " Software Qtopia............: $have_evas_engine_software_qtopia" +echo " Software 8bit grayscale....: $have_evas_engine_software_8" echo " Software 16bit ............: $have_evas_engine_software_16" echo " Software 16bit X11.........: $have_evas_engine_software_16_x11" echo " Software 16bit Directdraw..: $have_evas_engine_software_16_ddraw" diff --git a/legacy/evas/m4/evas_check_engine.m4 b/legacy/evas/m4/evas_check_engine.m4 index 04549512b0..54ce5d2211 100644 --- a/legacy/evas/m4/evas_check_engine.m4 +++ b/legacy/evas/m4/evas_check_engine.m4 @@ -248,6 +248,8 @@ PKG_CHECK_MODULES([XCB], requirement="xcb xcb-shm xcb-image pixman-1" evas_engine_[]$1[]_cflags="${XCB_CFLAGS}" evas_engine_[]$1[]_libs="${XCB_LIBS}" + ],[ + have_dep="no" ] ) @@ -283,6 +285,8 @@ PKG_CHECK_MODULES([XCBRENDER], requirement="xcb xcb-shm xcb-render xcb-image pixman-1" evas_engine_[]$1[]_cflags="${XCBRENDER_CFLAGS}" evas_engine_[]$1[]_libs="${XCBRENDER_LIBS}" + ],[ + have_dep="no" ] ) @@ -655,6 +659,42 @@ fi ]) +dnl use: EVAS_CHECK_ENGINE_DEP_SOFTWARE_8_X11(engine, simple, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) + +AC_DEFUN([EVAS_CHECK_ENGINE_DEP_SOFTWARE_8_X11], +[ + +have_dep="no" +evas_engine_[]$1[]_cflags="" +evas_engine_[]$1[]_libs="" + +PKG_CHECK_MODULES([XCB], + [xcb xcb-shm xcb-image >= 0.2.1 pixman-1], + [ + have_dep="yes" + requirement="xcb xcb-shm xcb-image pixman-1" + evas_engine_[]$1[]_cflags="${XCB_CFLAGS}" + evas_engine_[]$1[]_libs="${XCB_LIBS}" + ],[ + have_dep="no" + ] +) + +AC_SUBST([evas_engine_$1_cflags]) +AC_SUBST([evas_engine_$1_libs]) + +if test "x$3" = "xstatic" ; then + requirement_evas="${requirement} ${requirement_evas}" +fi + +if test "x${have_dep}" = "xyes" ; then + m4_default([$4], [:]) +else + m4_default([$5], [:]) +fi + +]) + dnl use: EVAS_CHECK_ENGINE_DEP_SOFTWARE_16_X11(engine, simple, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) AC_DEFUN([EVAS_CHECK_ENGINE_DEP_SOFTWARE_16_X11], [ diff --git a/legacy/evas/src/lib/Evas.h b/legacy/evas/src/lib/Evas.h index 06e78b3159..7a5615678c 100644 --- a/legacy/evas/src/lib/Evas.h +++ b/legacy/evas/src/lib/Evas.h @@ -151,7 +151,8 @@ typedef enum _Evas_Colorspace /* these are not currently supported - but planned for the future */ EVAS_COLORSPACE_YCBCR422P601_PL, /**< YCbCr 4:2:2 Planar, ITU.BT-601 specifications. The data poitned to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows */ EVAS_COLORSPACE_YCBCR422P709_PL,/**< YCbCr 4:2:2 Planar, ITU.BT-709 specifications. The data poitned to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows */ - EVAS_COLORSPACE_RGB565_A5P /**< 16bit rgb565 + Alpha plane at end - 5 bits of the 8 being used per alpha byte */ + EVAS_COLORSPACE_RGB565_A5P, /**< 16bit rgb565 + Alpha plane at end - 5 bits of the 8 being used per alpha byte */ + EVAS_COLORSPACE_GRY8 /**< 8bit grayscale */ } Evas_Colorspace; /**< Colorspaces for pixel data supported by Evas */ /** diff --git a/legacy/evas/src/lib/Makefile.am b/legacy/evas/src/lib/Makefile.am index d80c8b87ef..94b081268e 100644 --- a/legacy/evas/src/lib/Makefile.am +++ b/legacy/evas/src/lib/Makefile.am @@ -67,6 +67,15 @@ SUBDIRS += ../modules/engines/software_16_x11/ EVAS_STATIC_MODULE += ../modules/engines/software_16_x11/libevas_engine_software_16_x11.la EVAS_STATIC_LIBADD += @evas_engine_software_16_x11_libs@ endif +if EVAS_STATIC_BUILD_SOFTWARE_8 +SUBDIRS += ../modules/engines/software_8/ +EVAS_STATIC_MODULE += ../modules/engines/software_8/libevas_engine_software_8.la +endif +if EVAS_STATIC_BUILD_SOFTWARE_8_X11 +SUBDIRS += ../modules/engines/software_8_x11/ +EVAS_STATIC_MODULE += ../modules/engines/software_8_x11/libevas_engine_software_8_x11.la +EVAS_STATIC_LIBADD += @evas_engine_software_8_x11_libs@ +endif if EVAS_STATIC_BUILD_SOFTWARE_SDL SUBDIRS += \ ../modules/engines/software_16_sdl/ \ @@ -220,6 +229,13 @@ libevas_la_DEPENDENCIES += engines/common_16/libevas_engine_common_16.la endif +if BUILD_ENGINE_SOFTWARE_8 + +libevas_la_LIBADD += engines/common_8/libevas_engine_common_8.la +libevas_la_DEPENDENCIES += engines/common_8/libevas_engine_common_8.la + +endif + libevas_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@ DIST_SUBDIRS = canvas cache cserve file engines imaging include diff --git a/legacy/evas/src/lib/engines/Makefile.am b/legacy/evas/src/lib/engines/Makefile.am index 9d688758d4..0e7706cfb1 100644 --- a/legacy/evas/src/lib/engines/Makefile.am +++ b/legacy/evas/src/lib/engines/Makefile.am @@ -8,3 +8,9 @@ if BUILD_ENGINE_SOFTWARE_16 SUBDIRS += common_16 endif + +if BUILD_ENGINE_SOFTWARE_8 + +SUBDIRS += common_8 + +endif diff --git a/legacy/evas/src/lib/file/evas_module.c b/legacy/evas/src/lib/file/evas_module.c index 9d8cfbc868..957767a540 100644 --- a/legacy/evas/src/lib/file/evas_module.c +++ b/legacy/evas/src/lib/file/evas_module.c @@ -105,6 +105,8 @@ EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_ddraw); EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_sdl); EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_wince); EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_16_x11); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_8); +EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_8_x11); EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_ddraw); EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_gdi); EVAS_EINA_STATIC_MODULE_DEFINE(engine, software_generic); @@ -176,6 +178,12 @@ static const struct { #ifdef EVAS_STATIC_BUILD_SOFTWARE_16_GDI EVAS_EINA_STATIC_MODULE_USE(engine, software_gdi), #endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_8 + EVAS_EINA_STATIC_MODULE_USE(engine, software_8), +#endif +#ifdef EVAS_STATIC_BUILD_SOFTWARE_8_X11 + EVAS_EINA_STATIC_MODULE_USE(engine, software_8_x11), +#endif #ifdef EVAS_STATIC_BUILD_SOFTWARE_GENERIC EVAS_EINA_STATIC_MODULE_USE(engine, software_generic), #endif diff --git a/legacy/evas/src/lib/include/Makefile.am b/legacy/evas/src/lib/include/Makefile.am index 1570bf4654..5c986c2280 100644 --- a/legacy/evas/src/lib/include/Makefile.am +++ b/legacy/evas/src/lib/include/Makefile.am @@ -8,5 +8,6 @@ evas_options.h \ evas_macros.h \ evas_mmx.h \ evas_common.h \ +evas_common_soft8.h \ evas_common_soft16.h \ evas_blend_ops.h diff --git a/legacy/evas/src/modules/engines/Makefile.am b/legacy/evas/src/modules/engines/Makefile.am index 1db0e21e05..bdc9ba1f2a 100644 --- a/legacy/evas/src/modules/engines/Makefile.am +++ b/legacy/evas/src/modules/engines/Makefile.am @@ -29,6 +29,12 @@ endif if !EVAS_STATIC_BUILD_QUARTZ SUBDIRS += quartz endif +if !EVAS_STATIC_BUILD_SOFTWARE_8 +SUBDIRS += software_8 +endif +if !EVAS_STATIC_BUILD_SOFTWARE_8_X11 +SUBDIRS += software_8_x11 +endif if !EVAS_STATIC_BUILD_SOFTWARE_16 SUBDIRS += software_16 endif