src/blitter/base.hpp
changeset 6960 356d856462b6
parent 6951 b24e0f108ede
child 6985 d50d59dca7c1
equal deleted inserted replaced
6959:8c5ef1825831 6960:356d856462b6
    27 		int sprite_height;       ///< Real height of the sprite
    27 		int sprite_height;       ///< Real height of the sprite
    28 		int left, top;           ///< The offset in the 'dst' in pixels to start drawing
    28 		int left, top;           ///< The offset in the 'dst' in pixels to start drawing
    29 
    29 
    30 		void *dst;               ///< Destination buffer
    30 		void *dst;               ///< Destination buffer
    31 		int pitch;               ///< The pitch of the destination buffer
    31 		int pitch;               ///< The pitch of the destination buffer
       
    32 	};
       
    33 
       
    34 	enum PaletteAnimation {
       
    35 		PALETTE_ANIMATION_NONE,           ///< No palette animation
       
    36 		PALETTE_ANIMATION_VIDEO_BACKEND,  ///< Palette animation should be done by video backend (8bpp only!)
       
    37 		PALETTE_ANIMATION_BLITTER,        ///< The blitter takes care of the palette animation
    32 	};
    38 	};
    33 
    39 
    34 	typedef void *AllocatorProc(size_t size);
    40 	typedef void *AllocatorProc(size_t size);
    35 
    41 
    36 	/**
    42 	/**
   156 	 * @param height The height of the buffer-to-be.
   162 	 * @param height The height of the buffer-to-be.
   157 	 * @return The size needed for the buffer.
   163 	 * @return The size needed for the buffer.
   158 	 */
   164 	 */
   159 	virtual int BufferSize(int width, int height) = 0;
   165 	virtual int BufferSize(int width, int height) = 0;
   160 
   166 
       
   167 	/**
       
   168 	 * Called when the 8bpp palette is changed; you should redraw all pixels on the screen that
       
   169 	 *  are equal to the 8bpp palette indexes 'start' to 'start + count'.
       
   170 	 * @param start The start index in the 8bpp palette.
       
   171 	 * @param count The amount of indexes that are (possible) changed.
       
   172 	 */
       
   173 	virtual void PaletteAnimate(uint start, uint count) = 0;
       
   174 
       
   175 	/**
       
   176 	 * Check if the blitter uses palette animation at all.
       
   177 	 * @return True if it uses palette animation.
       
   178 	 */
       
   179 	virtual Blitter::PaletteAnimation UsePaletteAnimation() = 0;
       
   180 
   161 	virtual ~Blitter() { }
   181 	virtual ~Blitter() { }
   162 };
   182 };
   163 
   183 
   164 #endif /* BLITTER_BASE_HPP */
   184 #endif /* BLITTER_BASE_HPP */