truelight@7553: /* $Id$ */ truelight@7553: rubidium@9111: /** @file 32bpp_optimized.hpp Optimized 32 bpp blitter. */ truelight@7553: truelight@7553: #ifndef BLITTER_32BPP_OPTIMIZED_HPP truelight@7553: #define BLITTER_32BPP_OPTIMIZED_HPP truelight@7553: truelight@7553: #include "32bpp_simple.hpp" truelight@7553: #include "factory.hpp" truelight@7553: truelight@7553: class Blitter_32bppOptimized : public Blitter_32bppSimple { truelight@7553: public: smatz@9597: struct SpriteData { smatz@9597: uint32 offset[ZOOM_LVL_COUNT][2]; smatz@9597: byte data[VARARRAY_SIZE]; smatz@9597: }; smatz@9597: truelight@7553: /* virtual */ void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom); truelight@7553: /* virtual */ Sprite *Encode(SpriteLoader::Sprite *sprite, Blitter::AllocatorProc *allocator); truelight@7553: truelight@7553: /* virtual */ const char *GetName() { return "32bpp-optimized"; } smatz@9486: smatz@9597: template void Draw(const Blitter::BlitterParams *bp, ZoomLevel zoom); truelight@7553: }; truelight@7553: truelight@7553: class FBlitter_32bppOptimized: public BlitterFactory { truelight@7553: public: truelight@7553: /* virtual */ const char *GetName() { return "32bpp-optimized"; } truelight@7553: /* virtual */ const char *GetDescription() { return "32bpp Optimized Blitter (no palette animation)"; } truelight@7553: /* virtual */ Blitter *CreateInstance() { return new Blitter_32bppOptimized(); } truelight@7553: }; truelight@7553: truelight@7553: #endif /* BLITTER_32BPP_OPTIMIZED_HPP */