sdl plugin :

  - Quantic start in fullscreen fixed.
parent 90820464
...@@ -85,6 +85,7 @@ int vout_SDLCreate( vout_thread_t *p_vout, char *psz_display, ...@@ -85,6 +85,7 @@ int vout_SDLCreate( vout_thread_t *p_vout, char *psz_display,
p_vout->p_sys->p_display = NULL; p_vout->p_sys->p_display = NULL;
p_vout->p_sys->p_overlay = NULL; p_vout->p_sys->p_overlay = NULL;
p_vout->p_sys->b_must_acquire = 0;
/* Initialize library */ /* Initialize library */
if( SDL_Init(SDL_INIT_VIDEO) < 0 ) if( SDL_Init(SDL_INIT_VIDEO) < 0 )
...@@ -95,14 +96,6 @@ int vout_SDLCreate( vout_thread_t *p_vout, char *psz_display, ...@@ -95,14 +96,6 @@ int vout_SDLCreate( vout_thread_t *p_vout, char *psz_display,
return( 1 ); return( 1 );
} }
if( SDLOpenDisplay(p_vout) )
{
intf_ErrMsg( "error: can't initialize SDL library: %s\n",
SDL_GetError() );
free( p_vout->p_sys );
return( 1 );
}
/* Force the software yuv even if it is not used */ /* Force the software yuv even if it is not used */
/* If we don't do this, p_vout is not correctly initialized /* If we don't do this, p_vout is not correctly initialized
and it's impossible to switch between soft/hard yuv */ and it's impossible to switch between soft/hard yuv */
...@@ -111,13 +104,24 @@ int vout_SDLCreate( vout_thread_t *p_vout, char *psz_display, ...@@ -111,13 +104,24 @@ int vout_SDLCreate( vout_thread_t *p_vout, char *psz_display,
if(psz_display != NULL && strcmp(psz_display,"fullscreen")==0) if(psz_display != NULL && strcmp(psz_display,"fullscreen")==0)
{ {
p_vout->p_sys->b_fullscreen = 1; p_vout->p_sys->b_fullscreen = 1;
} else { }
else
{
p_vout->p_sys->b_fullscreen = 0; p_vout->p_sys->b_fullscreen = 0;
} }
p_vout->p_sys->b_reopen_display = 1; p_vout->p_sys->b_reopen_display = 1;
if( SDLOpenDisplay(p_vout) )
{
intf_ErrMsg( "error: can't initialize SDL library: %s\n",
SDL_GetError() );
free( p_vout->p_sys );
return( 1 );
}
return( 0 ); return( 0 );
} }
/***************************************************************************** /*****************************************************************************
* vout_SDLInit: initialize SDL video thread output method * vout_SDLInit: initialize SDL video thread output method
...@@ -186,8 +190,8 @@ int vout_SDLManage( vout_thread_t *p_vout ) ...@@ -186,8 +190,8 @@ int vout_SDLManage( vout_thread_t *p_vout )
if( SDLOpenDisplay(p_vout) ) if( SDLOpenDisplay(p_vout) )
{ {
intf_ErrMsg( "error: can't open DISPLAY default display\n" ); intf_ErrMsg( "error: can't open DISPLAY default display\n" );
return( 1 ); return( 1 );
} }
p_vout->p_sys->b_reopen_display = 0; p_vout->p_sys->b_reopen_display = 0;
} }
...@@ -292,7 +296,7 @@ static int SDLOpenDisplay( vout_thread_t *p_vout ) ...@@ -292,7 +296,7 @@ static int SDLOpenDisplay( vout_thread_t *p_vout )
p_vout->p_sys->p_display = SDL_SetVideoMode(p_vout->i_width, p_vout->p_sys->p_display = SDL_SetVideoMode(p_vout->i_width,
p_vout->i_height, p_vout->i_height,
0, 0,
SDL_ANYFORMAT | SDL_HWSURFACE | SDL_DOUBLEBUF ); SDL_ANYFORMAT | SDL_HWSURFACE | SDL_DOUBLEBUF );
SDL_ShowCursor( 1 ); SDL_ShowCursor( 1 );
} }
...@@ -301,24 +305,24 @@ static int SDLOpenDisplay( vout_thread_t *p_vout ) ...@@ -301,24 +305,24 @@ static int SDLOpenDisplay( vout_thread_t *p_vout )
intf_ErrMsg( "error: can't open DISPLAY default display\n" ); intf_ErrMsg( "error: can't open DISPLAY default display\n" );
return( 1 ); return( 1 );
} }
p_vout->p_sys->p_overlay = NULL; SDL_LockSurface(p_vout->p_sys->p_display);
SDL_WM_SetCaption( VOUT_TITLE , VOUT_TITLE ); SDL_WM_SetCaption( VOUT_TITLE , VOUT_TITLE );
SDL_EventState(SDL_KEYUP , SDL_IGNORE); /* ignore keys up */ SDL_EventState(SDL_KEYUP , SDL_IGNORE); /* ignore keys up */
/* Check buffers properties */ /* Check buffers properties */
p_vout->p_sys->b_must_acquire = 1; /* always acquire */ p_vout->p_sys->b_must_acquire = 1; /* always acquire */
p_vout->p_sys->p_buffer[ 0 ] = p_vout->p_sys->p_buffer[ 0 ] =
p_vout->p_sys->p_display->pixels; p_vout->p_sys->p_display->pixels;
SDL_Flip(p_vout->p_sys->p_display); SDL_Flip(p_vout->p_sys->p_display);
p_vout->p_sys->p_buffer[ 1 ] = p_vout->p_sys->p_buffer[ 1 ] =
p_vout->p_sys->p_display->pixels; p_vout->p_sys->p_display->pixels;
SDL_Flip(p_vout->p_sys->p_display); SDL_Flip(p_vout->p_sys->p_display);
/* Set graphic context colors */ /* Set graphic context colors */
/* /*
col_fg.r = col_fg.g = col_fg.b = -1; col_fg.r = col_fg.g = col_fg.b = -1;
col_bg.r = col_bg.g = col_bg.b = 0; col_bg.r = col_bg.g = col_bg.b = 0;
if( ggiSetGCForeground(p_vout->p_sys->p_display, if( ggiSetGCForeground(p_vout->p_sys->p_display,
ggiMapColor(p_vout->p_sys->p_display,&col_fg)) || ggiMapColor(p_vout->p_sys->p_display,&col_fg)) ||
...@@ -346,7 +350,7 @@ static int SDLOpenDisplay( vout_thread_t *p_vout ) ...@@ -346,7 +350,7 @@ static int SDLOpenDisplay( vout_thread_t *p_vout )
p_vout->i_height = p_vout->p_sys->p_display->h; p_vout->i_height = p_vout->p_sys->p_display->h;
p_vout->i_bytes_per_line = p_vout->p_sys->p_display->format->BytesPerPixel * p_vout->i_bytes_per_line = p_vout->p_sys->p_display->format->BytesPerPixel *
p_vout->p_sys->p_display->w ; p_vout->p_sys->p_display->w ;
p_vout->i_screen_depth = p_vout->p_sys->p_display->format->BitsPerPixel; p_vout->i_screen_depth = p_vout->p_sys->p_display->format->BitsPerPixel;
p_vout->i_bytes_per_pixel = p_vout->p_sys->p_display->format->BytesPerPixel; p_vout->i_bytes_per_pixel = p_vout->p_sys->p_display->format->BytesPerPixel;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment