WoopsiGfx 1.4
Nintendo DS 2D Graphics Library
|
00001 #ifndef _BUFFERED_BITMAP_H_ 00002 #define _BUFFERED_BITMAP_H_ 00003 00004 #include <nds.h> 00005 #include "woopsiarray.h" 00006 #include "mutablebitmapbase.h" 00007 00008 namespace WoopsiGfx { 00009 00010 class Graphics; 00011 00024 class BufferedBitmap : public MutableBitmapBase { 00025 public: 00026 00032 BufferedBitmap(u16 width, u16 height); 00033 00037 virtual inline ~BufferedBitmap() { 00038 delete[] _bitmap; 00039 delete[] _buffer; 00040 }; 00041 00048 const u16 getPixel(s16 x, s16 y) const; 00049 00056 void setPixel(const s16 x, const s16 y, const u16 colour); 00057 00062 inline const u16* getData() const { return _bitmap; }; 00063 00071 const u16* getData(s16 x, s16 y) const; 00072 00078 Graphics* newGraphics(); 00079 00087 void blit(const s16 x, const s16 y, const u16* data, const u32 size); 00088 00096 void blitFill(const s16 x, const s16 y, const u16 colour, const u32 size); 00097 00110 void copy(s16 x, s16 y, u32 size, u16* dest) const; 00111 00116 void buffer(); 00117 00122 void unbuffer(); 00123 00128 inline const u16 getWidth() const { return _width; }; 00129 00134 inline const u16 getHeight() const { return _height; }; 00135 00136 protected: 00137 u16* _bitmap __attribute__ ((aligned (4))); 00138 u16* _buffer __attribute__ ((aligned (4))); 00139 u16 _width; 00140 u16 _height; 00145 inline BufferedBitmap(const BufferedBitmap& bitmap) { }; 00146 }; 00147 } 00148 00149 #endif