summaryrefslogtreecommitdiffstats
path: root/linux
diff options
context:
space:
mode:
authornick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-04 18:06:31 +0000
committernick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-04 18:06:31 +0000
commit78ab9a9f1dc36d4bffbb88e3fadac1700f3865fa (patch)
treea8894f632a90977d0059eb0b80f54115e0515d67 /linux
parent4db20c913deefb4129d6edc00144b7fad0db5741 (diff)
downloadmpv-78ab9a9f1dc36d4bffbb88e3fadac1700f3865fa.tar.bz2
mpv-78ab9a9f1dc36d4bffbb88e3fadac1700f3865fa.tar.xz
triple buffering interface
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2694 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'linux')
-rw-r--r--linux/vbelib.c19
-rw-r--r--linux/vbelib.h1
2 files changed, 19 insertions, 1 deletions
diff --git a/linux/vbelib.c b/linux/vbelib.c
index 9f177cd111..1600a53749 100644
--- a/linux/vbelib.c
+++ b/linux/vbelib.c
@@ -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;
diff --git a/linux/vbelib.h b/linux/vbelib.h
index 2e45475d3e..957c2fb550 100644
--- a/linux/vbelib.h
+++ b/linux/vbelib.h
@@ -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.