OpenTTD Source 20241224-master-gee860a5c8e
|
8bpp blitter optimised for speed. More...
#include <8bpp_optimized.hpp>
Data Structures | |
struct | SpriteData |
Data stored about a (single) sprite. More... | |
Public Member Functions | |
void | Draw (Blitter::BlitterParams *bp, BlitterMode mode, ZoomLevel zoom) override |
Draw an image to the screen, given an amount of params defined above. | |
Sprite * | Encode (const SpriteLoader::SpriteCollection &sprite, SpriteAllocator &allocator) override |
Convert a sprite from the loader to our own format. | |
std::string_view | GetName () override |
Get the name of the blitter, the same as the Factory-instance returns. | |
Public Member Functions inherited from Blitter_8bppBase | |
uint8_t | GetScreenDepth () override |
Get the screen depth this blitter works for. | |
void | DrawColourMappingRect (void *dst, int width, int height, PaletteID pal) override |
Draw a colourtable to the screen. | |
void * | MoveTo (void *video, int x, int y) override |
Move the destination pointer the requested amount x and y, keeping in mind any pitch and bpp of the renderer. | |
void | SetPixel (void *video, int x, int y, uint8_t colour) override |
Draw a pixel with a given colour on the video-buffer. | |
void | DrawLine (void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8_t colour, int width, int dash) override |
Draw a line with a given colour. | |
void | DrawRect (void *video, int width, int height, uint8_t colour) override |
Make a single horizontal line in a single colour on the video-buffer. | |
void | CopyFromBuffer (void *video, const void *src, int width, int height) override |
Copy from a buffer to the screen. | |
void | CopyToBuffer (const void *video, void *dst, int width, int height) override |
Copy from the screen to a buffer. | |
void | CopyImageToBuffer (const void *video, void *dst, int width, int height, int dst_pitch) override |
Copy from the screen to a buffer in a palette format for 8bpp and RGBA format for 32bpp. | |
void | ScrollBuffer (void *video, int &left, int &top, int &width, int &height, int scroll_x, int scroll_y) override |
Scroll the videobuffer some 'x' and 'y' value. | |
size_t | BufferSize (uint width, uint height) override |
Calculate how much memory there is needed for an image of this size in the video-buffer. | |
void | PaletteAnimate (const Palette &palette) override |
Called when the 8bpp palette is changed; you should redraw all pixels on the screen that are equal to the 8bpp palette indexes 'first_dirty' to 'first_dirty + count_dirty'. | |
Blitter::PaletteAnimation | UsePaletteAnimation () override |
Check if the blitter uses palette animation at all. | |
Public Member Functions inherited from Blitter | |
bool | Is32BppSupported () override |
Can the sprite encoder make use of RGBA sprites? | |
virtual bool | NeedsAnimationBuffer () |
Does this blitter require a separate animation buffer from the video backend? | |
virtual void | PostResize () |
Post resize event. | |
template<typename SetPixelT > | |
void | DrawLineGeneric (int x, int y, int x2, int y2, int screen_width, int screen_height, int width, int dash, SetPixelT set_pixel) |
Public Member Functions inherited from SpriteEncoder | |
virtual uint | GetSpriteAlignment () |
Get the value which the height and width on a sprite have to be aligned by. | |
Additional Inherited Members | |
Public Types inherited from Blitter | |
enum | PaletteAnimation { PALETTE_ANIMATION_NONE , PALETTE_ANIMATION_VIDEO_BACKEND , PALETTE_ANIMATION_BLITTER } |
Types of palette animation. More... | |
8bpp blitter optimised for speed.
Definition at line 17 of file 8bpp_optimized.hpp.
|
overridevirtual |
Draw an image to the screen, given an amount of params defined above.
Implements Blitter.
Definition at line 22 of file 8bpp_optimized.cpp.
References BM_BLACK_REMAP, BM_COLOUR_REMAP, BM_CRASH_REMAP, BM_TRANSPARENT, BM_TRANSPARENT_REMAP, Blitter_8bppOptimized::SpriteData::data, Blitter::BlitterParams::dst, Blitter::BlitterParams::height, Blitter::BlitterParams::left, MemCpyT(), MemSetT(), Blitter_8bppOptimized::SpriteData::offset, Blitter::BlitterParams::pitch, Blitter::BlitterParams::remap, Blitter::BlitterParams::skip_left, Blitter::BlitterParams::skip_top, Blitter::BlitterParams::sprite, Blitter::BlitterParams::top, and Blitter::BlitterParams::width.
|
overridevirtual |
Convert a sprite from the loader to our own format.
Implements SpriteEncoder.
Definition at line 123 of file 8bpp_optimized.cpp.
References _settings_client, ReusableBuffer< T >::Allocate(), SpriteAllocator::Allocate(), Blitter_8bppOptimized::SpriteData::data, Sprite::data, Font, ClientSettings::gui, Sprite::height, SpriteLoader::CommonPixel::m, Blitter_8bppOptimized::SpriteData::offset, Sprite::width, Sprite::x_offs, Sprite::y_offs, ZOOM_LVL_MAX, ZOOM_LVL_MIN, GUISettings::zoom_max, and GUISettings::zoom_min.
|
inlineoverridevirtual |
Get the name of the blitter, the same as the Factory-instance returns.
Implements Blitter.
Definition at line 28 of file 8bpp_optimized.hpp.