Mercurial > mplayer.hg
diff libvo/vo_svga.c @ 292:2c0bb83b77b3
Some bugfix.
author | se7encode |
---|---|
date | Fri, 06 Apr 2001 10:25:47 +0000 |
parents | f40a55208b76 |
children | f7e65132e296 |
line wrap: on
line diff
--- a/libvo/vo_svga.c Fri Apr 06 01:18:59 2001 +0000 +++ b/libvo/vo_svga.c Fri Apr 06 10:25:47 2001 +0000 @@ -1,5 +1,5 @@ /* - Video driver for SVGAlib - alpha version + Video driver for SVGAlib - alpha, slow by Zoltan Mark Vician <se7en@sch.bme.hu> Code started: Mon Apr 1 23:25:47 2000 */ @@ -75,12 +75,14 @@ static uint32_t init(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format) { -static uint8_t bpp; + static uint8_t bpp; + if (!checked) { checksupportedmodes(); // Looking for available video modes } pformat = format; - if(format==IMGFMT_YV12) bpp=32; else bpp=format&255; + if (format == IMGFMT_YV12) bpp = 32; + else bpp = format & 255; if (d_width > 800) switch (bpp) { case 32: vid_mode = 36; break; @@ -125,10 +127,17 @@ orig_w = width; orig_h = height; if (fullscreen && (WIDTH != orig_w)) { - maxw = WIDTH; - scaling = maxw / (orig_w*1.0); - maxh = (uint32_t) (orig_h * scaling); - scalebuf = malloc(maxw * maxh * BYTESPERPIXEL); + if (((orig_w*1.0) / orig_h) < (4.0/3)) { + maxh = HEIGHT; + scaling = maxh / (orig_h * 1.0); + maxw = (uint32_t) (orig_w * scaling); + scalebuf = malloc(maxw * maxh * BYTESPERPIXEL); + } else { + maxw = WIDTH; + scaling = maxw / (orig_w * 1.0); + maxh = (uint32_t) (orig_h * scaling); + scalebuf = malloc(maxw * maxh * BYTESPERPIXEL); + } } else { maxw = orig_w; maxh = orig_h; @@ -142,8 +151,8 @@ yuvbuf = malloc(maxw * maxh * BYTESPERPIXEL); } - printf("SVGAlib resolution: %dx%d %dbpp - ",WIDTH,HEIGHT,bpp); - if (maxw != orig_w || maxh != orig_h) printf("Video scaled to: %dx%d\n",maxw,maxh); + printf("SVGAlib resolution: %dx%d %dbpp - ", WIDTH, HEIGHT, bpp); + if (maxw != orig_w || maxh != orig_h) printf("Video scaled to: %dx%d %f.2\n",maxw,maxh,scaling); else printf("No video scaling\n"); return (0); @@ -225,8 +234,13 @@ static void flip_page(void) { - gl_fillbox(0, 0, WIDTH, y_pos, 0); - gl_fillbox(0, HEIGHT - y_pos, WIDTH, y_pos, 0); + if (y_pos) { + gl_fillbox(0, 0, WIDTH, y_pos, 0); + gl_fillbox(0, HEIGHT - y_pos, WIDTH, y_pos, 0); + } else { + gl_fillbox(0, 0, x_pos, HEIGHT, 0); + gl_fillbox(WIDTH - x_pos, 0, x_pos, HEIGHT, 0); + } vo_draw_text(WIDTH, HEIGHT, draw_alpha); gl_copyscreen(screen); }