diff libvo/vo_gl.c @ 15748:f75ba7f7b7b2

support -wid
author reimar
date Sat, 18 Jun 2005 18:32:29 +0000
parents e040252b8370
children f9e53883dfd2
line wrap: on
line diff
--- a/libvo/vo_gl.c	Fri Jun 17 16:45:24 2005 +0000
+++ b/libvo/vo_gl.c	Sat Jun 18 18:32:29 2005 +0000
@@ -72,6 +72,11 @@
 
 static void resize(int x,int y){
   mp_msg(MSGT_VO, MSGL_V, "[gl] Resize: %dx%d\n",x,y);
+  if (WinID >= 0) {
+    int top = 0, left = 0, w = x, h = y;
+    geometry(&top, &left, &w, &h, vo_screenwidth, vo_screenheight);
+    glViewport(top, left, w, h);
+  } else
   glViewport( 0, 0, x, y );
 
   glMatrixMode(GL_PROJECTION);
@@ -175,11 +180,15 @@
     vo_dwidth = d_width;
     vo_dheight= d_height;
     guiGetEvent(guiSetShVideo, 0);
-    setGlWindow(&gl_vinfo, &gl_context, vo_window);
-    initGl(vo_dwidth, vo_dheight);
-    return 0;
+    goto glconfig;
   }
 #endif
+  if (WinID >= 0) {
+    Window win_tmp;
+    int int_tmp;
+    vo_window = WinID ? (Window)WinID : mRootWin;
+    goto glconfig;
+  }
   if ( vo_window == None ) {
 	unsigned int fg, bg;
 	XSizeHints hint;
@@ -246,6 +255,8 @@
   vo_x11_nofs_sizepos(vo_dx, vo_dy, d_width, d_height);
   if (vo_fs ^ (flags & VOFLAG_FULLSCREEN))
     vo_x11_fullscreen();
+
+glconfig:
   setGlWindow(&gl_vinfo, &gl_context, vo_window);
   initGl(vo_dwidth, vo_dheight);