gpu_unai: support bgr888->rgb565 conversion for maemo
authornotaz <notasas@gmail.com>
Fri, 4 Feb 2011 13:00:03 +0000 (15:00 +0200)
committernotaz <notasas@gmail.com>
Fri, 4 Feb 2011 13:11:59 +0000 (15:11 +0200)
Makefile.maemo
frontend/arm_utils.h
plugins/gpu_unai/Makefile
plugins/gpu_unai/gpu.cpp

index 8a710cc..06f21dc 100644 (file)
@@ -2,6 +2,7 @@ USE_GTK=1
 USE_ALSA=1
 USE_OSS=0
 
+export MAEMO=1
 LDFLAGS += $(shell pkg-config --libs hildon-1 libpulse)
 EXTRA_CFLAGS += -march=armv7-a -O3 -mfpu=neon -funsafe-math-optimizations \
        -mstructure-size-boundary=32 -falign-functions=32 -falign-loops \
index f7d637e..a5dcb9b 100644 (file)
@@ -1,3 +1,12 @@
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
 void bgr555_to_rgb565(void *dst, void *src, int bytes);
 void bgr888_to_rgb888(void *dst, void *src, int bytes);
 void bgr888_to_rgb565(void *dst, void *src, int bytes);
+
+#ifdef __cplusplus
+}
+#endif
index a89ca6b..e7640c6 100644 (file)
@@ -4,6 +4,9 @@ CFLAGS += -ggdb -fPIC -Wall -DREARMED
 ifndef DEBUG
 CFLAGS += -O2 -ffast-math -fomit-frame-pointer
 endif
+ifdef MAEMO
+CFLAGS += -DMAEMO
+endif
 CFLAGS += -mcpu=cortex-a8 -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
 # -fschedule-insns (from -O2+) causes bugs, probably bad asm() statements
 CFLAGS += -fno-schedule-insns -fno-schedule-insns2
index f6dd167..5152327 100644 (file)
@@ -864,11 +864,10 @@ void  GPU_updateLace(void)
 #else
 
 #include "../../frontend/plugin_lib.h"
+#include "../../frontend/arm_utils.h"
 
 extern "C" {
 
-extern void bgr555_to_rgb565(void *dst, void *src, int bytes);
-extern void bgr888_to_rgb888(void *dst, void *src, int bytes);
 static const struct rearmed_cbs *cbs;
 static void *screen_buf;
 
@@ -904,10 +903,17 @@ static void blit(void)
 
        if (isRGB24)
        {
+#ifndef MAEMO
                for (; h1-- > 0; dest += w0 * 3, srcs += 1024)
                {
                        bgr888_to_rgb888(dest, srcs, w0 * 3);
                }
+#else
+               for (; h1-- > 0; dest += w0 * 2, srcs += 1024)
+               {
+                       bgr888_to_rgb565(dest, srcs, w0 * 3);
+               }
+#endif
        }
        else
        {