[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