WoopsiGfx 1.4
Nintendo DS 2D Graphics Library
libwoopsigfx/include/bitmap.h
00001 #ifndef _BITMAP_H_
00002 #define _BITMAP_H_
00003 
00004 #include <nds.h>
00005 #include "woopsiarray.h"
00006 #include "mutablebitmapbase.h"
00007 
00008 namespace WoopsiGfx {
00009 
00010     class Graphics;
00011 
00016     class Bitmap : public MutableBitmapBase {
00017     public:
00018 
00024         Bitmap(u16 width, u16 height);
00025 
00029         virtual inline ~Bitmap() {
00030             delete[] _bitmap;
00031         };
00032         
00039         const u16 getPixel(s16 x, s16 y) const;
00040 
00047         void setPixel(const s16 x, const s16 y, const u16 colour);
00048 
00053         inline const u16* getData() const { return _bitmap; };
00054 
00062         const u16* getData(s16 x, s16 y) const;
00063 
00069         Graphics* newGraphics();
00070 
00078         void blit(const s16 x, const s16 y, const u16* data, const u32 size);
00079 
00087         void blitFill(const s16 x, const s16 y, const u16 colour, const u32 size);
00088 
00101         void copy(s16 x, s16 y, u32 size, u16* dest) const;
00102 
00107         inline const u16 getWidth() const { return _width; };
00108 
00113         inline const u16 getHeight() const { return _height; };
00114 
00115     protected:
00116         u16* _bitmap __attribute__ ((aligned (4)));     
00117         u16 _width;                                     
00118         u16 _height;                                    
00123         inline Bitmap(const Bitmap& bitmap) { };
00124     };
00125 }
00126 
00127 #endif