OpenTTD
|
The optimised 32 bpp blitter (without palette animation). More...
#include <32bpp_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) |
Draws a sprite to a (screen) buffer. | |
Sprite * | Encode (const SpriteLoader::Sprite *sprite, AllocatorProc *allocator) |
Convert a sprite from the loader to our own format. | |
const char * | GetName () |
Get the name of the blitter, the same as the Factory-instance returns. | |
template<BlitterMode mode> | |
void | Draw (const Blitter::BlitterParams *bp, ZoomLevel zoom) |
Draws a sprite to a (screen) buffer. | |
![]() | |
void | DrawColourMappingRect (void *dst, int width, int height, PaletteID pal) |
Draw a colourtable to the screen. | |
![]() | |
uint8 | GetScreenDepth () |
Get the screen depth this blitter works for. | |
void * | MoveTo (void *video, int x, int y) |
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 colour) |
Draw a pixel with a given colour on the video-buffer. | |
void | DrawRect (void *video, int width, int height, uint8 colour) |
Make a single horizontal line in a single colour on the video-buffer. | |
void | CopyFromBuffer (void *video, const void *src, int width, int height) |
Copy from a buffer to the screen. | |
void | CopyToBuffer (const void *video, void *dst, int width, int height) |
Copy from the screen to a buffer. | |
void | CopyImageToBuffer (const void *video, void *dst, int width, int height, int dst_pitch) |
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) |
Scroll the videobuffer some 'x' and 'y' value. | |
int | BufferSize (int width, int height) |
Calculate how much memory there is needed for an image of this size in the video-buffer. | |
void | PaletteAnimate (const Palette &palette) |
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 () |
Check if the blitter uses palette animation at all. | |
int | GetBytesPerPixel () |
Get how many bytes are needed to store a pixel. | |
![]() | |
virtual void | DrawLine (void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour, int width, int dash=0) |
Draw a line with a given colour. | |
virtual void | PostResize () |
Post resize event. |
Additional Inherited Members | |
![]() | |
enum | PaletteAnimation { PALETTE_ANIMATION_NONE, PALETTE_ANIMATION_VIDEO_BACKEND, PALETTE_ANIMATION_BLITTER } |
Types of palette animation. More... | |
![]() | |
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 | MakeDark (uint8 r, uint8 g, uint8 b) |
Make a colour dark grey, for specialized 32bpp remapping. | |
static Colour | MakeGrey (Colour colour) |
Make a colour grey - based. | |
static Colour | AdjustBrightness (Colour colour, uint8 brightness) |
![]() | |
static const int | DEFAULT_BRIGHTNESS = 128 |
The optimised 32 bpp blitter (without palette animation).
Definition at line 18 of file 32bpp_optimized.hpp.
|
virtual |
Draws a sprite to a (screen) buffer.
Calls adequate templated function.
bp | further blitting parameters |
mode | blitter mode |
zoom | zoom level at which we are drawing |
Reimplemented from Blitter_32bppSimple.
Reimplemented in Blitter_32bppAnim.
Definition at line 245 of file 32bpp_optimized.cpp.
References BM_BLACK_REMAP, BM_COLOUR_REMAP, BM_CRASH_REMAP, BM_NORMAL, and BM_TRANSPARENT.
|
inline |
Draws a sprite to a (screen) buffer.
It is templated to allow faster operation.
mode | blitter mode |
bp | further blitting parameters |
zoom | zoom level at which we are drawing |
Reimplemented in Blitter_32bppAnim.
Definition at line 30 of file 32bpp_optimized.cpp.
References Colour::a, BM_BLACK_REMAP, BM_COLOUR_REMAP, BM_CRASH_REMAP, BM_TRANSPARENT, Blitter_32bppBase::ComposeColourPANoCheck(), Blitter_32bppBase::ComposeColourRGBA(), Blitter_32bppBase::ComposeColourRGBANoCheck(), Blitter_32bppOptimized::SpriteData::data, Colour::data, Blitter::BlitterParams::dst, GB(), Blitter::BlitterParams::height, Blitter::BlitterParams::left, Blitter_32bppBase::LookupColourInPalette(), Blitter_32bppBase::MakeDark(), Blitter_32bppBase::MakeTransparent(), Blitter_32bppOptimized::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.