Blitter: Null blitter always requires no zoom levels

This commit is contained in:
Jonathan G Rennison
2023-08-22 23:10:52 +01:00
parent c4e8b919f8
commit 7e5a87dd46
3 changed files with 13 additions and 0 deletions

View File

@@ -18,6 +18,7 @@ public:
Blitter_Null()
{
this->SetScreenDepth(0);
this->SetNoSpriteDataRequired(true);
}
void Draw(Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom) override {};

View File

@@ -605,6 +605,7 @@ static void *ReadSprite(const SpriteCache *sc, SpriteID id, SpriteType sprite_ty
} else {
zoom_levels = UINT8_MAX;
}
if (encoder->NoSpriteDataRequired()) zoom_levels = 0;
SpriteFile &file = *sc->file;
size_t file_pos = sc->file_pos;

View File

@@ -84,6 +84,7 @@ public:
class SpriteEncoder {
bool supports_missing_zoom_levels = false;
bool supports_32bpp = false;
bool no_data_required = false;
protected:
inline void SetSupportsMissingZoomLevels(bool supported)
@@ -96,6 +97,11 @@ protected:
this->supports_32bpp = supported;
}
inline void SetNoSpriteDataRequired(bool not_required)
{
this->no_data_required = not_required;
}
public:
virtual ~SpriteEncoder() = default;
@@ -105,6 +111,11 @@ public:
return this->supports_missing_zoom_levels;
}
inline bool NoSpriteDataRequired() const
{
return this->no_data_required;
}
/**
* Can the sprite encoder make use of RGBA sprites?
*/