/* A class with some handy surface handling statics */ #ifndef _DRAWUTILS_H_ #define _DRAWUTILS_H_ #include #include #include using std::string; class DrawUtils { public: DrawUtils() {} static SDL_Surface* load(string file); static bool draw(SDL_Surface* dest, SDL_Surface* drawable, int x, int y); static bool draw(SDL_Surface* dest, SDL_Surface* drawable, int x, int y, int x2, int y2, int w, int h); static void draw_line(SDL_Surface* dest, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint16 width, Uint32 colour); static void draw_circle(SDL_Surface* dest, Sint16 x, Sint16 y, Uint16 r, Uint32 colour); static void draw_circle_filled(SDL_Surface* dest, Sint16 x, Sint16 y, Uint16 r, Uint32 colour); static void draw_text(SDL_Surface* display, string text, int x, int y, TTF_Font *font, unsigned int colour = 0x000000, bool center_x = false, bool center_y = false); // transpare (v) - to make transparent // this function makes a particular color key on a surface transparent // the traditional color key is 255, 0, 255 (bright pink), so we default // to that static bool transpare(SDL_Surface* surface, int r = 255, int g = 0, int b = 255); }; #endif