mirror of https://github.com/mpv-player/mpv
some cleanup, gl/gl2 updated to use vo_window
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6096 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
17a2a90da8
commit
e6bcec1c6b
|
@ -52,13 +52,11 @@ static unsigned char *ImageData=NULL;
|
||||||
|
|
||||||
/* X11 related variables */
|
/* X11 related variables */
|
||||||
//static Display *mydisplay;
|
//static Display *mydisplay;
|
||||||
static Window mywindow;
|
//static Window vo_window;
|
||||||
//static GC mygc;
|
//static GC mygc;
|
||||||
//static XImage *myximage;
|
//static XImage *myximage;
|
||||||
//static int depth,mode;
|
//static int depth,mode;
|
||||||
//static XWindowAttributes attribs;
|
//static XWindowAttributes attribs;
|
||||||
static int X_already_started = 0;
|
|
||||||
|
|
||||||
//static int texture_id=1;
|
//static int texture_id=1;
|
||||||
|
|
||||||
static GLXContext wsGLXContext;
|
static GLXContext wsGLXContext;
|
||||||
|
@ -115,20 +113,17 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
|
||||||
image_width = width;
|
image_width = width;
|
||||||
image_format = format;
|
image_format = format;
|
||||||
|
|
||||||
if (X_already_started) return -1;
|
|
||||||
if(!vo_init()) return -1;
|
if(!vo_init()) return -1;
|
||||||
|
|
||||||
aspect_save_orig(width,height);
|
aspect_save_orig(width,height);
|
||||||
aspect_save_prescale(d_width,d_height);
|
aspect_save_prescale(d_width,d_height);
|
||||||
aspect_save_screenres(vo_screenwidth,vo_screenheight);
|
aspect_save_screenres(vo_screenwidth,vo_screenheight);
|
||||||
|
|
||||||
X_already_started++;
|
|
||||||
|
|
||||||
aspect(&d_width,&d_height,A_NOZOOM);
|
aspect(&d_width,&d_height,A_NOZOOM);
|
||||||
#ifdef X11_FULLSCREEN
|
#ifdef X11_FULLSCREEN
|
||||||
if( flags&0x01 ){ // (-fs)
|
// if( flags&0x01 ){ // (-fs)
|
||||||
aspect(&d_width,&d_height,A_ZOOM);
|
// aspect(&d_width,&d_height,A_ZOOM);
|
||||||
}
|
// }
|
||||||
#endif
|
#endif
|
||||||
hint.x = 0;
|
hint.x = 0;
|
||||||
hint.y = 0;
|
hint.y = 0;
|
||||||
|
@ -160,30 +155,31 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
|
||||||
xswamask = CWBackPixel | CWBorderPixel | CWColormap;
|
xswamask = CWBackPixel | CWBorderPixel | CWColormap;
|
||||||
// xswamask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask | CWCursor | CWOverrideRedirect | CWSaveUnder | CWX | CWY | CWWidth | CWHeight;
|
// xswamask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask | CWCursor | CWOverrideRedirect | CWSaveUnder | CWX | CWY | CWWidth | CWHeight;
|
||||||
|
|
||||||
mywindow = XCreateWindow(mDisplay, RootWindow(mDisplay,mScreen),
|
vo_window = XCreateWindow(mDisplay, mRootWin,
|
||||||
hint.x, hint.y, hint.width, hint.height, 4, vinfo->depth,CopyFromParent,vinfo->visual,xswamask,&xswa);
|
hint.x, hint.y, hint.width, hint.height, 4, vinfo->depth,CopyFromParent,vinfo->visual,xswamask,&xswa);
|
||||||
|
|
||||||
vo_x11_classhint( mDisplay,mywindow,"gl" );
|
vo_x11_classhint( mDisplay,vo_window,"gl" );
|
||||||
vo_hidecursor(mDisplay,mywindow);
|
vo_hidecursor(mDisplay,vo_window);
|
||||||
|
|
||||||
wsGLXContext=glXCreateContext( mDisplay,vinfo,NULL,True );
|
wsGLXContext=glXCreateContext( mDisplay,vinfo,NULL,True );
|
||||||
// XStoreName( wsDisplay,wsMyWin,wsSysName );
|
// XStoreName( wsDisplay,wsMyWin,wsSysName );
|
||||||
|
|
||||||
// printf("GLXcontext ok\n");
|
// printf("GLXcontext ok\n");
|
||||||
|
|
||||||
if ( flags&0x01 ) vo_x11_decoration( mDisplay,mywindow,0 );
|
// if ( flags&0x01 ) vo_x11_decoration( mDisplay,vo_window,0 );
|
||||||
|
|
||||||
XSelectInput(mDisplay, mywindow, StructureNotifyMask);
|
XSelectInput(mDisplay, vo_window, StructureNotifyMask);
|
||||||
|
|
||||||
/* Tell other applications about this window */
|
/* Tell other applications about this window */
|
||||||
|
|
||||||
XSetStandardProperties(mDisplay, mywindow, hello, hello, None, NULL, 0, &hint);
|
XSetStandardProperties(mDisplay, vo_window, hello, hello, None, NULL, 0, &hint);
|
||||||
|
|
||||||
/* Map window. */
|
/* Map window. */
|
||||||
|
|
||||||
XMapWindow(mDisplay, mywindow);
|
XMapWindow(mDisplay, vo_window);
|
||||||
|
if ( flags&1 ) vo_x11_fullscreen();
|
||||||
#ifdef HAVE_XINERAMA
|
#ifdef HAVE_XINERAMA
|
||||||
vo_x11_xinerama_move(mDisplay,mywindow);
|
vo_x11_xinerama_move(mDisplay,vo_window);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Wait for map. */
|
/* Wait for map. */
|
||||||
|
@ -191,24 +187,24 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
|
||||||
{
|
{
|
||||||
XNextEvent(mDisplay, &xev);
|
XNextEvent(mDisplay, &xev);
|
||||||
}
|
}
|
||||||
while (xev.type != MapNotify || xev.xmap.event != mywindow);
|
while (xev.type != MapNotify || xev.xmap.event != vo_window);
|
||||||
|
|
||||||
XSelectInput(mDisplay, mywindow, NoEventMask);
|
XSelectInput(mDisplay, vo_window, NoEventMask);
|
||||||
|
|
||||||
glXMakeCurrent( mDisplay,mywindow,wsGLXContext );
|
glXMakeCurrent( mDisplay,vo_window,wsGLXContext );
|
||||||
|
|
||||||
XFlush(mDisplay);
|
XFlush(mDisplay);
|
||||||
XSync(mDisplay, False);
|
XSync(mDisplay, False);
|
||||||
|
|
||||||
// mygc = XCreateGC(mDisplay, mywindow, 0L, &xgcv);
|
// mygc = XCreateGC(mDisplay, vo_window, 0L, &xgcv);
|
||||||
|
|
||||||
// myximage = XGetImage(mDisplay, mywindow, 0, 0,
|
// myximage = XGetImage(mDisplay, vo_window, 0, 0,
|
||||||
// width, image_height, AllPlanes, ZPixmap);
|
// width, image_height, AllPlanes, ZPixmap);
|
||||||
// ImageData = myximage->data;
|
// ImageData = myximage->data;
|
||||||
// bpp = myximage->bits_per_pixel;
|
// bpp = myximage->bits_per_pixel;
|
||||||
|
|
||||||
//XSelectInput(mDisplay, mywindow, StructureNotifyMask); // !!!!
|
//XSelectInput(mDisplay, vo_window, StructureNotifyMask); // !!!!
|
||||||
XSelectInput(mDisplay, mywindow, StructureNotifyMask | KeyPressMask | PointerMotionMask
|
XSelectInput(mDisplay, vo_window, StructureNotifyMask | KeyPressMask | PointerMotionMask
|
||||||
#ifdef HAVE_NEW_INPUT
|
#ifdef HAVE_NEW_INPUT
|
||||||
| ButtonPressMask | ButtonReleaseMask
|
| ButtonPressMask | ButtonReleaseMask
|
||||||
#endif
|
#endif
|
||||||
|
@ -325,8 +321,8 @@ flip_page(void)
|
||||||
|
|
||||||
// glFlush();
|
// glFlush();
|
||||||
glFinish();
|
glFinish();
|
||||||
glXSwapBuffers( mDisplay,mywindow );
|
glXSwapBuffers( mDisplay,vo_window );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//static inline uint32_t draw_slice_x11(uint8_t *src[], uint32_t slice_num)
|
//static inline uint32_t draw_slice_x11(uint8_t *src[], uint32_t slice_num)
|
||||||
|
@ -469,9 +465,9 @@ query_format(uint32_t format)
|
||||||
static void
|
static void
|
||||||
uninit(void)
|
uninit(void)
|
||||||
{
|
{
|
||||||
|
if ( !vo_config_count ) return;
|
||||||
saver_on(mDisplay); // screen saver back on
|
saver_on(mDisplay); // screen saver back on
|
||||||
|
vo_x11_uninit();
|
||||||
vo_x11_uninit(mDisplay, mywindow);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t preinit(const char *arg)
|
static uint32_t preinit(const char *arg)
|
||||||
|
@ -489,6 +485,9 @@ static uint32_t control(uint32_t request, void *data, ...)
|
||||||
switch (request) {
|
switch (request) {
|
||||||
case VOCTRL_QUERY_FORMAT:
|
case VOCTRL_QUERY_FORMAT:
|
||||||
return query_format(*((uint32_t*)data));
|
return query_format(*((uint32_t*)data));
|
||||||
|
case VOCTRL_FULLSCREEN:
|
||||||
|
vo_x11_fullscreen();
|
||||||
|
return VO_TRUE;
|
||||||
}
|
}
|
||||||
return VO_NOTIMPL;
|
return VO_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,8 +56,7 @@ static unsigned char *ImageDataLocal=NULL;
|
||||||
static unsigned char *ImageData=NULL;
|
static unsigned char *ImageData=NULL;
|
||||||
|
|
||||||
/* X11 related variables */
|
/* X11 related variables */
|
||||||
static Window mywindow;
|
//static Window vo_window;
|
||||||
static int X_already_started = 0;
|
|
||||||
|
|
||||||
//static int texture_id=1;
|
//static int texture_id=1;
|
||||||
|
|
||||||
|
@ -623,7 +622,6 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
|
||||||
image_width = width;
|
image_width = width;
|
||||||
image_format = format;
|
image_format = format;
|
||||||
|
|
||||||
if (X_already_started) return -1;
|
|
||||||
if(!vo_init()) return -1;
|
if(!vo_init()) return -1;
|
||||||
|
|
||||||
aspect_save_orig(width,height);
|
aspect_save_orig(width,height);
|
||||||
|
@ -632,8 +630,6 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
|
||||||
|
|
||||||
aspect(&d_width,&d_height,A_NOZOOM);
|
aspect(&d_width,&d_height,A_NOZOOM);
|
||||||
|
|
||||||
X_already_started++;
|
|
||||||
|
|
||||||
if( flags&0x01 )
|
if( flags&0x01 )
|
||||||
{
|
{
|
||||||
isFullscreen = GL_TRUE;
|
isFullscreen = GL_TRUE;
|
||||||
|
@ -673,46 +669,46 @@ config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uin
|
||||||
xswa.colormap = XCreateColormap(mDisplay, mRootWin, vinfo->visual, AllocNone);
|
xswa.colormap = XCreateColormap(mDisplay, mRootWin, vinfo->visual, AllocNone);
|
||||||
xswamask = CWBackPixel | CWBorderPixel | CWColormap;
|
xswamask = CWBackPixel | CWBorderPixel | CWColormap;
|
||||||
|
|
||||||
mywindow = XCreateWindow(mDisplay, RootWindow(mDisplay,mScreen),
|
vo_window = XCreateWindow(mDisplay, RootWindow(mDisplay,mScreen),
|
||||||
hint.x, hint.y, hint.width, hint.height, 4, vinfo->depth,CopyFromParent,vinfo->visual,xswamask,&xswa);
|
hint.x, hint.y, hint.width, hint.height, 4, vinfo->depth,CopyFromParent,vinfo->visual,xswamask,&xswa);
|
||||||
|
|
||||||
vo_x11_classhint( mDisplay,mywindow,"gl2" );
|
vo_x11_classhint( mDisplay,vo_window,"gl2" );
|
||||||
vo_hidecursor(mDisplay,mywindow);
|
vo_hidecursor(mDisplay,vo_window);
|
||||||
|
|
||||||
wsGLXContext=glXCreateContext( mDisplay,vinfo,NULL,True );
|
wsGLXContext=glXCreateContext( mDisplay,vinfo,NULL,True );
|
||||||
|
|
||||||
if ( flags&0x01 ) vo_x11_decoration( mDisplay,mywindow,0 );
|
if ( flags&0x01 ) vo_x11_decoration( mDisplay,vo_window,0 );
|
||||||
|
|
||||||
XSelectInput(mDisplay, mywindow, StructureNotifyMask);
|
XSelectInput(mDisplay, vo_window, StructureNotifyMask);
|
||||||
|
|
||||||
/* Tell other applications about this window */
|
/* Tell other applications about this window */
|
||||||
|
|
||||||
XSetStandardProperties(mDisplay, mywindow, hello, hello, None, NULL, 0, &hint);
|
XSetStandardProperties(mDisplay, vo_window, hello, hello, None, NULL, 0, &hint);
|
||||||
|
|
||||||
/* Map window. */
|
/* Map window. */
|
||||||
|
|
||||||
XMapWindow(mDisplay, mywindow);
|
XMapWindow(mDisplay, vo_window);
|
||||||
#ifdef HAVE_XINERAMA
|
#ifdef HAVE_XINERAMA
|
||||||
vo_x11_xinerama_move(mDisplay,mywindow);
|
vo_x11_xinerama_move(mDisplay,vo_window);
|
||||||
#endif
|
#endif
|
||||||
XClearWindow(mDisplay,mywindow);
|
XClearWindow(mDisplay,vo_window);
|
||||||
|
|
||||||
/* Wait for map. */
|
/* Wait for map. */
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
XNextEvent(mDisplay, &xev);
|
XNextEvent(mDisplay, &xev);
|
||||||
}
|
}
|
||||||
while (xev.type != MapNotify || xev.xmap.event != mywindow);
|
while (xev.type != MapNotify || xev.xmap.event != vo_window);
|
||||||
|
|
||||||
XSelectInput(mDisplay, mywindow, NoEventMask);
|
XSelectInput(mDisplay, vo_window, NoEventMask);
|
||||||
|
|
||||||
glXMakeCurrent( mDisplay,mywindow,wsGLXContext );
|
glXMakeCurrent( mDisplay,vo_window,wsGLXContext );
|
||||||
|
|
||||||
XFlush(mDisplay);
|
XFlush(mDisplay);
|
||||||
XSync(mDisplay, False);
|
XSync(mDisplay, False);
|
||||||
|
|
||||||
//XSelectInput(mDisplay, mywindow, StructureNotifyMask); // !!!!
|
//XSelectInput(mDisplay, vo_window, StructureNotifyMask); // !!!!
|
||||||
XSelectInput(mDisplay, mywindow, StructureNotifyMask | KeyPressMask | PointerMotionMask
|
XSelectInput(mDisplay, vo_window, StructureNotifyMask | KeyPressMask | PointerMotionMask
|
||||||
#ifdef HAVE_NEW_INPUT
|
#ifdef HAVE_NEW_INPUT
|
||||||
| ButtonPressMask | ButtonReleaseMask
|
| ButtonPressMask | ButtonReleaseMask
|
||||||
#endif
|
#endif
|
||||||
|
@ -1009,7 +1005,7 @@ flip_page(void)
|
||||||
|
|
||||||
// glFlush();
|
// glFlush();
|
||||||
glFinish();
|
glFinish();
|
||||||
glXSwapBuffers( mDisplay,mywindow );
|
glXSwapBuffers( mDisplay,vo_window );
|
||||||
|
|
||||||
if(!used_info_done)
|
if(!used_info_done)
|
||||||
{
|
{
|
||||||
|
@ -1096,9 +1092,9 @@ query_format(uint32_t format)
|
||||||
static void
|
static void
|
||||||
uninit(void)
|
uninit(void)
|
||||||
{
|
{
|
||||||
|
if ( !vo_config_count ) return;
|
||||||
saver_on(mDisplay); // screen saver back on
|
saver_on(mDisplay); // screen saver back on
|
||||||
|
vo_x11_uninit();
|
||||||
vo_x11_uninit(mDisplay, mywindow);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t preinit(const char *arg)
|
static uint32_t preinit(const char *arg)
|
||||||
|
|
|
@ -601,7 +601,7 @@ uninit(void)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
zoomFlag=0;
|
zoomFlag=0;
|
||||||
vo_x11_uninit(mDisplay, vo_window);
|
vo_x11_uninit();
|
||||||
|
|
||||||
freeSwsContext(swsContext);
|
freeSwsContext(swsContext);
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,8 +77,6 @@ static XImage * myximage;
|
||||||
|
|
||||||
static uint32_t mDepth, bpp, mode;
|
static uint32_t mDepth, bpp, mode;
|
||||||
static XWindowAttributes attribs;
|
static XWindowAttributes attribs;
|
||||||
static uint32_t X_already_started=0;
|
|
||||||
|
|
||||||
static uint32_t fgColor;
|
static uint32_t fgColor;
|
||||||
|
|
||||||
static uint32_t mvHeight;
|
static uint32_t mvHeight;
|
||||||
|
@ -195,7 +193,6 @@ static uint32_t config( uint32_t width, uint32_t height, uint32_t d_width, uint3
|
||||||
|
|
||||||
unsigned long xswamask;
|
unsigned long xswamask;
|
||||||
|
|
||||||
if ( X_already_started ) return -1;
|
|
||||||
if (!vo_init()) return -1;
|
if (!vo_init()) return -1;
|
||||||
|
|
||||||
width+=width&1;
|
width+=width&1;
|
||||||
|
@ -337,7 +334,7 @@ uninit(void)
|
||||||
inited=0;
|
inited=0;
|
||||||
mga_uninit();
|
mga_uninit();
|
||||||
saver_on(mDisplay);
|
saver_on(mDisplay);
|
||||||
vo_x11_uninit(mDisplay, vo_window);
|
vo_x11_uninit();
|
||||||
printf("vo: uninit!\n");
|
printf("vo: uninit!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -794,7 +794,7 @@ static void uninit(void)
|
||||||
#ifdef HAVE_XF86VM
|
#ifdef HAVE_XF86VM
|
||||||
vo_vm_close(mDisplay);
|
vo_vm_close(mDisplay);
|
||||||
#endif
|
#endif
|
||||||
if(vo_config_count) vo_x11_uninit(mDisplay, vo_window);
|
if(vo_config_count) vo_x11_uninit();
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
@ -804,7 +804,7 @@ static void uninit(void)
|
||||||
#ifdef HAVE_XF86VM
|
#ifdef HAVE_XF86VM
|
||||||
vo_vm_close(mDisplay);
|
vo_vm_close(mDisplay);
|
||||||
#endif
|
#endif
|
||||||
vo_x11_uninit(mDisplay, vo_window);
|
vo_x11_uninit();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,8 +50,6 @@ static vo_info_t vo_info =
|
||||||
#define UNUSED(x) ((void)(x)) /* Removes warning about unused arguments */
|
#define UNUSED(x) ((void)(x)) /* Removes warning about unused arguments */
|
||||||
|
|
||||||
/* X11 related variables */
|
/* X11 related variables */
|
||||||
static int X_already_started = 0;
|
|
||||||
|
|
||||||
/* Colorkey handling */
|
/* Colorkey handling */
|
||||||
static XGCValues mGCV;
|
static XGCValues mGCV;
|
||||||
static uint32_t fgColor;
|
static uint32_t fgColor;
|
||||||
|
@ -72,12 +70,12 @@ static uint32_t image_depth;
|
||||||
static uint32_t window_width, window_height;
|
static uint32_t window_width, window_height;
|
||||||
|
|
||||||
/* used by XGetGeometry & XTranslateCoordinates for moving/resizing window */
|
/* used by XGetGeometry & XTranslateCoordinates for moving/resizing window */
|
||||||
static Window mRoot;
|
|
||||||
static uint32_t drwX, drwY, drwWidth, drwHeight, drwBorderWidth,
|
static uint32_t drwX, drwY, drwWidth, drwHeight, drwBorderWidth,
|
||||||
drwDepth, drwcX, drwcY, dwidth, dheight;
|
drwDepth, drwcX, drwcY, dwidth, dheight;
|
||||||
|
|
||||||
static void set_window(int force_update,const vo_tune_info_t *info)
|
static void set_window(int force_update,const vo_tune_info_t *info)
|
||||||
{
|
{
|
||||||
|
Window mRoot;
|
||||||
if ( WinID )
|
if ( WinID )
|
||||||
{
|
{
|
||||||
XGetGeometry(mDisplay, vo_window, &mRoot, &drwX, &drwY, &drwWidth,
|
XGetGeometry(mDisplay, vo_window, &mRoot, &drwX, &drwY, &drwWidth,
|
||||||
|
@ -417,7 +415,7 @@ static void uninit(void)
|
||||||
vidix_term();
|
vidix_term();
|
||||||
|
|
||||||
saver_on(mDisplay); /* screen saver back on */
|
saver_on(mDisplay); /* screen saver back on */
|
||||||
vo_x11_uninit(mDisplay, vo_window);
|
vo_x11_uninit();
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t preinit(const char *arg)
|
static uint32_t preinit(const char *arg)
|
||||||
|
|
|
@ -171,7 +171,8 @@ static int x11_errorhandler(Display *display, XErrorEvent *event)
|
||||||
event->error_code, event->request_code, event->minor_code);
|
event->error_code, event->request_code, event->minor_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_player("X11 error");
|
abort();
|
||||||
|
//exit_player("X11 error");
|
||||||
#undef MSGLEN
|
#undef MSGLEN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -517,7 +518,7 @@ void vo_x11_classhint( Display * display,Window window,char *name ){
|
||||||
}
|
}
|
||||||
|
|
||||||
Window vo_window = None;
|
Window vo_window = None;
|
||||||
GC vo_gc;
|
GC vo_gc = NULL;
|
||||||
XSizeHints vo_hint;
|
XSizeHints vo_hint;
|
||||||
|
|
||||||
#ifdef HAVE_NEW_GUI
|
#ifdef HAVE_NEW_GUI
|
||||||
|
@ -526,27 +527,29 @@ XSizeHints vo_hint;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int vo_x11_uninit(Display *display, Window window)
|
void vo_x11_uninit()
|
||||||
{
|
{
|
||||||
vo_showcursor( display,window );
|
if(vo_window!=None) vo_showcursor( mDisplay,vo_window );
|
||||||
|
|
||||||
#ifdef HAVE_NEW_GUI
|
#ifdef HAVE_NEW_GUI
|
||||||
/* destroy window only if it's not controlled by GUI */
|
/* destroy window only if it's not controlled by GUI */
|
||||||
if ( !use_gui )
|
if ( !use_gui )
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
XSetBackground( mDisplay,vo_gc,0 );
|
if(vo_gc){
|
||||||
XClearWindow( mDisplay,vo_window );
|
XSetBackground( mDisplay,vo_gc,0 );
|
||||||
|
vo_gc=NULL;
|
||||||
/* and -wid is set */
|
}
|
||||||
if (WinID < 0)
|
if(vo_window!=None){
|
||||||
{
|
XClearWindow( mDisplay,vo_window );
|
||||||
XUnmapWindow( display,window );
|
if (WinID < 0){
|
||||||
XDestroyWindow(display, window);
|
XUnmapWindow( mDisplay,vo_window );
|
||||||
}
|
XDestroyWindow(mDisplay, vo_window);
|
||||||
|
}
|
||||||
|
vo_window=None;
|
||||||
|
}
|
||||||
vo_fs=0;
|
vo_fs=0;
|
||||||
}
|
}
|
||||||
return(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int vo_mouse_timer_const = 30;
|
int vo_mouse_timer_const = 30;
|
||||||
|
@ -562,7 +565,7 @@ int vo_x11_check_events(Display *mydisplay){
|
||||||
// unsigned long vo_KeyTable[512];
|
// unsigned long vo_KeyTable[512];
|
||||||
|
|
||||||
if ( ( vo_mouse_autohide )&&( --vo_mouse_counter == 0 ) ) vo_hidecursor( mydisplay,vo_window );
|
if ( ( vo_mouse_autohide )&&( --vo_mouse_counter == 0 ) ) vo_hidecursor( mydisplay,vo_window );
|
||||||
|
|
||||||
while ( XPending( mydisplay ) )
|
while ( XPending( mydisplay ) )
|
||||||
{
|
{
|
||||||
XNextEvent( mydisplay,&Event );
|
XNextEvent( mydisplay,&Event );
|
||||||
|
@ -573,6 +576,7 @@ int vo_x11_check_events(Display *mydisplay){
|
||||||
if ( vo_window != Event.xany.window ) continue;
|
if ( vo_window != Event.xany.window ) continue;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
// printf("\rEvent.type=%X \n",Event.type);
|
||||||
switch( Event.type )
|
switch( Event.type )
|
||||||
{
|
{
|
||||||
case Expose:
|
case Expose:
|
||||||
|
|
|
@ -34,6 +34,8 @@ extern void vo_x11_classhint( Display * display,Window window,char *name );
|
||||||
extern void vo_x11_sizehint( int x, int y, int width, int height, int max );
|
extern void vo_x11_sizehint( int x, int y, int width, int height, int max );
|
||||||
extern int vo_x11_check_events(Display *mydisplay);
|
extern int vo_x11_check_events(Display *mydisplay);
|
||||||
extern void vo_x11_fullscreen( void );
|
extern void vo_x11_fullscreen( void );
|
||||||
|
extern void vo_x11_uninit();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern Window vo_window;
|
extern Window vo_window;
|
||||||
|
|
Loading…
Reference in New Issue