Commit cbb9cfbf authored by Pierre Baillet's avatar Pierre Baillet

.Added 8bits palette SDL support.

.Tried to add it to stable, failed, probably because of the initialisation codes which are differents...
parent ef05e776
...@@ -127,6 +127,8 @@ static void vout_GetPlugin( p_vout_thread_t p_vout ) ...@@ -127,6 +127,8 @@ static void vout_GetPlugin( p_vout_thread_t p_vout )
p_vout->p_sys_destroy = vout_SDLDestroy; p_vout->p_sys_destroy = vout_SDLDestroy;
p_vout->p_sys_manage = vout_SDLManage; p_vout->p_sys_manage = vout_SDLManage;
p_vout->p_sys_display = vout_SDLDisplay; p_vout->p_sys_display = vout_SDLDisplay;
p_vout->p_set_palette = vout_SDLSetPalette;
} }
static void intf_GetPlugin( p_intf_thread_t p_intf ) static void intf_GetPlugin( p_intf_thread_t p_intf )
......
...@@ -186,6 +186,36 @@ int vout_SDLManage( vout_thread_t *p_vout ) ...@@ -186,6 +186,36 @@ int vout_SDLManage( vout_thread_t *p_vout )
return( 0 ); return( 0 );
} }
/*****************************************************************************
* vout_SDLSetPalette: sets an 8 bpp palette
*****************************************************************************
* This function sets the palette given as an argument. It does not return
* anything, but could later send information on which colors it was unable
* to set.
*****************************************************************************/
void vout_SDLSetPalette( p_vout_thread_t p_vout, u16 *red, u16 *green, u16 *blue, u16 *transp)
{
/* Create a display surface with a grayscale palette */
SDL_Color colors[256];
int i;
intf_ErrMsgImm( "palettin'\n");
/* Fill colors with color information */
for(i=0;i<256;i++){
colors[i].r=red[i]>>8;
colors[i].g=green[i]>>8;
colors[i].b=blue[i]>>8;
}
/* Set palette */
if(SDL_SetColors(p_vout->p_sys->p_display, colors, 0, 256) == 0)
intf_ErrMsgImm( "error\n");
}
/***************************************************************************** /*****************************************************************************
* vout_SDLDisplay: displays previously rendered output * vout_SDLDisplay: displays previously rendered output
...@@ -271,7 +301,7 @@ static int SDLOpenDisplay( vout_thread_t *p_vout ) ...@@ -271,7 +301,7 @@ static int SDLOpenDisplay( vout_thread_t *p_vout )
*/ */
/* init flags and cursor */ /* init flags and cursor */
flags = SDL_ANYFORMAT; flags = SDL_ANYFORMAT | SDL_HWPALETTE;
if( p_vout->p_sys->b_fullscreen ) if( p_vout->p_sys->b_fullscreen )
flags |= SDL_FULLSCREEN; flags |= SDL_FULLSCREEN;
......
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