X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=lib%2Fvideo%2Fdrawing_context.h;h=2d7b1ad5849e63b0eb2043f96a8f0cfff20f2155;hb=8a2c96eedfa91dc2f791c90f85697d3a3fe2a268;hp=e0b2df5fdedea086bde3b7e5e1af48685ad8cf20;hpb=4b476ec30e7dd62249328054402d6493c20a685d;p=supertux.git diff --git a/lib/video/drawing_context.h b/lib/video/drawing_context.h index e0b2df5fd..2d7b1ad58 100644 --- a/lib/video/drawing_context.h +++ b/lib/video/drawing_context.h @@ -47,6 +47,7 @@ namespace SuperTux LAYER_GUI = 500 }; + /// Handles drawing of things. /** * This class provides functions for drawing things on screen. It also * maintains a stack of transforms that are applied to graphics. @@ -57,42 +58,43 @@ namespace SuperTux DrawingContext(); ~DrawingContext(); - /** Adds a drawing request for a surface into the request list */ + /// Adds a drawing request for a surface into the request list. void draw_surface(const Surface* surface, const Vector& position, int layer, Uint32 drawing_effect = NONE_EFFECT); - /** Adds a drawing request for part of a surface */ + /// Adds a drawing request for part of a surface. void draw_surface_part(const Surface* surface, const Vector& source, const Vector& size, const Vector& dest, int layer, Uint32 drawing_effect = NONE_EFFECT); - /** draws a text */ + /// Draws a text. void draw_text(Font* font, const std::string& text, const Vector& position, - int layer, Uint32 drawing_effect = NONE_EFFECT); - /** draws aligned text */ - void draw_text_center(Font* font, const std::string& text, - const Vector& position, int layer, Uint32 drawing_effect = NONE_EFFECT); - /** draws a color gradient onto the whole screen */ + int allignment, int layer, + 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 */ + /// Fills a rectangle. void draw_filled_rect(const Vector& topleft, const Vector& size, Color color, int layer); - /** Processes all pending drawing requests and flushes the list */ + /// Processes all pending drawing requests and flushes the list. 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) */ + /// 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 @@ -105,7 +107,9 @@ namespace SuperTux return v - translation; } - int draw_effect; + Uint32 draw_effect; + float zoom; + int alpha; }; /// the transform stack @@ -128,6 +132,7 @@ namespace SuperTux { Font* font; std::string text; + int allignment; }; struct GradientRequest @@ -146,6 +151,8 @@ namespace SuperTux { int layer; Uint32 drawing_effect; + float zoom; + int alpha; RequestType type; Vector pos; @@ -160,6 +167,7 @@ namespace SuperTux void draw_surface_part(DrawingRequest& request); void draw_text(DrawingRequest& request); + void draw_text_center(DrawingRequest& request); void draw_gradient(DrawingRequest& request); void draw_filled_rect(DrawingRequest& request);