Hi
The attached patch adds 16bpp and 32bpp Rotation 180 Converter Code to
evas. I did not add the 180 degrees rotation to the software_qtopia
engine as I cannot test it at the moment.
Please apply.
-- Lars Munch
Index: configure.in
===
RCS file: /var/cvs/e/e17/libs/evas/configure.in,v
retrieving revision 1.200
diff -p -u -r1.200 configure.in
--- configure.in 10 Feb 2007 17:23:05 - 1.200
+++ configure.in 17 Feb 2007 20:28:48 -
@@ -1602,6 +1602,29 @@ AC_ARG_ENABLE(convert-16-rgb-rot-0,
)
###
+## Convert to 16bpp RGB with rotation of 180
+conv_16_rgb_rot_180=no
+conv_16_rgb_rot_180=yes
+AC_MSG_CHECKING(whether to build 16bpp rotation 180 converter code)
+AC_ARG_ENABLE(convert-16-rgb-rot-180,
+ [ --enable-convert-16-rgb-rot-180 enable 16bpp rotation 180 converter code], [
+ if test x$enableval = xyes ; then
+AC_MSG_RESULT(yes)
+AC_DEFINE(BUILD_CONVERT_16_RGB_ROT180, 1, [16bpp Rotation 180 Converter Code])
+conv_16_rgb_rot_180=yes
+ else
+AC_MSG_RESULT(no)
+conv_16_rgb_rot_180=no
+ fi
+ ], [
+ AC_MSG_RESULT($conv_16_rgb_rot_180)
+ if test x$conv_16_rgb_rot_180 = xyes ; then
+AC_DEFINE(BUILD_CONVERT_16_RGB_ROT180, 1, [16bpp Rotation 180 Converter Code])
+ fi
+ ]
+)
+
+###
## Convert to 16bpp RGB with rotation of 270
conv_16_rgb_rot_270=no
conv_16_rgb_rot_270=yes
@@ -1809,6 +1832,29 @@ AC_ARG_ENABLE(convert-32-rgb-rot-0,
)
###
+## Convert to 32bpp RGB with rotation of 180
+conv_32_rgb_rot_180=no
+conv_32_rgb_rot_180=yes
+AC_MSG_CHECKING(whether to build 32bpp rotation 180 converter code)
+AC_ARG_ENABLE(convert-32-rgb-rot-180,
+ [ --enable-convert-32-rgb-rot-180 enable 32bpp rotation 180 converter code], [
+ if test x$enableval = xyes ; then
+AC_MSG_RESULT(yes)
+AC_DEFINE(BUILD_CONVERT_32_RGB_ROT180, 1, [32bpp Rotation 180 Converter Support])
+conv_32_rgb_rot_180=yes
+ else
+AC_MSG_RESULT(no)
+conv_32_rgb_rot_180=no
+ fi
+ ], [
+ AC_MSG_RESULT($conv_32_rgb_rot_180)
+ if test x$conv_32_rgb_rot_180 = xyes ; then
+AC_DEFINE(BUILD_CONVERT_32_RGB_ROT180, 1, [32bpp Rotation 180 Converter Support])
+ fi
+ ]
+)
+
+###
## Convert to 32bpp RGB with rotation of 270
conv_32_rgb_rot_270=no
conv_32_rgb_rot_270=yes
@@ -2078,8 +2124,8 @@ echo 16bpp RGB 565 (444 ipaq): $conv_
# FIXME: add 8bpp and below rotation
echo 16bpp Rotation 0: $conv_16_rgb_rot_0
echo 16bpp Rotation 90...: $conv_16_rgb_rot_90
+echo 16bpp Rotation 180..: $conv_16_rgb_rot_180
echo 16bpp Rotation 270..: $conv_16_rgb_rot_270
-# FIXME: add 180 rotation
echo 24bpp RGB 888...: $conv_24_rgb_888
echo 24bpp BGR 888...: $conv_24_bgr_888
# FIXME: add 24bpp rotation
@@ -2089,8 +2135,8 @@ echo 32bpp BGR ..: $conv_
echo 32bpp BGRX .: $conv_32_bgrx_
echo 32bpp Rotation 0: $conv_32_rgb_rot_0
echo 32bpp Rotation 90...: $conv_32_rgb_rot_90
+echo 32bpp Rotation 180..: $conv_32_rgb_rot_180
echo 32bpp Rotation 270..: $conv_32_rgb_rot_270
-# FIXME: add 180 rotation
echo
echo
echo
Index: src/lib/engines/common/evas_convert_main.c
===
RCS file: /var/cvs/e/e17/libs/evas/src/lib/engines/common/evas_convert_main.c,v
retrieving revision 1.7
diff -p -u -r1.7 evas_convert_main.c
--- src/lib/engines/common/evas_convert_main.c 10 Feb 2007 17:23:06 - 1.7
+++ src/lib/engines/common/evas_convert_main.c 17 Feb 2007 20:28:50 -
@@ -208,6 +208,15 @@ evas_common_convert_func_get(DATA8 *dest
return evas_common_convert_rgba_to_16bpp_rgb_565_dith;
}
#endif
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+ if (rotation == 180)
+ {
+ if ((!(w 0x1)) (!((int)dest 0x3)))
+ return evas_common_convert_rgba2_to_16bpp_rgb_565_dith_rot_180;
+ else
+ return evas_common_convert_rgba_to_16bpp_rgb_565_dith_rot_180;
+ }
+#endif
#ifdef BUILD_CONVERT_16_RGB_ROT270
if (rotation == 270)
{
@@ -240,6 +249,15 @@ evas_common_convert_func_get(DATA8 *dest
return evas_common_convert_rgba_to_16bpp_bgr_565_dith;
}
#endif
+#ifdef BUILD_CONVERT_16_RGB_ROT180
+ if (rotation == 180)
+ {
+ if ((!(w 0x1)) (!((int)dest 0x3)))
+ return evas_common_convert_rgba2_to_16bpp_bgr_565_dith_rot_180;
+ else
+ return evas_common_convert_rgba_to_16bpp_bgr_565_dith_rot_180;
+ }
+#endif
#ifdef BUILD_CONVERT_16_RGB_ROT270
if (rotation == 270)
{
@@ -272,6 +290,15 @@ evas_common_convert_func_get(DATA8 *dest
return evas_common_convert_rgba_to_16bpp_rgb_555_dith;
}