# Blitter_8bppBase Class Reference

Inheritance diagram for Blitter_8bppBase:

## Public Member Functions

uint8 | GetScreenDepth ()
| Get the screen depth this blitter works for.
void | DrawColourMappingRect (void *dst, int width, int height, PaletteID pal)
| Draw a colourtable to the screen.
void * | MoveTo (const 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 | DrawLine (void *video, int x, int y, int x2, int y2, int screen_width, int screen_height, uint8 colour)
| Draw a line with a given colour.
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 (uint start, uint count)
| Called when the 8bpp palette is changed; you should redraw all pixels on the screen that are equal to the 8bpp palette indexes 'start' to 'start + count'.
Blitter::PaletteAnimation | UsePaletteAnimation ()
| Check if the blitter uses palette animation at all.
int | GetBytesPerPixel ()
| Get how many bytes are needed to store a pixel.

## Detailed Description

Definition at line 17 of file 8bpp_base.hpp.

## Member Function Documentation

int Blitter_8bppBase::BufferSize | ( | int | width,
|  | int | height |
| ) |  |  | `[virtual]`

Calculate how much memory there is needed for an image of this size in the video-buffer.

Parameters:

  | width | The width of the buffer-to-be.
  | height | The height of the buffer-to-be.

Returns:
  The size needed for the buffer.

Implements Blitter.

Definition at line 189 of file 8bpp_base.cpp.

void Blitter_8bppBase::CopyFromBuffer | ( | void * | video,
|  | const void * | src,
|  | int | width,
|  | int | height |
| ) |  |  | `[virtual]`

Copy from a buffer to the screen.

Parameters:

  | 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.

Note:
  You can not do anything with the content of the buffer, as the blitter can store non-pixel data in it too!

Implements Blitter.

Definition at line 94 of file 8bpp_base.cpp.

void Blitter_8bppBase::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.

Parameters:

  | 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 118 of file 8bpp_base.cpp.

void Blitter_8bppBase::CopyToBuffer | ( | const void * | video,
|  | void * | dst,
|  | int | width,
|  | int | height |
| ) |  |  | `[virtual]`

Copy from the screen to a buffer.

Parameters:

  | 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.

Note:
  You can not do anything with the content of the buffer, as the blitter can store non-pixel data in it too!

Implements Blitter.

Definition at line 106 of file 8bpp_base.cpp.

void Blitter_8bppBase::DrawColourMappingRect | ( | void * | dst,
|  | int | width,
|  | int | height,
|  | PaletteID | pal |
| ) |  |  | `[virtual]`

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:

  | dst | the destination pointer (video-buffer).
  | width | the width of the buffer.
  | height | the height of the buffer.
  | pal | the palette to use.

Implements Blitter.

Definition at line 16 of file 8bpp_base.cpp.

References ST_RECOLOUR.

void Blitter_8bppBase::DrawLine | ( | void * | video,
|  | int | x,
|  | int | y,
|  | int | x2,
|  | int | y2,
|  | int | screen_width,
|  | int | screen_height,
|  | uint8 | colour |
| ) |  |  | `[virtual]`

Draw a line with a given colour.

Parameters:

  | video | The destination pointer (video-buffer).
  | x | The x coordinate from where the line starts.
  | y | The y coordinate from where the line starts.
  | x2 | The x coordinate to where the line goes.
  | y2 | The y coordinate to where the lines goes.
  | screen_width | The width of the screen you are drawing in (to avoid buffer-overflows).
  | screen_height | The height of the screen you are drawing in (to avoid buffer-overflows).
  | colour | A 8bpp mapping colour.

Implements Blitter.

Definition at line 44 of file 8bpp_base.cpp.

References SetPixel().

void Blitter_8bppBase::DrawRect | ( | void * | video,
|  | int | width,
|  | int | height,
|  | uint8 | colour |
| ) |  |  | `[virtual]`

Make a single horizontal line in a single colour on the video-buffer.

Parameters:

  | 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.

Definition at line 36 of file 8bpp_base.cpp.

uint8 Blitter_8bppBase::GetScreenDepth | ( |  | ) | `[inline, virtual]`

Get the screen depth this blitter works for.

This is either: 8, 16, 24 or 32.

Implements Blitter.

Definition at line 19 of file 8bpp_base.hpp.

void * Blitter_8bppBase::MoveTo | ( | const 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.

Parameters:

  | 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.

Returns:
  A new destination pointer moved the the requested place.

Implements Blitter.

Definition at line 26 of file 8bpp_base.cpp.

void Blitter_8bppBase::PaletteAnimate | ( | uint | start,
|  | uint | count |
| ) |  |  | `[virtual]`

Called when the 8bpp palette is changed; you should redraw all pixels on the screen that are equal to the 8bpp palette indexes 'start' to 'start + count'.

Parameters:

  | start | The start index in the 8bpp palette.
  | count | The amount of indexes that are (possible) changed.

Implements Blitter.

Definition at line 194 of file 8bpp_base.cpp.

void Blitter_8bppBase::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.

Parameters:

  | 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.

Definition at line 130 of file 8bpp_base.cpp.

void Blitter_8bppBase::SetPixel | ( | void * | video,
|  | int | x,
|  | int | y,
|  | uint8 | colour |
| ) |  |  | `[virtual]`

Draw a pixel with a given colour on the video-buffer.

Parameters:

  | 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.

Definition at line 31 of file 8bpp_base.cpp.

Referenced by DrawLine().

Blitter::PaletteAnimation Blitter_8bppBase::UsePaletteAnimation | ( |  | ) | `[virtual]`

Check if the blitter uses palette animation at all.

Returns:
  True if it uses palette animation.

Implements Blitter.

Definition at line 199 of file 8bpp_base.cpp.

References Blitter::PALETTE_ANIMATION_VIDEO_BACKEND.

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

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