summaryrefslogtreecommitdiff
path: root/framebuffer/fb_frontend_sdl.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2009-03-19 19:24:29 +0000
committerVincent Sanders <vince@netsurf-browser.org>2009-03-19 19:24:29 +0000
commit7b1f478b5a3d31777744ad436e16d59c9ca0a34c (patch)
tree96360a5b2bb781c7fd3c08d4bc7475add30aa315 /framebuffer/fb_frontend_sdl.c
parente2a6087fe3cf85754d3d7509acde48014c957f7f (diff)
downloadnetsurf-7b1f478b5a3d31777744ad436e16d59c9ca0a34c.tar.gz
netsurf-7b1f478b5a3d31777744ad436e16d59c9ca0a34c.tar.bz2
fixup 8bpp plotters
svn path=/trunk/netsurf/; revision=6807
Diffstat (limited to 'framebuffer/fb_frontend_sdl.c')
-rw-r--r--framebuffer/fb_frontend_sdl.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/framebuffer/fb_frontend_sdl.c b/framebuffer/fb_frontend_sdl.c
index 139fbd33f..7c83653ba 100644
--- a/framebuffer/fb_frontend_sdl.c
+++ b/framebuffer/fb_frontend_sdl.c
@@ -43,6 +43,23 @@
static SDL_Surface *sdl_screen;
+static void
+set_palette(framebuffer_t *fb)
+{
+ SDL_Color colors[256];
+ int loop;
+ for(loop=0; loop < 256; loop++){
+ colors[loop].r = loop;
+ colors[loop].g = loop;
+ colors[loop].b = loop;
+ fb->palette[loop] = loop << 16 | loop << 8 | loop;
+ }
+
+ /* Set palette */
+ SDL_SetColors(sdl_screen, colors, 0, 256);
+
+}
+
framebuffer_t *fb_os_init(int argc, char** argv)
{
framebuffer_t *newfb;
@@ -50,6 +67,7 @@ framebuffer_t *fb_os_init(int argc, char** argv)
int fb_height;
int fb_depth;
+
if ((option_window_width != 0) && (option_window_height != 0)) {
fb_width = option_window_width;
fb_height = option_window_height;
@@ -88,6 +106,9 @@ framebuffer_t *fb_os_init(int argc, char** argv)
return NULL;
}
+ if (newfb->bpp == 8)
+ set_palette(newfb);
+
newfb->ptr = sdl_screen->pixels;
newfb->linelen = sdl_screen->pitch;