|
@@ -57,15 +57,15 @@ void VideoDriver_SDL::MakeDirty(int left
|
|
|
|
|
|
static void UpdatePalette(uint start, uint count)
|
|
|
{
|
|
|
SDL_Color pal[256];
|
|
|
|
|
|
for (uint i = 0; i != count; i++) {
|
|
|
pal[i].r = _cur_palette[start + i].r;
|
|
|
pal[i].g = _cur_palette[start + i].g;
|
|
|
pal[i].b = _cur_palette[start + i].b;
|
|
|
pal[i].r = _cur_palette.palette[start + i].r;
|
|
|
pal[i].g = _cur_palette.palette[start + i].g;
|
|
|
pal[i].b = _cur_palette.palette[start + i].b;
|
|
|
pal[i].unused = 0;
|
|
|
}
|
|
|
|
|
|
SDL_CALL SDL_SetColors(_sdl_screen, pal, start, count);
|
|
|
}
|
|
|
|
|
@@ -73,31 +73,31 @@ static void InitPalette()
|
|
|
{
|
|
|
UpdatePalette(0, 256);
|
|
|
}
|
|
|
|
|
|
static void CheckPaletteAnim()
|
|
|
{
|
|
|
if (_pal_count_dirty != 0) {
|
|
|
if (_cur_palette.count_dirty != 0) {
|
|
|
Blitter *blitter = BlitterFactoryBase::GetCurrentBlitter();
|
|
|
|
|
|
switch (blitter->UsePaletteAnimation()) {
|
|
|
case Blitter::PALETTE_ANIMATION_VIDEO_BACKEND:
|
|
|
UpdatePalette(_pal_first_dirty, _pal_count_dirty);
|
|
|
UpdatePalette(_cur_palette.first_dirty, _cur_palette.count_dirty);
|
|
|
break;
|
|
|
|
|
|
case Blitter::PALETTE_ANIMATION_BLITTER:
|
|
|
blitter->PaletteAnimate(_pal_first_dirty, _pal_count_dirty);
|
|
|
blitter->PaletteAnimate(_cur_palette.first_dirty, _cur_palette.count_dirty);
|
|
|
break;
|
|
|
|
|
|
case Blitter::PALETTE_ANIMATION_NONE:
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
NOT_REACHED();
|
|
|
}
|
|
|
_pal_count_dirty = 0;
|
|
|
_cur_palette.count_dirty = 0;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
static void DrawSurfaceToScreen()
|
|
|
{
|
|
|
int n = _num_dirty_rects;
|