X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fsdl%2Fmain.c;h=86e5198ac9c343ddedc4ac5506baf724fda5c87f;hb=ca4cf08917d2c51d7a98c4cea6dae71c0ae7225d;hp=8d60d1281c8dfd7897047445f4c10d2f146eadff;hpb=3fe0918c7a62a8e8a3ff169b108c74a1211e9003;p=eradicate diff --git a/src/sdl/main.c b/src/sdl/main.c index 8d60d12..86e5198 100644 --- a/src/sdl/main.c +++ b/src/sdl/main.c @@ -27,6 +27,7 @@ int main(int argc, char **argv) { int s; char *env; + void *fb_buf; if((env = getenv("FBSCALE")) && (s = atoi(env))) { fbscale = s; @@ -35,14 +36,15 @@ int main(int argc, char **argv) xsz = FB_WIDTH * fbscale; ysz = FB_HEIGHT * fbscale; - fb_width = xsz; - fb_height = ysz; + fb_width = FB_WIDTH; + fb_height = FB_HEIGHT; - /* allocate 1 extra row as a guard band, until we fucking fix the rasterizer */ - if(!(fb_pixels = malloc(FB_WIDTH * (FB_HEIGHT + 1) * FB_BPP / CHAR_BIT))) { + fb_size = FB_WIDTH * FB_HEIGHT * FB_BPP / 8; + if(!(fb_buf = malloc(fb_size + FB_WIDTH * 4))) { fprintf(stderr, "failed to allocate virtual framebuffer\n"); return 1; } + fb_pixels = (uint16_t*)((char*)fb_buf + FB_WIDTH * 2); SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_NOPARACHUTE); if(!(fbsurf = SDL_SetVideoMode(xsz, ysz, FB_BPP, sdl_flags))) {