From fc72c5375813a6bbc0845aca984147a944a7e62a Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Fri, 3 Feb 2006 15:19:58 +0000 Subject: Patch #1417462 by Dan Everton - Improved SDL simulator git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8546 a1c6a512-1295-4272-9138-f99709370657 --- uisimulator/sdl/lcd-x11.c | 212 ---------------------------------------------- 1 file changed, 212 deletions(-) delete mode 100644 uisimulator/sdl/lcd-x11.c (limited to 'uisimulator/sdl/lcd-x11.c') diff --git a/uisimulator/sdl/lcd-x11.c b/uisimulator/sdl/lcd-x11.c deleted file mode 100644 index c30d857d8c..0000000000 --- a/uisimulator/sdl/lcd-x11.c +++ /dev/null @@ -1,212 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2002 by Daniel Stenberg - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "screenhack.h" -#include "system.h" -#include "config.h" - -/* - * Specific implementations for X11, using the generic LCD API and data. - */ - -#include "lcd-x11.h" -#include "lcd-playersim.h" - -#include - -extern SDL_Surface *surface; - -extern void screen_resized(int width, int height); -extern bool lcd_display_redraw; - -#ifdef HAVE_LCD_BITMAP -#if LCD_DEPTH==16 -fb_data lcd_framebuffer_copy[LCD_HEIGHT][LCD_WIDTH*2]; -#else -fb_data lcd_framebuffer_copy[LCD_HEIGHT][LCD_WIDTH]; -#endif - -void lcd_update (void) -{ - /* update a full screen rect */ - lcd_update_rect(0, 0, LCD_WIDTH, LCD_HEIGHT); -} - -void lcd_update_rect(int x_start, int y_start, - int width, int height) -{ - int x; - int y; - int p=0; - int xmax; - int ymax; - int colors[LCD_WIDTH * LCD_HEIGHT]; - struct coordinate points[LCD_WIDTH * LCD_HEIGHT]; - -#if 0 - fprintf(stderr, "%04d: lcd_update_rect(%d, %d, %d, %d)\n", - counter++, x_start, y_start, width, height); -#endif - ymax = y_start + height; - xmax = x_start + width; - - if(xmax > LCD_WIDTH) - xmax = LCD_WIDTH; - if(ymax >= LCD_HEIGHT) - ymax = LCD_HEIGHT; - - for (x = x_start; x < xmax; x++) - for (y = y_start; y < ymax; y++) - { -#if LCD_DEPTH == 1 - Uint32 sdl_white = SDL_MapRGB(surface->format, 255, 255, 255); - Uint32 sdl_black = SDL_MapRGB(surface->format, 0, 0, 0); - points[p].x = x + MARGIN_X; - points[p].y = y + MARGIN_Y; - colors[p] = ((lcd_framebuffer[y/8][x] >> (y & 7)) & 1) ? sdl_black : sdl_white; -#elif LCD_DEPTH == 2 - unsigned gray = ((lcd_framebuffer[y/4][x] >> (2 * (y & 3))) & 3) * 85; - points[p].x = x + MARGIN_X; - points[p].y = y + MARGIN_Y; - colors[p] = SDL_MapRGB(surface->format, 255-gray, 255-gray, 255-gray); -#elif LCD_DEPTH == 16 -#if LCD_PIXELFORMAT == RGB565SWAPPED - unsigned short pixel = swap16(lcd_framebuffer[y][x]); - unsigned r = ((pixel >> 11) & 0x1f) << 3; - unsigned g = ((pixel >> 5) & 0x3f) << 2; - unsigned b = (pixel & 0x1f) << 3; - points[p].x = x + MARGIN_X; - points[p].y = y + MARGIN_Y; - colors[p] = SDL_MapRGB(surface->format, r, g, b); -#else - unsigned r = ((lcd_framebuffer[y][x] >> 11) & 0x1f) << 3; - unsigned g = ((lcd_framebuffer[y][x] >> 5) & 0x3f) << 2; - unsigned b = ((lcd_framebuffer[y][x]) & 0x1f) << 3; - points[p].x = x + MARGIN_X; - points[p].y = y + MARGIN_Y; - colors[p] = SDL_MapRGB(surface->format, r, g, b); -#endif -#endif - p++; - } - - dots(colors, &points[0], p); - /* printf("lcd_update_rect: Draws %d pixels, clears %d pixels\n", p, cp);*/ - SDL_UpdateRect(surface, 0, 0, 0, 0); - lcd_display_redraw=false; -} - -#ifdef LCD_REMOTE_HEIGHT -extern unsigned char lcd_remote_framebuffer[LCD_REMOTE_HEIGHT/8][LCD_REMOTE_WIDTH]; -unsigned char lcd_remote_framebuffer_copy[LCD_REMOTE_HEIGHT/8][LCD_REMOTE_WIDTH]; - -#define REMOTE_START_Y (LCD_HEIGHT + 2*MARGIN_Y) - -void lcd_remote_update (void) -{ - lcd_remote_update_rect(0, 0, LCD_REMOTE_WIDTH, LCD_REMOTE_HEIGHT); -} - -void lcd_remote_update_rect(int x_start, int y_start, - int width, int height) -{ - int x; - int y; - int p=0; - int xmax; - int ymax; - struct coordinate points[LCD_REMOTE_WIDTH * LCD_REMOTE_HEIGHT]; - int colors[LCD_REMOTE_WIDTH * LCD_REMOTE_HEIGHT]; - Uint32 sdl_white = SDL_MapRGB(surface->format, 255, 255, 255); - Uint32 sdl_black = SDL_MapRGB(surface->format, 0, 0, 0); - -#if 0 - fprintf(stderr, "%04d: lcd_update_rect(%d, %d, %d, %d)\n", - counter++, x_start, y_start, width, height); -#endif - ymax = y_start + height; - xmax = x_start + width; - - if(xmax > LCD_REMOTE_WIDTH) - xmax = LCD_REMOTE_WIDTH; - if(ymax >= LCD_REMOTE_HEIGHT) - ymax = LCD_REMOTE_HEIGHT; - - for (x = x_start; x < xmax; x++) - for (y = y_start; y < ymax; y++) { - colors[p] = ((lcd_remote_framebuffer[y/8][x] >> (y & 7)) & 1) ? sdl_black : sdl_white; - points[p].x = x + MARGIN_X; - points[p].y = y + MARGIN_Y + REMOTE_START_Y; - p++; - } - - dots(colors, &points[0], p); - /* printf("lcd_update_rect: Draws %d pixels, clears %d pixels\n", p, cp);*/ - SDL_UpdateRect(surface, 0, 0, 0, 0); - lcd_display_redraw=false; -} - - -#endif - -#endif -#ifdef HAVE_LCD_CHARCELLS - -/* Defined in lcd-playersim.c */ -extern void lcd_print_char(int x, int y); -extern unsigned char lcd_buffer[2][11]; - -extern unsigned char hardware_buffer_lcd[11][2]; -static unsigned char lcd_buffer_copy[11][2]; - -void lcd_update (void) -{ - bool changed=false; - int x, y; - for (y=0; y<2; y++) { - for (x=0; x<11; x++) { - if (lcd_display_redraw || - lcd_buffer_copy[x][y] != hardware_buffer_lcd[x][y]) { - lcd_buffer_copy[x][y] = hardware_buffer_lcd[x][y]; - lcd_print_char(x, y); - changed=true; - } - } - } - if (changed) - { - SDL_UpdateRect(surface, 0, 0, 0, 0); - } - lcd_display_redraw=false; -} - -#endif -- cgit v1.2.3