diff -r 8c5ef1825831 -r 356d856462b6 src/blitter/base.hpp --- a/src/blitter/base.hpp Tue Jun 19 12:19:31 2007 +0000 +++ b/src/blitter/base.hpp Tue Jun 19 15:04:08 2007 +0000 @@ -31,6 +31,12 @@ int pitch; ///< The pitch of the destination buffer }; + enum PaletteAnimation { + PALETTE_ANIMATION_NONE, ///< No palette animation + PALETTE_ANIMATION_VIDEO_BACKEND, ///< Palette animation should be done by video backend (8bpp only!) + PALETTE_ANIMATION_BLITTER, ///< The blitter takes care of the palette animation + }; + typedef void *AllocatorProc(size_t size); /** @@ -158,6 +164,20 @@ */ virtual int BufferSize(int width, int height) = 0; + /** + * Called when the 8bpp palette is changed; you should redraw all pixels on the screen that + * are equal to the 8bpp palette indexes 'start' to 'start + count'. + * @param start The start index in the 8bpp palette. + * @param count The amount of indexes that are (possible) changed. + */ + virtual void PaletteAnimate(uint start, uint count) = 0; + + /** + * Check if the blitter uses palette animation at all. + * @return True if it uses palette animation. + */ + virtual Blitter::PaletteAnimation UsePaletteAnimation() = 0; + virtual ~Blitter() { } };