changeset 5987:08c552788216

fullscreen toggle for vo_mga
author rfelker
date Sun, 05 May 2002 18:58:42 +0000
parents d34622ebaf45
children de86623c35ef
files libvo/mga_common.c libvo/vo_mga.c
diffstat 2 files changed, 35 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/mga_common.c	Sun May 05 18:46:42 2002 +0000
+++ b/libvo/mga_common.c	Sun May 05 18:58:42 2002 +0000
@@ -233,6 +233,32 @@
   vaa->get_video_eq = mga_get_video_eq;
   vaa->set_video_eq = mga_set_video_eq;
 }
+
+static void mga_fullscreen()
+{
+	uint32_t w,h;
+	if ( !vo_fs ) {
+		vo_fs=VO_TRUE;
+		w=vo_screenwidth; h=vo_screenheight;
+		aspect(&w,&h,A_ZOOM);
+	} else {
+		vo_fs=VO_FALSE;
+		w=vo_dwidth; h=vo_dheight;
+		aspect(&w,&h,A_NOZOOM);
+	}
+	mga_vid_config.dest_width = w;
+	mga_vid_config.dest_height= h;
+	if (vo_screenwidth && vo_screenheight) {
+		mga_vid_config.x_org=(vo_screenwidth-w)/2;
+		mga_vid_config.y_org=(vo_screenheight-h)/2;
+	} else {
+		mga_vid_config.x_org= 0;
+		mga_vid_config.y_org= 0;
+	}
+	if ( ioctl( f,MGA_VID_CONFIG,&mga_vid_config ) )
+		printf( "Error in mga_vid_config ioctl (wrong mga_vid.o version?)" );
+}
+
 static uint32_t control(uint32_t request, void *data, ...)
 {
   switch (request) {
@@ -243,11 +269,13 @@
     return query_format(*((uint32_t*)data));
   case VOCTRL_GET_IMAGE:
     return get_image(data);
+  case VOCTRL_FULLSCREEN:
 #ifdef VO_XMGA
-  case VOCTRL_FULLSCREEN:
     vo_x11_fullscreen();
+#else
+    mga_fullscreen();
+#endif
     return VO_TRUE;
-#endif
   }
   return VO_NOTIMPL;
 }
--- a/libvo/vo_mga.c	Sun May 05 18:46:42 2002 +0000
+++ b/libvo/vo_mga.c	Sun May 05 18:58:42 2002 +0000
@@ -84,10 +84,13 @@
 		aspect_save_prescale(d_width,d_height);
 		aspect_save_screenres(vo_screenwidth,vo_screenheight);
 	
-		if(fullscreen&0x01) /* -fs */
+		if(fullscreen&0x01) { /* -fs */
 			aspect(&d_width,&d_height,A_ZOOM);
-		else
+			vo_fs = VO_TRUE;
+		} else {
 			aspect(&d_width,&d_height,A_NOZOOM);
+			vo_fs = VO_FALSE;
+		}
 		printf("vo_mga aspect(): resized to %dx%d\n",d_width,d_height);
 	}