truelight@7467: /* $Id$ */ truelight@7467: truelight@7467: /** @file 32bpp_anim.hpp */ truelight@7467: truelight@7467: #ifndef BLITTER_32BPP_ANIM_HPP truelight@7467: #define BLITTER_32BPP_ANIM_HPP truelight@7467: truelight@8049: #include "32bpp_optimized.hpp" truelight@7467: #include "factory.hpp" truelight@7467: truelight@8049: class Blitter_32bppAnim : public Blitter_32bppOptimized { truelight@7467: private: truelight@7467: uint8 *anim_buf; ///< In this buffer we keep track of the 8bpp indexes so we can do palette animation truelight@7467: int anim_buf_width; truelight@7467: int anim_buf_height; truelight@7467: truelight@7467: public: truelight@7467: Blitter_32bppAnim() : truelight@7467: anim_buf(NULL), truelight@7467: anim_buf_width(0), truelight@7467: anim_buf_height(0) truelight@7467: {} truelight@7467: truelight@7467: /* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom); truelight@7481: /* virtual */ void DrawColorMappingRect(void *dst, int width, int height, int pal); truelight@7467: /* virtual */ void SetPixel(void *video, int x, int y, uint8 color); truelight@7467: /* virtual */ void SetPixelIfEmpty(void *video, int x, int y, uint8 color); truelight@7467: /* virtual */ void DrawRect(void *video, int width, int height, uint8 color); truelight@7481: /* virtual */ void CopyFromBuffer(void *video, const void *src, int width, int height); truelight@7481: /* virtual */ void CopyToBuffer(const void *video, void *dst, int width, int height); truelight@7467: /* virtual */ void ScrollBuffer(void *video, int &left, int &top, int &width, int &height, int scroll_x, int scroll_y); truelight@7484: /* virtual */ int BufferSize(int width, int height); truelight@7467: /* virtual */ void PaletteAnimate(uint start, uint count); truelight@7467: /* virtual */ Blitter::PaletteAnimation UsePaletteAnimation(); truelight@7485: truelight@7485: /* virtual */ const char *GetName() { return "32bpp-anim"; } truelight@7467: }; truelight@7467: truelight@7467: class FBlitter_32bppAnim: public BlitterFactory { truelight@7467: public: truelight@7467: /* virtual */ const char *GetName() { return "32bpp-anim"; } truelight@7467: /* virtual */ const char *GetDescription() { return "32bpp Animation Blitter (palette animation)"; } truelight@7467: /* virtual */ Blitter *CreateInstance() { return new Blitter_32bppAnim(); } truelight@7467: }; truelight@7467: truelight@7467: #endif /* BLITTER_32BPP_ANIM_HPP */