00001 #ifndef _FRAME_BUFFER_H_
00002 #define _FRAME_BUFFER_H_
00003
00004 #include <nds.h>
00005 #include "mutablebitmapbase.h"
00006
00007 namespace WoopsiUI {
00008
00009 class Graphics;
00010
00014 class FrameBuffer : public MutableBitmapBase {
00015 public:
00016
00023 FrameBuffer(u16* data, u16 width, u16 height);
00024
00028 virtual inline ~FrameBuffer() { };
00029
00036 const u16 getPixel(s16 x, s16 y) const;
00037
00044 virtual void setPixel(const s16 x, const s16 y, const u16 colour);
00045
00050 inline const u16* getData() const { return _bitmap; };
00051
00059 inline const u16* getData(s16 x, s16 y) const;
00060
00065 inline u16* getEditableData() const { return _bitmap; }
00066
00072 Graphics* newGraphics();
00073
00081 void blit(const s16 x, const s16 y, u16* data, const u32 size);
00082
00090 void blitFill(const s16 x, const s16 y, u16 colour, const u32 size);
00091
00092 protected:
00093 u16* _bitmap __attribute__ ((aligned (4)));
00098 inline FrameBuffer(const FrameBuffer& bitmap) { };
00099 };
00100 }
00101
00102 #endif