summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authorpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-10-16 21:32:03 +0000
committerpontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-10-16 21:32:03 +0000
commit210f7955fbb02723a60864cc38a4436528b544d9 (patch)
tree0f1cd03be0b0ed132a901d6760d3cdb02f5efade /libvo
parent367860560cbf004bde44b3886407b8c21c7cdac0 (diff)
downloadmpv-210f7955fbb02723a60864cc38a4436528b544d9.tar.bz2
mpv-210f7955fbb02723a60864cc38a4436528b544d9.tar.xz
-fixed-vo support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7764 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/vo_gl2.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/libvo/vo_gl2.c b/libvo/vo_gl2.c
index 1f52096d1c..5a2b155a3a 100644
--- a/libvo/vo_gl2.c
+++ b/libvo/vo_gl2.c
@@ -669,13 +669,9 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
xswa.colormap = XCreateColormap(mDisplay, mRootWin, vinfo->visual, AllocNone);
xswamask = CWBackPixel | CWBorderPixel | CWColormap;
- vo_window = XCreateWindow(mDisplay, RootWindow(mDisplay,mScreen),
- hint.x, hint.y, hint.width, hint.height, 4, vinfo->depth,CopyFromParent,vinfo->visual,xswamask,&xswa);
-
- vo_x11_classhint( mDisplay,vo_window,"gl2" );
- vo_hidecursor(mDisplay,vo_window);
-
- wsGLXContext=glXCreateContext( mDisplay,vinfo,NULL,True );
+ if ( vo_window == None )
+ {
+ vo_window = XCreateWindow(mDisplay, RootWindow(mDisplay,mScreen), hint.x, hint.y, hint.width, hint.height, 4, vinfo->depth,CopyFromParent,vinfo->visual,xswamask,&xswa);
if ( flags&0x01 ) vo_x11_decoration( mDisplay,vo_window,0 );
@@ -686,7 +682,6 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
XSetStandardProperties(mDisplay, vo_window, hello, hello, None, NULL, 0, &hint);
/* Map window. */
-
XMapWindow(mDisplay, vo_window);
#ifdef HAVE_XINERAMA
vo_x11_xinerama_move(mDisplay,vo_window);
@@ -702,7 +697,17 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
XSelectInput(mDisplay, vo_window, NoEventMask);
- glXMakeCurrent( mDisplay,vo_window,wsGLXContext );
+ }
+ else if ( !(flags&1) ) XMoveResizeWindow( mDisplay,vo_window,hint.x,hint.y,hint.width,hint.height );
+
+ vo_x11_classhint( mDisplay,vo_window,"gl2" );
+ vo_hidecursor(mDisplay,vo_window);
+
+ if ( vo_config_count ) glXDestroyContext( mDisplay,wsGLXContext );
+
+ wsGLXContext=glXCreateContext( mDisplay,vinfo,NULL,True );
+
+ glXMakeCurrent( mDisplay,vo_window,wsGLXContext );
XFlush(mDisplay);
XSync(mDisplay, False);