# HG changeset patch # User pontscho # Date 1034803923 0 # Node ID cdb43addad4c7a494050c3774d9df3d4cef0f57b # Parent d676c2a86b9e3e1ceb06ac1715104d1d42993a87 -fixed-vo support diff -r d676c2a86b9e -r cdb43addad4c libvo/vo_gl2.c --- a/libvo/vo_gl2.c Wed Oct 16 21:04:19 2002 +0000 +++ b/libvo/vo_gl2.c Wed Oct 16 21:32:03 2002 +0000 @@ -669,13 +669,9 @@ 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 @@ 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 @@ 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);