X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fvideo%2Fdrawing_context.hpp;h=4839239dc52d6c97ddacc9581fb82329abb488c0;hb=2f7bf5676ef8b6b9ff3cf28468efe536888808b5;hp=08b4f1e2376f3a99bf79fbdfa0ff9c5a19bf2500;hpb=c62f4f7c11116b2ba6d6a9dfdb74bc7f07e840d0;p=supertux.git diff --git a/src/video/drawing_context.hpp b/src/video/drawing_context.hpp index 08b4f1e23..4839239dc 100644 --- a/src/video/drawing_context.hpp +++ b/src/video/drawing_context.hpp @@ -49,7 +49,8 @@ enum { LAYER_FOREGROUNDTILES = 200, LAYER_FOREGROUND0 = 300, LAYER_FOREGROUND1 = 400, - LAYER_GUI = 500 + LAYER_HUD = 500, + LAYER_GUI = 600 }; class Blend @@ -124,13 +125,16 @@ public: /// return currently set alpha float get_alpha() const; + /// on next update, set color to lightmap's color at position + void get_light(const Vector& position, Color* color ); + enum Target { NORMAL, LIGHTMAP }; void push_target(); void pop_target(); void set_target(Target target); - + void set_ambient_color( Color new_color ); private: @@ -161,7 +165,7 @@ private: enum RequestType { - SURFACE, SURFACE_PART, TEXT, GRADIENT, FILLRECT + SURFACE, SURFACE_PART, TEXT, GRADIENT, FILLRECT, LIGHTMAPREQUEST, GETLIGHT }; struct SurfacePartRequest @@ -214,6 +218,11 @@ private: } }; + struct GetLightRequest + { + Color* color_ptr; + }; + typedef std::vector DrawingRequests; void handle_drawing_requests(DrawingRequests& requests); @@ -222,6 +231,8 @@ private: void draw_text_center(DrawingRequest& request); void draw_gradient(DrawingRequest& request); void draw_filled_rect(DrawingRequest& request); + void draw_lightmap(DrawingRequest& request); + void get_light(DrawingRequest& request); DrawingRequests drawing_requests; DrawingRequests lightmap_requests;