diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/qemu-symbian-svp/hw/fb_render_engine.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/symbian-qemu-0.9.1-12/qemu-symbian-svp/hw/fb_render_engine.h Fri Jul 31 15:01:17 2009 +0100 @@ -0,0 +1,109 @@ +/* + * 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 + */ + +/* Vertical flip happens after rotation. */ +enum fb_rotation +{ + ROT_0 = 0, + ROT_90, + ROT_180, + ROT_270, + ROT_0_V, + ROT_90_V, + ROT_180_V, + ROT_270_V +}; + +enum fb_src_bpp_mode +{ + BPP_SRC_1, + BPP_SRC_2, + BPP_SRC_4, + BPP_SRC_8, + BPP_SRC_15, + BPP_SRC_16, + BPP_SRC_24, + BPP_SRC_32 +}; + +enum fb_byte_order +{ + BO_LE, + BO_BE +}; + +enum fb_pixel_order +{ + PO_LE, + PO_BE +}; + +enum fb_color_order +{ + CO_BGR, + CO_RGB +}; + +struct render_data_t; +typedef struct render_data_t render_data; + +/* constructor / destructor */ +render_data *create_render_data(void); +void destroy_render_data(render_data *rd); + +/* getters */ +uint32_t get_cols(const render_data *rd); +uint32_t get_rows(const render_data *rd); +enum fb_rotation get_orientation(const render_data *rd); +void* get_fb_base_in_host(const render_data *rd); +#ifndef HOST_ONLY_DEFS +target_phys_addr_t get_fb_base_in_target(const render_data *rd); +#endif +uint32_t get_blank_mode(const render_data *rd); +enum fb_color_order get_color_order(const render_data *rd); +enum fb_byte_order get_byte_order(const render_data *rd); +enum fb_pixel_order get_pixel_order(const render_data *rd); +enum fb_src_bpp_mode get_src_bpp(const render_data *rd); +uint32_t get_row_pitch(const render_data *rd); +uint32_t get_palette_value(const render_data *rd, uint32_t n); + +/* setters */ +void set_cols(render_data *rd, uint32_t cols); +void set_rows(render_data *rd, uint32_t rows); +void set_orientation(render_data *rd, enum fb_rotation orientation); +void set_fb_base_from_host(render_data *rd, void* base); +#ifndef HOST_ONLY_DEFS +void set_fb_base_from_target(render_data *rd, target_phys_addr_t base); +#endif +void set_blank_mode(render_data *rd, int on_off); +void set_pixel_order(render_data *rd, enum fb_pixel_order pixel_order); +void set_byte_order(render_data *rd, enum fb_byte_order byte_order); +void set_color_order(render_data *rd, enum fb_color_order color_order); +void set_src_bpp(render_data *rd, enum fb_src_bpp_mode src_bpp_mode); +void set_row_pitch(render_data *rd, uint32_t pitch); +void set_palette_value(render_data *rd, uint32_t n, uint32_t value); + +/* This function is used to render the screen on a DisplayState */ +void render(DisplayState *ds, render_data * rd, int full_update); + +/* Save/restore */ +void qemu_put_render_data(QEMUFile *f, const render_data *s); +void qemu_get_render_data(QEMUFile *f, render_data *s); +