OpenTTD Source: Blitter_8bppOptimized Class Reference

OpenTTD Source 15.3

Data Structures | Public Member Functions
Blitter_8bppOptimized Class Referencefinal

8bpp blitter optimised for speed. More...

`#include <8bpp_optimized.hpp>`

Inheritance diagram for Blitter_8bppOptimized:

## 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 (SpriteType sprite_type, 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, PixelColour 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, PixelColour colour, int width, int dash) override
| Draw a line with a given colour.
void | DrawRect (void *video, int width, int height, PixelColour 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 class | PaletteAnimation : uint8_t { None , VideoBackend , Blitter }
| Types of palette animation. More...
Static Public Member Functions inherited from Blitter
template<typename T >
static void | MovePixels (const T *src, T *dst, size_t width, size_t height, ptrdiff_t pitch)

## Detailed Description

8bpp blitter optimised for speed.

Definition at line 17 of file 8bpp_optimized.hpp.

## Member Function Documentation

## ◆ Draw()

void Blitter_8bppOptimized::Draw | ( | Blitter::BlitterParams * | bp,
|  | BlitterMode | mode,
|  | ZoomLevel | zoom
| ) |  |
| overridevirtual

Draw an image to the screen, given an amount of params defined above.

Implements Blitter.

Definition at line 20 of file 8bpp_optimized.cpp.

References BlackRemap, ColourRemap, CrashRemap, Blitter_8bppOptimized::SpriteData::data, Blitter::BlitterParams::dst, Blitter::BlitterParams::height, Blitter::BlitterParams::left, Blitter_8bppOptimized::SpriteData::offset, Blitter::BlitterParams::pitch, Blitter::BlitterParams::remap, Blitter::BlitterParams::skip_left, Blitter::BlitterParams::skip_top, Blitter::BlitterParams::sprite, Blitter::BlitterParams::top, Transparent, TransparentRemap, and Blitter::BlitterParams::width.

## ◆ Encode()

Sprite * Blitter_8bppOptimized::Encode | ( | SpriteType | sprite_type,
|  | const SpriteLoader::SpriteCollection & | sprite,
|  | SpriteAllocator & | allocator
| ) |  |
| overridevirtual

Convert a sprite from the loader to our own format.

Implements SpriteEncoder.

Definition at line 121 of file 8bpp_optimized.cpp.

References _settings_client, SpriteAllocator::Allocate(), Blitter_8bppOptimized::SpriteData::data, Sprite::data, SpriteLoader::Sprite::data, Font, ClientSettings::gui, Sprite::height, SpriteLoader::Sprite::height, SpriteLoader::CommonPixel::m, Max, Min, Blitter_8bppOptimized::SpriteData::offset, Sprite::width, SpriteLoader::Sprite::width, Sprite::x_offs, Sprite::y_offs, ReusableBuffer< T >::ZeroAllocate(), GUISettings::zoom_max, and GUISettings::zoom_min.

## ◆ GetName()

std::string_view Blitter_8bppOptimized::GetName | ( |  | ) |
| 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.

The documentation for this class was generated from the following files:

- src/blitter/8bpp_optimized.hpp
- src/blitter/8bpp_optimized.cpp