triple buffering interface

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2694 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
nick 2001-11-04 18:06:31 +00:00
parent 4db20c913d
commit 78ab9a9f1d
2 changed files with 19 additions and 1 deletions

View File

@ -554,7 +554,7 @@ int vbeSetDisplayStart(unsigned long offset, int vsync)
pixel_num = offset%(unsigned long)curr_mode_info.BytesPerScanLine; pixel_num = offset%(unsigned long)curr_mode_info.BytesPerScanLine;
if(pixel_num*(unsigned long)curr_mode_info.BytesPerScanLine!=offset) pixel_num++; if(pixel_num*(unsigned long)curr_mode_info.BytesPerScanLine!=offset) pixel_num++;
r.eax = 0x4f07; r.eax = 0x4f07;
r.ebx = vsync ? 0x80 : 0; r.ebx = vsync ? 0x82 : 2;
r.ecx = pixel_num; r.ecx = pixel_num;
r.edx = offset/(unsigned long)curr_mode_info.BytesPerScanLine; r.edx = offset/(unsigned long)curr_mode_info.BytesPerScanLine;
if(!VBE_LRMI_int(0x10,&r)) return VBE_VM86_FAIL; if(!VBE_LRMI_int(0x10,&r)) return VBE_VM86_FAIL;
@ -566,6 +566,23 @@ int vbeSetDisplayStart(unsigned long offset, int vsync)
return retval; return retval;
} }
int vbeSetScheduledDisplayStart(unsigned long offset, int vsync)
{
int retval;
struct LRMI_regs r;
unsigned long pixel_num;
memset(&r,0,sizeof(struct LRMI_regs));
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 ? 0x82 : 2;
r.ecx = offset;
if(!VBE_LRMI_int(0x10,&r)) return VBE_VM86_FAIL;
retval = r.eax & 0xffff;
if(retval == 0x4f) retval = VBE_OK;
return retval;
}
struct realVesaProtModeInterface struct realVesaProtModeInterface
{ {
unsigned short SetWindowCall; unsigned short SetWindowCall;

View File

@ -209,6 +209,7 @@ extern int vbeSetScanLineLength(unsigned num_pixels);
extern int vbeSetScanLineLengthB(unsigned num_bytes); extern int vbeSetScanLineLengthB(unsigned num_bytes);
extern int vbeGetDisplayStart(unsigned *pixel_num,unsigned *scan_line); extern int vbeGetDisplayStart(unsigned *pixel_num,unsigned *scan_line);
extern int vbeSetDisplayStart(unsigned long offset, int vsync); extern int vbeSetDisplayStart(unsigned long offset, int vsync);
extern int vbeSetScheduledDisplayStart(unsigned long offset, int vsync);
/* /*
Func 0x08-0x09: Func 0x08-0x09:
Support of palette currently is not implemented. Support of palette currently is not implemented.