00001 #ifndef _GRAPHICS_UNCLIPPED_H_
00002 #define _GRAPHICS_UNCLIPPED_H_
00003
00004 #include <nds.h>
00005 #include "bitmapbase.h"
00006 #include "mutablebitmapbase.h"
00007
00008 namespace WoopsiUI {
00009
00010 class FontBase;
00011
00016 class GraphicsUnclipped {
00017 public:
00018
00023 GraphicsUnclipped(MutableBitmapBase* bitmap);
00024
00028 virtual inline ~GraphicsUnclipped() { };
00029
00036 virtual const u16 getPixel(s16 x, s16 y) const;
00037
00044 virtual void drawPixel(s16 x, s16 y, u16 colour);
00045
00054 virtual void drawFilledRect(s16 x, s16 y, u16 width, u16 height, u16 colour);
00055
00063 virtual void drawHorizLine(s16 x, s16 y, u16 width, u16 colour);
00064
00072 virtual void drawVertLine(s16 x, s16 y, u16 height, u16 colour);
00073
00082 virtual void drawRect(s16 x, s16 y, u16 width, u16 height, u16 colour);
00083
00092 virtual void drawLine(s16 x1, s16 y1, s16 x2, s16 y2, u16 colour);
00093
00101 virtual void drawCircle(s16 x0, s16 y0, u16 radius, u16 colour);
00102
00110 virtual void drawFilledCircle(s16 x0, s16 y0, u16 radius, u16 colour);
00111
00119 virtual void drawText(s16 x, s16 y, FontBase* font, const char* string);
00120
00129 virtual void drawText(s16 x, s16 y, FontBase* font, u16 length, const char* string);
00130
00139 virtual void drawText(s16 x, s16 y, FontBase* font, const char* string, u16 colour);
00140
00150 virtual void drawText(s16 x, s16 y, FontBase* font, u16 length, const char* string, u16 colour);
00151
00159 virtual void drawText(s16 x, s16 y, FontBase* font, char letter);
00160
00169 virtual void drawText(s16 x, s16 y, FontBase* font, char letter, u16 colour);
00170
00181 virtual void drawBitmap(s16 x, s16 y, u16 width, u16 height, const BitmapBase* bitmap, s16 bitmapX, s16 bitmapY);
00182
00196 virtual void drawBitmap(s16 x, s16 y, u16 width, u16 height, const BitmapBase* bitmap, s16 bitmapX, s16 bitmapY, u16 transparentColour);
00197
00206 virtual void drawEllipse(s16 xCentre, s16 yCentre, s16 horizRadius, s16 vertRadius, u16 colour);
00207
00216 virtual void drawFilledEllipse(s16 xCentre, s16 yCentre, s16 horizRadius, s16 vertRadius, u16 colour);
00217
00223 virtual void drawXORPixel(s16 x, s16 y);
00224
00231 virtual void drawXORHorizLine(s16 x, s16 y, u16 width);
00232
00239 virtual void drawXORVertLine(s16 x, s16 y, u16 height);
00240
00248 virtual void drawXORRect(s16 x, s16 y, u16 width, u16 height);
00249
00257 virtual void drawFilledXORRect(s16 x, s16 y, u16 width, u16 height);
00258
00273 void copy(s16 sourceX, s16 sourceY, s16 destX, s16 destY, u16 width, u16 height);
00274
00282 void dim(s16 x, s16 y, u16 width, u16 height);
00283
00284 protected:
00285 MutableBitmapBase* _bitmap;
00286 u16* _data;
00287 u16 _width;
00293 inline GraphicsUnclipped(const GraphicsUnclipped& graphicsUnclipped) { };
00294 };
00295 }
00296
00297 #endif