From: Matthias R. <mri...@in...> - 2008-10-19 15:01:30
|
# HG changeset patch # User Matthias Ringwald <mri...@in...> # Date 1224428134 -7200 # Node ID 15453fe24c4bd590d017d9cddd213e716eb947be # Parent c00be186074eb83b7a2a9174941c311b79ca4933 Pass native HWND through xine to SDL To place SDL output inside an existing window, the SDL_WINDOWID environement variable has to be set. This was done by the SDL video out pluging if HAVE_X11 was defined, but not for WIN32, where it works as well. diff -r c00be186074e -r 15453fe24c4b src/video_out/video_out_sdl.c --- a/src/video_out/video_out_sdl.c Thu Oct 16 00:15:12 2008 +0200 +++ b/src/video_out/video_out_sdl.c Sun Oct 19 16:55:34 2008 +0200 @@ -469,9 +469,11 @@ sdl_driver_t *this; const SDL_VideoInfo *vidInfo; -#ifdef HAVE_X11 +#if defined(HAVE_X11) || defined(WIN32) static char SDL_windowhack[32]; x11_visual_t *visual = (x11_visual_t *) visual_gen; +#endif +#ifdef HAVE_X11 XWindowAttributes window_attributes; #endif @@ -502,12 +504,16 @@ _x_vo_scale_init( &this->sc, 0, 0, config); this->sc.frame_output_cb = visual->frame_output_cb; this->sc.user_data = visual->user_data; - - /* set SDL to use our existing X11 window */ - sprintf(SDL_windowhack,"SDL_WINDOWID=0x%x", (uint32_t) this- >drawable ); - putenv(SDL_windowhack); #else _x_vo_scale_init( &this->sc, 0, 0, config ); +#endif + +#if defined(HAVE_X11) || defined(WIN32) + /* set SDL to use our existing X11/win32 window */ + if (visual->d){ + sprintf(SDL_windowhack,"SDL_WINDOWID=0x%x", (uint32_t) visual->d); + putenv(SDL_windowhack); + } #endif if ((SDL_Init (SDL_INIT_VIDEO)) < 0) { |