10 #ifndef BLITTER_NULL_HPP
11 #define BLITTER_NULL_HPP
22 void *
MoveTo(
void *,
int,
int)
override {
return nullptr; };
23 void SetPixel(
void *,
int,
int, uint8_t)
override {};
24 void DrawRect(
void *,
int,
int, uint8_t)
override {};
25 void DrawLine(
void *,
int,
int,
int,
int,
int,
int, uint8_t,
int,
int)
override {};
29 void ScrollBuffer(
void *,
int &,
int &,
int &,
int &,
int,
int)
override {};
34 std::string_view
GetName()
override {
return "null"; }
BlitterMode
The modes of blitting we can do.
The base factory, keeping track of all blitters.
BlitterFactory(const char *name, const char *description, bool usable=true)
Construct the blitter, and register it.
Blitter that does nothing.
void DrawColourMappingRect(void *, int, int, PaletteID) override
Draw a colourtable to the screen.
Sprite * Encode(const SpriteLoader::SpriteCollection &sprite, SpriteAllocator &allocator) override
Convert a sprite from the loader to our own format.
void * MoveTo(void *, int, int) override
Move the destination pointer the requested amount x and y, keeping in mind any pitch and bpp of the r...
std::string_view GetName() override
Get the name of the blitter, the same as the Factory-instance returns.
void SetPixel(void *, int, int, uint8_t) override
Draw a pixel with a given colour on the video-buffer.
size_t BufferSize(uint, uint) override
Calculate how much memory there is needed for an image of this size in the video-buffer.
void PaletteAnimate(const Palette &) override
Called when the 8bpp palette is changed; you should redraw all pixels on the screen that are equal to...
uint8_t GetScreenDepth() override
Get the screen depth this blitter works for.
void ScrollBuffer(void *, int &, int &, int &, int &, int, int) override
Scroll the videobuffer some 'x' and 'y' value.
void DrawRect(void *, int, int, uint8_t) override
Make a single horizontal line in a single colour on the video-buffer.
void DrawLine(void *, int, int, int, int, int, int, uint8_t, int, int) override
Draw a line with a given colour.
void CopyToBuffer(const void *, void *, int, int) override
Copy from the screen to a buffer.
Blitter::PaletteAnimation UsePaletteAnimation() override
Check if the blitter uses palette animation at all.
void CopyImageToBuffer(const void *, void *, int, int, int) override
Copy from the screen to a buffer in a palette format for 8bpp and RGBA format for 32bpp.
void Draw(Blitter::BlitterParams *, BlitterMode, ZoomLevel) override
Draw an image to the screen, given an amount of params defined above.
void CopyFromBuffer(void *, const void *, int, int) override
Copy from a buffer to the screen.
How all blitters should look like.
PaletteAnimation
Types of palette animation.
@ PALETTE_ANIMATION_NONE
No palette animation.
Factory for the blitter that does nothing.
Blitter * CreateInstance() override
Create an instance of this Blitter-class.
Interface for something that can allocate memory for a sprite.
std::array< Sprite, ZOOM_LVL_END > SpriteCollection
Type defining a collection of sprites, one for each zoom level.
Factory to 'query' all available blitters.
uint32_t PaletteID
The number of the palette.
Parameters related to blitting.
Information about the currently used palette.
Data structure describing a sprite.
ZoomLevel
All zoom levels we know.