Allow creation of a Color object feeding with a vector of Uints.
[supertux.git] / lib / video / screen.h
index 263bdae..93c0bfa 100644 (file)
 #include <SDL_opengl.h>
 #endif
 #include <iostream>
-class Color
-{
-public:
-  Color() 
-    : red(0), green(0), blue(0), alpha(255)
-  {}
-  
-  Color(Uint8 red_, Uint8 green_, Uint8 blue_, Uint8 alpha_ = 255)
-    : red(red_), green(green_), blue(blue_), alpha(alpha_)
-  {}
 
-  Color(const Color& o)
-    : red(o.red), green(o.green), blue(o.blue), alpha(o.alpha)
-  { }
+#include <vector>
 
-  bool operator==(const Color& o)
-    {  if(red == o.red && green == o.green &&
-          blue == o.blue && alpha == o.alpha)
-         return true;
-       return false;  }
+namespace SuperTux
+  {
+    
+  /// Color RGBA
+  /** Stores 8bit RGBA values. */
+  class Color
+    {
+    public:
+      Color()
+          : red(0), green(0), blue(0), alpha(255)
+      {}
 
-  Uint8 red, green, blue, alpha;
-};
+      Color(Uint8 red_, Uint8 green_, Uint8 blue_, Uint8 alpha_ = 255)
+          : red(red_), green(green_), blue(blue_), alpha(alpha_)
+      {}
 
-#include "video/surface.h"
+      Color(std::vector <unsigned 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]; }
 
-class Vector;
+      Color(const Color& o)
+          : red(o.red), green(o.green), blue(o.blue), alpha(o.alpha)
+      { }
 
-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, int r, int g, int b, int a = 255);
+      bool operator==(const Color& o)
+      {
+        if(red == o.red && green == o.green &&
+            blue == o.blue && alpha == o.alpha)
+          return true;
+        return false;
+      }
 
-void fadeout(int fade_time);
-void shrink_fade(const Vector& point, int fade_time);
+      Uint8 red, green, blue, alpha;
+    };
+
+
+  class Vector;
+
+  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);
+
+  void fadeout(int fade_time);
+  void shrink_fade(const Vector& point, int fade_time);
+
+} //namespace SuperTux
 
 #endif /*SUPERTUX_SCREEN_H*/