mirror of https://github.com/mpv-player/mpv
triple buffering interface
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2694 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
4db20c913d
commit
78ab9a9f1d
|
@ -554,7 +554,7 @@ int vbeSetDisplayStart(unsigned long offset, int vsync)
|
|||
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.ebx = vsync ? 0x82 : 2;
|
||||
r.ecx = pixel_num;
|
||||
r.edx = offset/(unsigned long)curr_mode_info.BytesPerScanLine;
|
||||
if(!VBE_LRMI_int(0x10,&r)) return VBE_VM86_FAIL;
|
||||
|
@ -566,6 +566,23 @@ int vbeSetDisplayStart(unsigned long offset, int vsync)
|
|||
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
|
||||
{
|
||||
unsigned short SetWindowCall;
|
||||
|
|
|
@ -209,6 +209,7 @@ extern int vbeSetScanLineLength(unsigned num_pixels);
|
|||
extern int vbeSetScanLineLengthB(unsigned num_bytes);
|
||||
extern int vbeGetDisplayStart(unsigned *pixel_num,unsigned *scan_line);
|
||||
extern int vbeSetDisplayStart(unsigned long offset, int vsync);
|
||||
extern int vbeSetScheduledDisplayStart(unsigned long offset, int vsync);
|
||||
/*
|
||||
Func 0x08-0x09:
|
||||
Support of palette currently is not implemented.
|
||||
|
|
Loading…
Reference in New Issue