updating Nolok contrib templates
[supertux.git] / lib / video / screen.h
index 93c0bfa..c3c1d82 100644 (file)
@@ -49,6 +49,11 @@ namespace SuperTux
       { if(color.size() >= 3) { red = color[0]; green = color[1]; blue = color[2]; }
         if(color.size() == 4) alpha = color[3]; }
 
+      Color(std::vector <int> color)
+          : red(0), green(0), blue(0), alpha(255)
+      { if(color.size() >= 3) { red = color[0]; green = color[1]; blue = color[2]; }
+        if(color.size() == 4) alpha = color[3]; }
+
       Color(const Color& o)
           : red(o.red), green(o.green), blue(o.blue), alpha(o.alpha)
       { }
@@ -61,13 +66,19 @@ namespace SuperTux
         return false;
       }
 
+      Uint32 map_rgb(SDL_Surface* surface)
+        { return SDL_MapRGB(surface->format, red, green, blue); }
+      Uint32 map_rgba(SDL_Surface* surface)
+        { return SDL_MapRGBA(surface->format, red, green, blue, alpha); }
+
       Uint8 red, green, blue, alpha;
     };
 
 
   class Vector;
 
-  void putpixel(SDL_Surface *surface, int x, int y, Uint32 pixel);
+  Uint32 getpixel(SDL_Surface* surface, int x, int y);
+  void putpixel(SDL_Surface* surface, int x, int y, Uint32 pixel);
   void drawpixel(int x, int y, Uint32 pixel);
   void fillrect(float x, float y, float w, float h, int r, int g, int b, int a = 255);
   void draw_line(float x1, float y1, float x2, float y2, int r, int g, int b, int a = 255);