1.1 --- a/src/drivers/video_x11.c Thu Jan 25 11:46:35 2007 +0000
1.2 +++ b/src/drivers/video_x11.c Sat Jan 27 12:03:53 2007 +0000
1.5 - * $Id: video_x11.c,v 1.10 2007-01-25 11:46:35 nkeynes Exp $
1.6 + * $Id: video_x11.c,v 1.11 2007-01-27 12:03:53 nkeynes Exp $
1.8 * Shared functions for all X11-based display drivers.
1.11 Display *video_x11_display = NULL;
1.12 Screen *video_x11_screen = NULL;
1.13 Window video_x11_window = 0;
1.15 +extern uint32_t video_width, video_height;
1.23 - GLX_DEPTH_SIZE, 16,
1.24 + GLX_DEPTH_SIZE, 24,
1.27 int screen = XScreenNumberOfScreen(video_x11_screen);
1.28 @@ -154,18 +154,24 @@
1.30 GLenum type = colour_formats[frame->colour_format].type;
1.31 GLenum format = colour_formats[frame->colour_format].format;
1.33 + int bpp = colour_formats[frame->colour_format].bpp;
1.35 glDrawBuffer( GL_FRONT );
1.36 - glViewport( 0, 0, frame->hres, frame->vres );
1.37 + glViewport( 0, 0, video_width, video_height );
1.38 glMatrixMode(GL_PROJECTION);
1.40 glOrtho( 0, frame->hres, frame->vres, 0, 0, -65535 );
1.41 glMatrixMode(GL_MODELVIEW);
1.43 glRasterPos2i( 0, 0 );
1.44 - glPixelZoom( 1.0f, -1.0f );
1.45 + glPushClientAttrib( GL_CLIENT_PIXEL_STORE_BIT );
1.46 + float scale = 480.0 / frame->vres;
1.47 + glPixelZoom( 1.0f, -scale );
1.48 + int rowstride = (frame->rowstride / bpp) - frame->hres;
1.49 + glPixelStorei( GL_PACK_ROW_LENGTH, rowstride );
1.50 glDrawPixels( frame->hres, frame->vres, format, type,
1.52 + glPopClientAttrib();