support -wid

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15749 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
reimar 2005-06-18 18:32:29 +00:00
parent 62e993bd96
commit fd0aa2708e
3 changed files with 27 additions and 5 deletions

View File

@ -10,7 +10,7 @@ MPlayer (1.0)
Driver:
* JACK audio output rewritten without bio2jack
* OpenGL video output modules support -geometry option
* OpenGL video output modules support -geometry and -wid options
Decoders:
* Indeo2 (RT21) support via lavc

View File

@ -72,6 +72,11 @@ static unsigned int slice_height = 1;
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 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
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 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
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);

View File

@ -577,6 +577,13 @@ static void resize(int *x,int *y){
glViewport( (vo_screenwidth-*x)/2, (vo_screenheight-*y)/2, *x, *y);
} else {
//aspect(x, y, A_NOZOOM);
#ifndef GL_WIN32
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
#endif
glViewport( 0, 0, *x, *y );
}
@ -686,6 +693,10 @@ static int choose_glx_visual(Display *dpy, int scr, XVisualInfo *res_vi)
}
static int config_glx(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t flags, char *title, uint32_t format) {
if (WinID >= 0) {
vo_window = WinID ? (Window)WinID : mRootWin;
return 0;
}
if ( vo_window == None )
{
XSizeHints hint;
@ -890,7 +901,7 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
draw_alpha_fnc=draw_alpha_32; break;
}
if (initGl(d_width, d_height) == -1)
if (initGl(vo_dwidth, vo_dheight) == -1)
return -1;
#ifndef GL_WIN32
if (vo_ontop) vo_x11_setlayer(mDisplay,vo_window, vo_ontop);