symbian-qemu-0.9.1-12/qemu-symbian-svp/hw/fb_render_def.h
changeset 1 2fb8b9db1c86
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/qemu-symbian-svp/hw/fb_render_def.h	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,148 @@
+/*
+ *  Render Engine for framebuffer devices
+ *
+ *  Copyright (c) 2008 CodeSourcery
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+
+/* This file builds the definition tree. */
+
+/*
+    Tree levels:
+        DEFINING_DEST_BPP
+        DEFINING_COLOR_ORDER
+        DEFINING_BYTE_ORDER
+        DEFINING_PIXEL_ORDER
+*/
+
+/* this is for the first time definitions */
+#ifndef DEFINING_WHAT
+
+#   define FB_LITTLE_ENDIAN 0
+#   define FB_BIG_ENDIAN    1
+
+#   define FB_CO_RGB    0
+#   define FB_CO_BGR    1
+
+#   define DEFINING_DEST_BPP        1
+#   define DEFINING_SRC_COLOR_ORDER 2
+#   define DEFINING_SRC_BYTE_ORDER  3
+#   define DEFINING_SRC_PIXEL_ORDER 4
+#   define DEFINING_FUNCTIONS       5   /* Tree leaf */
+
+#   define DEFINING_WHAT    DEFINING_DEST_BPP   /* first definition level */
+#endif
+
+
+/* Begin tree:
+    Each #if DEFINING_WHAT == XXX has one block per option of that level.
+    For example, DEFINING_DEST_BPP will have 5 blocks (8,15,16,24,32).
+    Each of these blocks has the same format:
+        undef DEFINING_WHAT
+        define DEFINING_WHAT (next level)
+        define option
+        include "fb_render_def.h"
+        undef option
+    So, at the end of each block, the only remaining definition is DEFINING_WHAT.
+
+    New combining factors (i.e. more parameters for DEST, such as COLOR ORDER,
+    BYTE ORDER, etc.) will have to be added as new blocks.
+*/
+
+
+#if DEFINING_WHAT == DEFINING_DEST_BPP
+
+#   undef DEFINING_WHAT
+#   define DEFINING_WHAT    DEFINING_SRC_COLOR_ORDER
+#   define DEST_BPP 8
+#   include "fb_render_def.h"
+#   undef DEST_BPP
+
+#   undef DEFINING_WHAT
+#   define DEFINING_WHAT    DEFINING_SRC_COLOR_ORDER
+#   define DEST_BPP 15
+#   include "fb_render_def.h"
+#   undef DEST_BPP
+
+#   undef DEFINING_WHAT
+#   define DEFINING_WHAT    DEFINING_SRC_COLOR_ORDER
+#   define DEST_BPP 16
+#   include "fb_render_def.h"
+#   undef DEST_BPP
+
+#   undef DEFINING_WHAT
+#   define DEFINING_WHAT    DEFINING_SRC_COLOR_ORDER
+#   define DEST_BPP 24
+#   include "fb_render_def.h"
+#   undef DEST_BPP
+
+#   undef DEFINING_WHAT
+#   define DEFINING_WHAT    DEFINING_SRC_COLOR_ORDER
+#   define DEST_BPP 32
+#   include "fb_render_def.h"
+#   undef DEST_BPP
+
+#elif DEFINING_WHAT == DEFINING_SRC_COLOR_ORDER
+
+#   undef DEFINING_WHAT
+#   define DEFINING_WHAT    DEFINING_SRC_BYTE_ORDER
+#   define FB_SRC_COLOR_ORDER   FB_CO_BGR
+#   include "fb_render_def.h"
+#   undef FB_SRC_COLOR_ORDER
+
+#   undef DEFINING_WHAT
+#   define DEFINING_WHAT    DEFINING_SRC_BYTE_ORDER
+#   define FB_SRC_COLOR_ORDER   FB_CO_RGB
+#   include "fb_render_def.h"
+#   undef FB_SRC_COLOR_ORDER
+
+#elif DEFINING_WHAT == DEFINING_SRC_BYTE_ORDER
+
+#   undef DEFINING_WHAT
+#   define DEFINING_WHAT    DEFINING_SRC_PIXEL_ORDER
+#   define FB_SRC_BYTE_ORDER    FB_LITTLE_ENDIAN
+#   include "fb_render_def.h"
+#   undef FB_SRC_BYTE_ORDER
+
+#   undef DEFINING_WHAT
+#   define DEFINING_WHAT    DEFINING_SRC_PIXEL_ORDER
+#   define FB_SRC_BYTE_ORDER    FB_BIG_ENDIAN
+#   include "fb_render_def.h"
+#   undef FB_SRC_BYTE_ORDER
+
+#elif DEFINING_WHAT == DEFINING_SRC_PIXEL_ORDER
+
+#   undef DEFINING_WHAT
+#   define DEFINING_WHAT    DEFINING_FUNCTIONS
+#   define FB_SRC_PIXEL_ORDER    FB_LITTLE_ENDIAN
+#   include "fb_render_def.h"
+#   undef FB_SRC_PIXEL_ORDER
+
+#   undef DEFINING_WHAT
+#   define DEFINING_WHAT    DEFINING_FUNCTIONS
+#   define FB_SRC_PIXEL_ORDER    FB_BIG_ENDIAN
+#   include "fb_render_def.h"
+#   undef FB_SRC_PIXEL_ORDER
+
+#elif DEFINING_WHAT == DEFINING_FUNCTIONS
+#   undef DEFINING_WHAT
+    /* End of recursion. Include the template now */
+#   include "fb_render_template.h"
+#endif
+
+
+