00001 #ifndef __NE_RENDERER_H__ 00002 #define __NE_RENDERER_H__ 00003 00004 #ifndef DOXYGEN_IGNORE_TAG 00005 00026 #endif 00027 00028 #include "../Types/Vec2.h" 00029 00030 struct Colour; 00031 struct Rect; 00032 00033 namespace NE 00034 { 00035 class Sprite; 00036 class Window; 00037 00038 class Renderer 00039 { 00040 protected: 00041 00042 Window* pWin; 00044 void* getNativeWindow(void)const; 00045 void* getNativeSurface(const Sprite& sprite)const; 00046 00047 public: 00048 Renderer(Window* pWin):pWin(pWin) {} 00049 virtual ~Renderer(void) {} 00050 00051 virtual bool clearScreen(const Colour& colour)=0; 00052 00053 virtual bool drawRect(const Rect& tile, const Colour& colour)const=0; 00054 00055 virtual bool drawSurface(const IVec2& position,const Sprite& pSurface)const=0; 00056 virtual bool drawSurface(const IVec2& position,const Sprite& pSurface, const Colour& mask)const=0; 00057 virtual bool drawSurface(const IVec2& position,const Sprite& pSurface, const Rect& srcRect)const=0; 00058 virtual bool drawSurface(const IVec2& position,const Sprite& pSurface, const Rect& srcRect, const Colour& mask)const=0; 00059 00060 virtual bool updateWindow(void)=0; 00061 }; 00062 } 00063 00138 #endif