diff options
Diffstat (limited to 'uisimulator/sdl/lcd-sdl.c')
-rw-r--r-- | uisimulator/sdl/lcd-sdl.c | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/uisimulator/sdl/lcd-sdl.c b/uisimulator/sdl/lcd-sdl.c deleted file mode 100644 index f1ffe8a76a..0000000000 --- a/uisimulator/sdl/lcd-sdl.c +++ /dev/null | |||
@@ -1,112 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2006 Dan Everton | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | |||
22 | #include "lcd-sdl.h" | ||
23 | #include "uisdl.h" | ||
24 | #include "system.h" /* for MIN() and MAX() */ | ||
25 | |||
26 | int display_zoom = 1; | ||
27 | |||
28 | void sdl_update_rect(SDL_Surface *surface, int x_start, int y_start, int width, | ||
29 | int height, int max_x, int max_y, | ||
30 | unsigned long (*getpixel)(int, int)) | ||
31 | { | ||
32 | int x, y; | ||
33 | int xmax, ymax; | ||
34 | SDL_Rect dest; | ||
35 | |||
36 | ymax = y_start + height; | ||
37 | xmax = x_start + width; | ||
38 | |||
39 | if(xmax > max_x) | ||
40 | xmax = max_x; | ||
41 | if(ymax >= max_y) | ||
42 | ymax = max_y; | ||
43 | |||
44 | SDL_LockSurface(surface); | ||
45 | |||
46 | dest.w = display_zoom; | ||
47 | dest.h = display_zoom; | ||
48 | |||
49 | for (x = x_start; x < xmax; x++) { | ||
50 | dest.x = x * display_zoom; | ||
51 | |||
52 | #ifdef HAVE_LCD_SPLIT | ||
53 | for (y = y_start; y < MIN(ymax, LCD_SPLIT_POS); y++) { | ||
54 | dest.y = y * display_zoom; | ||
55 | |||
56 | SDL_FillRect(surface, &dest, (Uint32)(getpixel(x, y) | 0x80)); | ||
57 | } | ||
58 | for (y = MAX(y_start, LCD_SPLIT_POS); y < ymax; y++) { | ||
59 | dest.y = (y + LCD_SPLIT_LINES) * display_zoom ; | ||
60 | |||
61 | SDL_FillRect(surface, &dest, (Uint32)getpixel(x, y)); | ||
62 | } | ||
63 | #else | ||
64 | for (y = y_start; y < ymax; y++) { | ||
65 | dest.y = y * display_zoom; | ||
66 | |||
67 | SDL_FillRect(surface, &dest, (Uint32)getpixel(x, y)); | ||
68 | } | ||
69 | #endif | ||
70 | } | ||
71 | |||
72 | SDL_UnlockSurface(surface); | ||
73 | } | ||
74 | |||
75 | void sdl_gui_update(SDL_Surface *surface, int x_start, int y_start, int width, | ||
76 | int height, int max_x, int max_y, int ui_x, int ui_y) | ||
77 | { | ||
78 | if (x_start + width > max_x) | ||
79 | width = max_x - x_start; | ||
80 | if (y_start + height > max_y) | ||
81 | height = max_y - y_start; | ||
82 | |||
83 | SDL_Rect src = {x_start * display_zoom, y_start * display_zoom, | ||
84 | width * display_zoom, height * display_zoom}; | ||
85 | SDL_Rect dest= {(ui_x + x_start) * display_zoom, | ||
86 | (ui_y + y_start) * display_zoom, | ||
87 | width * display_zoom, height * display_zoom}; | ||
88 | |||
89 | if (surface->flags & SDL_SRCALPHA) /* alpha needs a black background */ | ||
90 | SDL_FillRect(gui_surface, &dest, 0); | ||
91 | |||
92 | SDL_BlitSurface(surface, &src, gui_surface, &dest); | ||
93 | |||
94 | SDL_Flip(gui_surface); | ||
95 | } | ||
96 | |||
97 | /* set a range of bitmap indices to a gradient from startcolour to endcolour */ | ||
98 | void sdl_set_gradient(SDL_Surface *surface, SDL_Color *start, SDL_Color *end, | ||
99 | int first, int steps) | ||
100 | { | ||
101 | int i; | ||
102 | SDL_Color palette[steps]; | ||
103 | |||
104 | for (i = 0; i < steps; i++) { | ||
105 | palette[i].r = start->r + (end->r - start->r) * i / (steps - 1); | ||
106 | palette[i].g = start->g + (end->g - start->g) * i / (steps - 1); | ||
107 | palette[i].b = start->b + (end->b - start->b) * i / (steps - 1); | ||
108 | } | ||
109 | |||
110 | SDL_SetPalette(surface, SDL_LOGPAL|SDL_PHYSPAL, palette, first, steps); | ||
111 | } | ||
112 | |||