Sprite cache: Allow caching only required subset of sprite zoom levels
Enable for blitters based on 32bpp_optimized or SSE
This commit is contained in:
@@ -75,17 +75,30 @@ public:
|
||||
* @param control_flags Control flags, see SpriteCacheCtrlFlags.
|
||||
* @return Bit mask of the zoom levels successfully loaded or 0 if no sprite could be loaded.
|
||||
*/
|
||||
virtual uint8 LoadSprite(SpriteLoader::Sprite *sprite, SpriteFile &file, size_t file_pos, SpriteType sprite_type, bool load_32bpp, uint count, byte control_flags) = 0;
|
||||
virtual uint8 LoadSprite(SpriteLoader::Sprite *sprite, SpriteFile &file, size_t file_pos, SpriteType sprite_type, bool load_32bpp, uint count, uint16 control_flags, uint8 zoom_levels) = 0;
|
||||
|
||||
virtual ~SpriteLoader() = default;
|
||||
};
|
||||
|
||||
/** Interface for something that can encode a sprite. */
|
||||
class SpriteEncoder {
|
||||
bool supports_missing_zoom_levels = false;
|
||||
|
||||
protected:
|
||||
inline void SetSupportsMissingZoomLevels(bool supported)
|
||||
{
|
||||
this->supports_missing_zoom_levels = supported;
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
virtual ~SpriteEncoder() = default;
|
||||
|
||||
inline bool SupportsMissingZoomLevels() const
|
||||
{
|
||||
return this->supports_missing_zoom_levels;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can the sprite encoder make use of RGBA sprites?
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user