Base for all 32bpp blitters. More...
#include <32bpp_base.hpp>
Public Member Functions | |
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. | |
Static Public Member Functions | |
static uint32 | ComposeColour (uint a, uint r, uint g, uint b) |
Compose a colour based on RGB values. | |
static uint32 | LookupColourInPalette (uint index) |
Look up the colour in the current palette. | |
static uint32 | ComposeColourRGBANoCheck (uint r, uint g, uint b, uint a, uint32 current) |
Compose a colour based on RGBA values and the current pixel value. | |
static uint32 | ComposeColourRGBA (uint r, uint g, uint b, uint a, uint32 current) |
Compose a colour based on RGBA values and the current pixel value. | |
static uint32 | ComposeColourPANoCheck (uint32 colour, uint a, uint32 current) |
Compose a colour based on Pixel value, alpha value, and the current pixel value. | |
static uint32 | ComposeColourPA (uint32 colour, uint a, uint32 current) |
Compose a colour based on Pixel value, alpha value, and the current pixel value. | |
static uint32 | MakeTransparent (uint32 colour, uint nom, uint denom=256) |
Make a pixel looks like it is transparent. | |
static uint32 | MakeGrey (uint32 colour) |
Make a colour grey - based. | |
static uint32 | AdjustBrightness (uint32 colour, uint8 brightness) |
Static Public Attributes | |
static const int | DEFAULT_BRIGHTNESS = 64 |
Base for all 32bpp blitters.
Definition at line 21 of file 32bpp_base.hpp.
int Blitter_32bppBase::BufferSize | ( | int | width, | |
int | height | |||
) | [virtual] |
Calculate how much memory there is needed for an image of this size in the video-buffer.
width | The width of the buffer-to-be. | |
height | The height of the buffer-to-be. |
Implements Blitter.
Reimplemented in Blitter_32bppAnim.
Definition at line 134 of file 32bpp_base.cpp.
static uint32 Blitter_32bppBase::ComposeColourPA | ( | uint32 | colour, | |
uint | a, | |||
uint32 | current | |||
) | [inline, static] |
Compose a colour based on Pixel value, alpha value, and the current pixel value.
Handles fully transparent and solid pixels in a special (faster) way.
Definition at line 96 of file 32bpp_base.hpp.
References ComposeColourPANoCheck().
Referenced by Blitter_32bppSimple::Draw().
static uint32 Blitter_32bppBase::ComposeColourRGBA | ( | uint | r, | |
uint | g, | |||
uint | b, | |||
uint | a, | |||
uint32 | current | |||
) | [inline, static] |
Compose a colour based on RGBA values and the current pixel value.
Handles fully transparent and solid pixels in a special (faster) way.
Definition at line 72 of file 32bpp_base.hpp.
References ComposeColour(), and ComposeColourRGBANoCheck().
Referenced by Blitter_32bppSimple::Draw().
void Blitter_32bppBase::CopyFromBuffer | ( | void * | video, | |
const void * | src, | |||
int | width, | |||
int | height | |||
) | [virtual] |
Copy from a buffer to the screen.
video | The destionation pointer (video-buffer). | |
src | The buffer from which the data will be read. | |
width | The width of the buffer. | |
height | The height of the buffer. |
Implements Blitter.
Reimplemented in Blitter_32bppAnim.
Definition at line 39 of file 32bpp_base.cpp.
void Blitter_32bppBase::CopyImageToBuffer | ( | const void * | video, | |
void * | dst, | |||
int | width, | |||
int | height, | |||
int | dst_pitch | |||
) | [virtual] |
Copy from the screen to a buffer in a palette format for 8bpp and RGBA format for 32bpp.
video | The destination pointer (video-buffer). | |
dst | The buffer in which the data will be stored. | |
width | The width of the buffer. | |
height | The height of the buffer. | |
dst_pitch | The pitch (byte per line) of the destination buffer. |
Implements Blitter.
Definition at line 63 of file 32bpp_base.cpp.
void Blitter_32bppBase::CopyToBuffer | ( | const void * | video, | |
void * | dst, | |||
int | width, | |||
int | height | |||
) | [virtual] |
Copy from the screen to a buffer.
video | The destination pointer (video-buffer). | |
dst | The buffer in which the data will be stored. | |
width | The width of the buffer. | |
height | The height of the buffer. |
Implements Blitter.
Reimplemented in Blitter_32bppAnim.
Definition at line 51 of file 32bpp_base.cpp.
void Blitter_32bppBase::DrawRect | ( | void * | video, | |
int | width, | |||
int | height, | |||
uint8 | colour | |||
) | [virtual] |
Make a single horizontal line in a single colour on the video-buffer.
video | The destination pointer (video-buffer). | |
width | The length of the line. | |
height | The height of the line. | |
colour | A 8bpp mapping colour. |
Implements Blitter.
Reimplemented in Blitter_32bppAnim.
Definition at line 25 of file 32bpp_base.cpp.
References LookupColourInPalette().
uint8 Blitter_32bppBase::GetScreenDepth | ( | ) | [inline, virtual] |
Get the screen depth this blitter works for.
This is either: 8, 16, 24 or 32.
Implements Blitter.
Definition at line 23 of file 32bpp_base.hpp.
static uint32 Blitter_32bppBase::MakeGrey | ( | uint32 | colour | ) | [inline, static] |
Make a colour grey - based.
colour | the colour to make grey. |
Definition at line 125 of file 32bpp_base.hpp.
References ComposeColour(), and GB().
Referenced by Blitter_32bppSimple::DrawColourMappingRect(), and Blitter_32bppAnim::DrawColourMappingRect().
static uint32 Blitter_32bppBase::MakeTransparent | ( | uint32 | colour, | |
uint | nom, | |||
uint | denom = 256 | |||
) | [inline, static] |
Make a pixel looks like it is transparent.
colour | the colour already on the screen. | |
nom | the amount of transparency, nominator, makes colour lighter. | |
denom | denominator, makes colour darker. |
Definition at line 111 of file 32bpp_base.hpp.
References ComposeColour(), and GB().
Referenced by Blitter_32bppSimple::Draw(), Blitter_32bppOptimized::Draw(), Blitter_32bppAnim::Draw(), Blitter_32bppSimple::DrawColourMappingRect(), and Blitter_32bppAnim::DrawColourMappingRect().
void * Blitter_32bppBase::MoveTo | ( | void * | video, | |
int | x, | |||
int | y | |||
) | [virtual] |
Move the destination pointer the requested amount x and y, keeping in mind any pitch and bpp of the renderer.
video | The destination pointer (video-buffer) to scroll. | |
x | How much you want to scroll to the right. | |
y | How much you want to scroll to the bottom. |
Implements Blitter.
Definition at line 15 of file 32bpp_base.cpp.
void Blitter_32bppBase::PaletteAnimate | ( | const Palette & | palette | ) | [virtual] |
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'.
palette | The new palette. |
Implements Blitter.
Reimplemented in Blitter_32bppAnim.
Definition at line 139 of file 32bpp_base.cpp.
void Blitter_32bppBase::ScrollBuffer | ( | void * | video, | |
int & | left, | |||
int & | top, | |||
int & | width, | |||
int & | height, | |||
int | scroll_x, | |||
int | scroll_y | |||
) | [virtual] |
Scroll the videobuffer some 'x' and 'y' value.
video | The buffer to scroll into. | |
left | The left value of the screen to scroll. | |
top | The top value of the screen to scroll. | |
width | The width of the screen to scroll. | |
height | The height of the screen to scroll. | |
scroll_x | How much to scroll in X. | |
scroll_y | How much to scroll in Y. |
Implements Blitter.
Reimplemented in Blitter_32bppAnim.
Definition at line 75 of file 32bpp_base.cpp.
void Blitter_32bppBase::SetPixel | ( | void * | video, | |
int | x, | |||
int | y, | |||
uint8 | colour | |||
) | [virtual] |
Draw a pixel with a given colour on the video-buffer.
video | The destination pointer (video-buffer). | |
x | The x position within video-buffer. | |
y | The y position within video-buffer. | |
colour | A 8bpp mapping colour. |
Implements Blitter.
Reimplemented in Blitter_32bppAnim.
Definition at line 20 of file 32bpp_base.cpp.
References LookupColourInPalette().
Blitter::PaletteAnimation Blitter_32bppBase::UsePaletteAnimation | ( | ) | [virtual] |
Check if the blitter uses palette animation at all.
Implements Blitter.
Reimplemented in Blitter_32bppAnim.
Definition at line 144 of file 32bpp_base.cpp.