From: Alexander Kerner <alexander.kerner@googlemail.com>

Subject: [E-devel] 8bpp xcb evas engine

Hi all,

I've implemented the 8bpp grayscale evas engine. It is based on the 16bpp
engine. It would be nice if someone could review the code and maybe commit
into svn. The patches against evas and ecore are attached.



SVN revision: 50560
This commit is contained in:
Alexander Kerner 2010-07-28 00:16:06 +00:00 committed by Carsten Haitzler
parent d87ed6ac22
commit 0ec2a33a22
9 changed files with 116 additions and 1 deletions

View File

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

View File

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

View File

@ -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],
[

View File

@ -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 */
/**

View File

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

View File

@ -8,3 +8,9 @@ if BUILD_ENGINE_SOFTWARE_16
SUBDIRS += common_16
endif
if BUILD_ENGINE_SOFTWARE_8
SUBDIRS += common_8
endif

View File

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

View File

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

View File

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