[Mplayer-cvslog] CVS: main/linux vbelib.c,1.14,1.15

Nick Kurshev nick at mplayer.dev.hu
Sun Nov 4 17:21:00 CET 2001


Update of /cvsroot/mplayer/main/linux
In directory mplayer:/var/tmp.root/cvs-serv22165/main/linux

Modified Files:
	vbelib.c 
Log Message:
Double buffering support

Index: vbelib.c
===================================================================
RCS file: /cvsroot/mplayer/main/linux/vbelib.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- vbelib.c	2 Nov 2001 17:34:17 -0000	1.14
+++ vbelib.c	4 Nov 2001 16:20:58 -0000	1.15
@@ -539,25 +539,29 @@
 	"pushl	%%ebx\n"
 	"movl	%1, %%ebx\n"
 	::"a"(0x4f07),"S"(vsync ? 0x80 : 0),
-	  "c"(offset & 0xffff),"d"((offset>>16)&0xffff):"memory");
+	  "c"((offset>>2) & 0xffff),"d"((offset>>18)&0xffff):"memory");
     (*vbe_pm_info.SetDisplayStart)();
     __asm __volatile("popl	%%ebx":::"memory");
     retval = VBE_OK;
   }
   else
   {
+#if 0
+    /* Something wrong here */
     struct LRMI_regs r;
     unsigned long pixel_num;
     memset(&r,0,sizeof(struct LRMI_regs));
-    r.eax = 0x4f07;
-    r.ebx = vsync ? 0x80 : 0;
     pixel_num = offset%(unsigned long)curr_mode_info.BytesPerScanLine;
     if(pixel_num*(unsigned long)curr_mode_info.BytesPerScanLine!=offset) pixel_num++;
+    r.eax = 0x4f07;
+    r.ebx = vsync ? 0x80 : 0;
     r.ecx = pixel_num;
     r.edx = offset/(unsigned long)curr_mode_info.BytesPerScanLine;
     if(!VBE_LRMI_int(0x10,&r)) return VBE_VM86_FAIL;
     retval = r.eax & 0xffff;
     if(retval == 0x4f) retval = VBE_OK;
+#endif
+    retval = VBE_BROKEN_BIOS;
   }
   return retval;
 }




More information about the MPlayer-cvslog mailing list