Codechange: use _cur_palette the same in all the drivers
It was a bit of a mixed bag. With this change, gfx.cpp is in control who accesses _cur_palette from the video-drivers.
This commit is contained in:
committed by
Patric Stout
parent
1ed7afc0a8
commit
74186998a2
@@ -43,6 +43,7 @@ static BITMAP *_allegro_screen;
|
||||
#define MAX_DIRTY_RECTS 100
|
||||
static PointDimension _dirty_rects[MAX_DIRTY_RECTS];
|
||||
static int _num_dirty_rects;
|
||||
static Palette _local_palette; ///< Current palette to use for drawing.
|
||||
|
||||
void VideoDriver_Allegro::MakeDirty(int left, int top, int width, int height)
|
||||
{
|
||||
@@ -80,9 +81,9 @@ static void UpdatePalette(uint start, uint count)
|
||||
|
||||
uint end = start + count;
|
||||
for (uint i = start; i != end; i++) {
|
||||
pal[i].r = _cur_palette.palette[i].r / 4;
|
||||
pal[i].g = _cur_palette.palette[i].g / 4;
|
||||
pal[i].b = _cur_palette.palette[i].b / 4;
|
||||
pal[i].r = _local_palette.palette[i].r / 4;
|
||||
pal[i].g = _local_palette.palette[i].g / 4;
|
||||
pal[i].b = _local_palette.palette[i].b / 4;
|
||||
pal[i].filler = 0;
|
||||
}
|
||||
|
||||
@@ -96,25 +97,24 @@ static void InitPalette()
|
||||
|
||||
void VideoDriver_Allegro::CheckPaletteAnim()
|
||||
{
|
||||
if (_cur_palette.count_dirty != 0) {
|
||||
Blitter *blitter = BlitterFactory::GetCurrentBlitter();
|
||||
if (!CopyPalette(_local_palette)) return;
|
||||
|
||||
switch (blitter->UsePaletteAnimation()) {
|
||||
case Blitter::PALETTE_ANIMATION_VIDEO_BACKEND:
|
||||
UpdatePalette(_cur_palette.first_dirty, _cur_palette.count_dirty);
|
||||
break;
|
||||
Blitter *blitter = BlitterFactory::GetCurrentBlitter();
|
||||
|
||||
case Blitter::PALETTE_ANIMATION_BLITTER:
|
||||
blitter->PaletteAnimate(_cur_palette);
|
||||
break;
|
||||
switch (blitter->UsePaletteAnimation()) {
|
||||
case Blitter::PALETTE_ANIMATION_VIDEO_BACKEND:
|
||||
UpdatePalette(_local_palette.first_dirty, _local_palette.count_dirty);
|
||||
break;
|
||||
|
||||
case Blitter::PALETTE_ANIMATION_NONE:
|
||||
break;
|
||||
case Blitter::PALETTE_ANIMATION_BLITTER:
|
||||
blitter->PaletteAnimate(_local_palette);
|
||||
break;
|
||||
|
||||
default:
|
||||
NOT_REACHED();
|
||||
}
|
||||
_cur_palette.count_dirty = 0;
|
||||
case Blitter::PALETTE_ANIMATION_NONE:
|
||||
break;
|
||||
|
||||
default:
|
||||
NOT_REACHED();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user