mirror of
https://github.com/mpv-player/mpv
synced 2024-10-14 11:54:36 +02:00
support -wid
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15749 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
62e993bd96
commit
fd0aa2708e
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user