Added an alpha parameter for transformation and got rid of ugly alpha draw_font(...
[supertux.git] / lib / video / drawing_context.h
index be8cdfd..2d7b1ad 100644 (file)
@@ -68,7 +68,7 @@ namespace SuperTux
       /// Draws a text.
       void draw_text(Font* font, const std::string& text, const Vector& position,
                      int allignment, int layer,
-                     Uint32 drawing_effect = NONE_EFFECT, int alpha = 255);
+                     Uint32 drawing_effect = NONE_EFFECT);
       /// Draws a color gradient onto the whole screen */
       void draw_gradient(Color from, Color to, int layer);
       /// Fills a rectangle.
@@ -79,19 +79,22 @@ namespace SuperTux
       void do_drawing();
 
       const Vector& get_translation() const
-        {
-          return transform.translation;
-        }
+        {  return transform.translation;  }
+      Uint32 get_drawing_effect() const
+        {  return transform.draw_effect;  }
+
       void set_translation(const Vector& newtranslation)
-      {
-        transform.translation = newtranslation;
-      }
+        {  transform.translation = newtranslation;  }
 
       void push_transform();
       void pop_transform();
 
       /// Apply that effect in the next draws (effects are listed on surface.h).
       void set_drawing_effect(int effect);
+      /// apply that zoom in the next draws */
+      void set_zooming(float zoom);
+      /// apply that alpha in the next draws */
+      void set_alpha(int alpha);
 
     private:
       class Transform
@@ -104,7 +107,9 @@ namespace SuperTux
               return v - translation;
             }
 
-          int draw_effect;
+          Uint32 draw_effect;
+          float zoom;
+          int alpha;
         };
 
       /// the transform stack
@@ -128,7 +133,6 @@ namespace SuperTux
           Font* font;
           std::string text;
           int allignment;
-          int alpha;
         };
 
       struct GradientRequest
@@ -147,6 +151,8 @@ namespace SuperTux
         {
           int layer;
           Uint32 drawing_effect;
+          float zoom;
+          int alpha;
 
           RequestType type;
           Vector pos;