On Sun, 16 Aug 2009 20:25:10 +0700 Mikhail Gusarov <[email protected]> said:
> This is needed for E-Ink devices outta there. Names of new files, > configure.ac variables and macros are awful, suggestions are welcome. greayscale64? i thought they were 16 levels of grey (4bit)? well the ones i saw? or is the 64 mapped to 16 with dithering? > Signed-off-by: Mikhail Gusarov <[email protected]> > --- > configure.ac | 22 ++++++++++++++++++++ > src/lib/engines/common/Makefile.am | 2 + > src/lib/engines/common/evas_convert_grypal_6.c | 26 +++++++++++++++++++++++ > + src/lib/engines/common/evas_convert_grypal_6.h | 10 +++++++++ > src/lib/engines/common/evas_convert_main.c | 5 ++++ > 5 files changed, 65 insertions(+), 0 deletions(-) > create mode 100644 src/lib/engines/common/evas_convert_grypal_6.c > create mode 100644 src/lib/engines/common/evas_convert_grypal_6.h > > diff --git a/configure.ac b/configure.ac > index 287ec98..4be17e9 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -1072,6 +1072,27 @@ EVAS_CONVERT_ROT(32, RGB, 270) > ## Convert to 32bpp RGB with rotation of 90 > EVAS_CONVERT_ROT(32, RGB, 90) > > +####################################### > +## Convert to 8bpp grayscale, 64-palette > +conv_8_grayscale_64="yes" > +AC_MSG_CHECKING(whether to build 8bpp grayscale 64-palette converter code) > +AC_ARG_ENABLE(convert-8-grayscale-64, > + AC_HELP_STRING([--disable-convert-8-grayscale-64], [disable 8bpp grayscale > 64-palette converter code]), > + [ > + if test "$enableval" = "xyes"; then > + AC_DEFINE(BUILD_CONVERT_8_GRAYSCALE_64, 1, [8bpp Grayscale 64-palette > Converter Support]) > + conv_8_grayscale_64="yes" > + else > + conv_8_grayscale_64="no" > + fi > + ], [ > + if test "x$conv_8_grayscale_64" = "xyes"; then > + AC_DEFINE(BUILD_CONVERT_8_GRAYSCALE_64, 1, [32bpp Grayscale > 64-palette Converter Support]) > + fi > + ] > +) > +AC_MSG_RESULT($conv_8_grayscale_64) > + > ## valgrind > want_valgrind="no" > have_valgrind="no" > @@ -1286,6 +1307,7 @@ echo " 8bpp RGB 222............: $conv_8_rgb_222" > echo " 8bpp RGB 221............: $conv_8_rgb_221" > echo " 8bpp RGB 121............: $conv_8_rgb_121" > echo " 8bpp RGB 111............: $conv_8_rgb_111" > +echo " 8bpp Grayscale 64-pal...: $conv_8_grayscale_64" > # FIXME: add grayscale and B&W support > echo " 16bpp RGB 565...........: $conv_16_rgb_565" > echo " 16bpp BGR 565...........: $conv_16_bgr_565" > diff --git a/src/lib/engines/common/Makefile.am > b/src/lib/engines/common/Makefile.am index 4b998bc..75a358c 100644 > --- a/src/lib/engines/common/Makefile.am > +++ b/src/lib/engines/common/Makefile.am > @@ -35,6 +35,7 @@ evas_convert_rgb_16.c \ > evas_convert_rgb_24.c \ > evas_convert_rgb_32.c \ > evas_convert_rgb_8.c \ > +evas_convert_grypal_6.c \ > evas_convert_yuv.c \ > evas_cpu.c \ > evas_draw_main.c \ > @@ -78,6 +79,7 @@ evas_convert_colorspace.h \ > evas_convert_gry_1.h \ > evas_convert_gry_4.h \ > evas_convert_gry_8.h \ > +evas_convert_grypal_6.h \ > evas_convert_main.h \ > evas_convert_rgb_16.h \ > evas_convert_rgb_24.h \ > diff --git a/src/lib/engines/common/evas_convert_grypal_6.c > b/src/lib/engines/common/evas_convert_grypal_6.c new file mode 100644 > index 0000000..786abe2 > --- /dev/null > +++ b/src/lib/engines/common/evas_convert_grypal_6.c > @@ -0,0 +1,26 @@ > +/* > + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 > + */ > + > +#include "evas_common.h" > +#include "evas_convert_grypal_6.h" > + > +#ifdef BUILD_CONVERT_8_GRAYSCALE_64 > +void evas_common_convert_rgba_to_8bpp_pal_gray64 (DATA32 *src, DATA8 > *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, DATA8 > *pal) +{ > + DATA32 *src_ptr; > + DATA8 *dst_ptr; > + int x, y; > + DATA8 Y; > + > + dst_ptr = dst; > + CONVERT_LOOP_START_ROT_0(); > + > + /* RGB -> YUV conversion */ > + Y = (R_VAL(src_ptr) * 76 + G_VAL(src_ptr) * 151 + B_VAL(src_ptr) * 29) / > 1024; + > + *dst_ptr = pal[Y]; > + > + CONVERT_LOOP_END_ROT_0(); > +} > +#endif > diff --git a/src/lib/engines/common/evas_convert_grypal_6.h > b/src/lib/engines/common/evas_convert_grypal_6.h new file mode 100644 > index 0000000..38ccda8 > --- /dev/null > +++ b/src/lib/engines/common/evas_convert_grypal_6.h > @@ -0,0 +1,10 @@ > +/* > + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 > + */ > + > +#ifndef _EVAS_CONVERT_GRY_4_H > +#define _EVAS_CONVERT_GRY_4_H > + > +void evas_common_convert_rgba_to_8bpp_pal_gray64 (DATA32 *src, > DATA8 *dst, int src_jump, int dst_jump, int w, int h, int dith_x, int dith_y, > DATA8 *pal); + +#endif /* _EVAS_CONVERT_GRY_4_H */ > diff --git a/src/lib/engines/common/evas_convert_main.c > b/src/lib/engines/common/evas_convert_main.c index 6271464..6182667 100644 > --- a/src/lib/engines/common/evas_convert_main.c > +++ b/src/lib/engines/common/evas_convert_main.c > @@ -7,6 +7,7 @@ > #include "evas_convert_rgb_16.h" > #include "evas_convert_rgb_24.h" > #include "evas_convert_rgb_32.h" > +#include "evas_convert_grypal_6.h" > #include "evas_convert_yuv.h" > > #ifdef USE_DITHER_44 > @@ -193,6 +194,10 @@ evas_common_convert_func_get(DATA8 *dest, int w, int h, > int depth, DATA32 rmask, if (pal_mode == PAL_MODE_RGB111) > return evas_common_convert_rgba_to_8bpp_rgb_111_dith; > #endif > +#ifdef BUILD_CONVERT_8_GRAYSCALE_64 > + if (pal_mode == PAL_MODE_GRAY64) > + return evas_common_convert_rgba_to_8bpp_pal_gray64; > +#endif > } > if (depth == 1) > { > -- > 1.6.3.3 > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > enlightenment-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) [email protected] ------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
