diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/qemu-symbian-svp/hw/fb_render_def.h --- /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 + + +