Woopsi 1.0
GUI Framework for Nintendo DS Homebrew
Public Member Functions | Protected Member Functions

WoopsiUI::FrameBuffer Class Reference

#include <framebuffer.h>

Inheritance diagram for WoopsiUI::FrameBuffer:
WoopsiUI::MutableBitmapBase WoopsiUI::BitmapBase

List of all members.

Public Member Functions

void copy (s16 x, s16 y, u32 size, u16 *dest) const
 FrameBuffer (u16 *data, u16 width, u16 height)
const u16 * getData () const
virtual ~FrameBuffer ()
const u16 getPixel (s16 x, s16 y) const
virtual void setPixel (const s16 x, const s16 y, const u16 colour)
const u16 * getData (s16 x, s16 y) const
GraphicsnewGraphics ()
void blit (const s16 x, const s16 y, const u16 *data, const u32 size)
void blitFill (const s16 x, const s16 y, const u16 colour, const u32 size)

Protected Member Functions

u16 *_bitmap __attribute__ ((aligned(4)))
 FrameBuffer (const FrameBuffer &bitmap)

Detailed Description

Bitmap subclass designed exclusively as a way to wrap the framebuffer in a bitmap object. It can then be treated as any other bitmap - it can be drawn to with setPixel(), blit() and blitFill() methods, and it can produce a Graphics object for more complex drawing functions.

The FrameBuffer class automatically switches from using the DS' framebuffer (more accurately, a 16-bit background) to using an SDL surface if Woopsi is compiled in SDL mode.


Constructor & Destructor Documentation

WoopsiUI::FrameBuffer::FrameBuffer ( u16 *  data,
u16  width,
u16  height 
)

Constructor.

Parameters:
dataPointer to the raw bitmap data.
widthThe width of the bitmap.
heightThe height of the bitmap.
virtual WoopsiUI::FrameBuffer::~FrameBuffer ( ) [inline, virtual]

Destructor.

WoopsiUI::FrameBuffer::FrameBuffer ( const FrameBuffer bitmap) [inline, protected]

Copy constructor is protected to prevent usage.


Member Function Documentation

u16* _bitmap WoopsiUI::FrameBuffer::__attribute__ ( (aligned(4))  ) [protected]
void WoopsiUI::FrameBuffer::blit ( const s16  x,
const s16  y,
const u16 *  data,
const u32  size 
) [virtual]

Blit data to the specified co-ordinates using the DMA hardware.

Parameters:
xThe x co-ordinate to blit to.
yThe y co-ordinate to blit to.
dataThe data to blit.
sizeThe number of u16s to blit.

Implements WoopsiUI::MutableBitmapBase.

void WoopsiUI::FrameBuffer::blitFill ( const s16  x,
const s16  y,
const u16  colour,
const u32  size 
) [virtual]

Fill at the specified co-ordinates using the DMA hardware.

Parameters:
xThe x co-ordinate to blit to.
yThe y co-ordinate to blit to.
colourThe colour to fill with.
sizeThe number of u16s to blit.

Implements WoopsiUI::MutableBitmapBase.

void WoopsiUI::FrameBuffer::copy ( s16  x,
s16  y,
u32  size,
u16 *  dest 
) const [virtual]

Copies data from the supplied co-ordinates sequentially into dest. If the amount to be copied exceeds the available width of the bitmap, copying will wrap around from the right-hand edge of the bitmap to the left-hand edge. The dest parameter must point to an area of memory large enough to contain the copied data.

Parameters:
xThe x co-ordinate to copy from.
yThe y co-ordinate to copy from.
sizeThe number of pixels to copy.
destPointer to the memory that will be copied into.

Implements WoopsiUI::BitmapBase.

const u16* WoopsiUI::FrameBuffer::getData ( ) const [inline, virtual]

Get a pointer to the internal bitmap.

Returns:
Pointer to the internal bitmap.

Implements WoopsiUI::BitmapBase.

const u16* WoopsiUI::FrameBuffer::getData ( s16  x,
s16  y 
) const [inline, virtual]

Get a pointer to the internal bitmap data at the specified co-ordinates.

Parameters:
xThe x co-ord of the data.
yThe y co-ord of the data.
Returns:
Pointer to the internal bitmap data.

Implements WoopsiUI::BitmapBase.

const u16 WoopsiUI::FrameBuffer::getPixel ( s16  x,
s16  y 
) const [virtual]

Get the colour of the pixel at the specified co-ordinates

Parameters:
xThe x co-ordinate of the pixel.
yThe y co-ordinate of the pixel.
Returns:
The colour of the pixel.

Implements WoopsiUI::BitmapBase.

Graphics* WoopsiUI::FrameBuffer::newGraphics ( )

Get a new graphics object that can draw to this bitmap. Object must be deleted when it is no longer needed.

Returns:
A new Graphics object.
virtual void WoopsiUI::FrameBuffer::setPixel ( const s16  x,
const s16  y,
const u16  colour 
) [virtual]

Set the colour of the specified pixel.

Parameters:
xX co-ord of the pixel to set.
yY co-ord of the pixel to set.
colourNew colour of the pixel.

Implements WoopsiUI::MutableBitmapBase.


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