diff options
author | truelight <truelight@openttd.org> | 2007-06-19 17:43:30 +0000 |
---|---|---|
committer | truelight <truelight@openttd.org> | 2007-06-19 17:43:30 +0000 |
commit | b2bd361dae164cdbd625c01c6c9cabc3f83a3059 (patch) | |
tree | dc45787baa08b706d06ecf3be57af91ccd4dcfb0 /src/blitter/32bpp_anim.hpp | |
parent | 2ad0d708cc9aeb55bbde1becae6a631e2d23e604 (diff) | |
download | openttd-b2bd361dae164cdbd625c01c6c9cabc3f83a3059.tar.xz |
(svn r10227) -Add: added 32bpp-anim blitter, a 32bpp blitter that does palette animation (at the cost of an animation-buffer to keep track of the 'm'-channel of all sprites)
Diffstat (limited to 'src/blitter/32bpp_anim.hpp')
-rw-r--r-- | src/blitter/32bpp_anim.hpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/blitter/32bpp_anim.hpp b/src/blitter/32bpp_anim.hpp new file mode 100644 index 000000000..6f9e2da48 --- /dev/null +++ b/src/blitter/32bpp_anim.hpp @@ -0,0 +1,40 @@ +/* $Id$ */ + +/** @file 32bpp_anim.hpp */ + +#ifndef BLITTER_32BPP_ANIM_HPP +#define BLITTER_32BPP_ANIM_HPP + +#include "32bpp_simple.hpp" +#include "factory.hpp" + +class Blitter_32bppAnim : public Blitter_32bppSimple { +private: + uint8 *anim_buf; ///< In this buffer we keep track of the 8bpp indexes so we can do palette animation + int anim_buf_width; + int anim_buf_height; + +public: + Blitter_32bppAnim() : + anim_buf(NULL), + anim_buf_width(0), + anim_buf_height(0) + {} + + /* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom); + /* virtual */ void SetPixel(void *video, int x, int y, uint8 color); + /* virtual */ void SetPixelIfEmpty(void *video, int x, int y, uint8 color); + /* virtual */ void DrawRect(void *video, int width, int height, uint8 color); + /* virtual */ void ScrollBuffer(void *video, int &left, int &top, int &width, int &height, int scroll_x, int scroll_y); + /* virtual */ void PaletteAnimate(uint start, uint count); + /* virtual */ Blitter::PaletteAnimation UsePaletteAnimation(); +}; + +class FBlitter_32bppAnim: public BlitterFactory<FBlitter_32bppAnim> { +public: + /* virtual */ const char *GetName() { return "32bpp-anim"; } + /* virtual */ const char *GetDescription() { return "32bpp Animation Blitter (palette animation)"; } + /* virtual */ Blitter *CreateInstance() { return new Blitter_32bppAnim(); } +}; + +#endif /* BLITTER_32BPP_ANIM_HPP */ |