OpenTTD Source 20241224-master-gee860a5c8e
Blitter_32bppSimple Class Reference

The most trivial 32 bpp blitter (without palette animation). More...

#include <32bpp_simple.hpp>

Inheritance diagram for Blitter_32bppSimple:
Blitter_32bppBase Blitter SpriteEncoder Blitter_32bppOptimized Blitter_32bppAnim Blitter_40bppAnim

Data Structures

struct  Pixel
 

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.
 
void DrawColourMappingRect (void *dst, int width, int height, PaletteID pal) override
 Draw a colourtable to the screen.
 
SpriteEncode (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_32bppBase
uint8_t GetScreenDepth () override
 Get the screen depth this blitter works for.
 
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...
 
- Static Public Member Functions inherited from Blitter_32bppBase
static Colour LookupColourInPalette (uint index)
 Look up the colour in the current palette.
 
static Colour ComposeColourRGBANoCheck (uint r, uint g, uint b, uint a, Colour current)
 Compose a colour based on RGBA values and the current pixel value.
 
static Colour ComposeColourRGBA (uint r, uint g, uint b, uint a, Colour current)
 Compose a colour based on RGBA values and the current pixel value.
 
static Colour ComposeColourPANoCheck (Colour colour, uint a, Colour current)
 Compose a colour based on Pixel value, alpha value, and the current pixel value.
 
static Colour ComposeColourPA (Colour colour, uint a, Colour current)
 Compose a colour based on Pixel value, alpha value, and the current pixel value.
 
static Colour MakeTransparent (Colour colour, uint nom, uint denom=256)
 Make a pixel looks like it is transparent.
 
static uint8_t MakeDark (uint8_t r, uint8_t g, uint8_t b)
 Make a colour dark grey, for specialized 32bpp remapping.
 
static Colour MakeDark (Colour colour)
 Make a colour dark grey, for specialized 32bpp remapping.
 
static Colour MakeGrey (Colour colour)
 Make a colour grey - based.
 
static Colour ReallyAdjustBrightness (Colour colour, uint8_t brightness)
 
static Colour AdjustBrightness (Colour colour, uint8_t brightness)
 
static uint8_t GetColourBrightness (Colour colour)
 
- Static Public Attributes inherited from Blitter_32bppBase
static const int DEFAULT_BRIGHTNESS = 128
 

Detailed Description

The most trivial 32 bpp blitter (without palette animation).

Definition at line 17 of file 32bpp_simple.hpp.

Member Function Documentation

◆ Draw()

◆ DrawColourMappingRect()

void Blitter_32bppSimple::DrawColourMappingRect ( void *  dst,
int  width,
int  height,
PaletteID  pal 
)
overridevirtual

Draw a colourtable to the screen.

This is: the colour of the screen is read and is looked-up in the palette to match a new colour, which then is put on the screen again.

Parameters
dstthe destination pointer (video-buffer).
widththe width of the buffer.
heightthe height of the buffer.
palthe palette to use.

Implements Blitter.

Reimplemented in Blitter_40bppAnim.

Definition at line 90 of file 32bpp_simple.cpp.

References Debug, Blitter_32bppBase::MakeGrey(), Blitter_32bppBase::MakeTransparent(), PALETTE_NEWSPAPER, and PALETTE_TO_TRANSPARENT.

Referenced by Blitter_32bppAnim::DrawColourMappingRect(), and Blitter_40bppAnim::DrawColourMappingRect().

◆ Encode()

◆ GetName()

std::string_view Blitter_32bppSimple::GetName ( )
inlineoverridevirtual

Get the name of the blitter, the same as the Factory-instance returns.

Implements Blitter.

Reimplemented in Blitter_40bppAnim.

Definition at line 31 of file 32bpp_simple.hpp.


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