projects
/
supertux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Tweak icecrusher draw layers to avoid objects (such as coins) from appearing inside...
[supertux.git]
/
src
/
video
/
drawing_context.cpp
diff --git
a/src/video/drawing_context.cpp
b/src/video/drawing_context.cpp
index
3eacf3f
..
f600246
100644
(file)
--- a/
src/video/drawing_context.cpp
+++ b/
src/video/drawing_context.cpp
@@
-29,11
+29,10
@@
#include "video/surface.hpp"
#include "video/texture.hpp"
#include "video/texture_manager.hpp"
#include "video/surface.hpp"
#include "video/texture.hpp"
#include "video/texture_manager.hpp"
-#include "video/video_system
s
.hpp"
+#include "video/video_system.hpp"
-DrawingContext::DrawingContext(Renderer& renderer_, Lightmap& lightmap_) :
- renderer(renderer_),
- lightmap(lightmap_),
+DrawingContext::DrawingContext(VideoSystem& video_system_) :
+ video_system(video_system_),
transformstack(),
transform(),
blend_stack(),
transformstack(),
transform(),
blend_stack(),
@@
-60,9
+59,9
@@
DrawingContext::~DrawingContext()
}
void
}
void
-DrawingContext::clear_drawing_requests(DrawingRequests& requests)
+DrawingContext::clear_drawing_requests(DrawingRequests& requests
_
)
{
{
- for(auto& request : requests)
+ for(auto& request : requests
_
)
{
if (request->request_data)
{
{
if (request->request_data)
{
@@
-70,7
+69,7
@@
DrawingContext::clear_drawing_requests(DrawingRequests& requests)
}
request->~DrawingRequest();
}
}
request->~DrawingRequest();
}
- requests.clear();
+ requests
_
.clear();
}
void
}
void
@@
-318,6
+317,8
@@
DrawingContext::do_drawing()
// PART1: create lightmap
if(use_lightmap) {
// PART1: create lightmap
if(use_lightmap) {
+ Lightmap& lightmap = video_system.get_lightmap();
+
lightmap.start_draw(ambient_color);
handle_drawing_requests(lightmap_requests);
lightmap.end_draw();
lightmap.start_draw(ambient_color);
handle_drawing_requests(lightmap_requests);
lightmap.end_draw();
@@
-328,6
+329,8
@@
DrawingContext::do_drawing()
request->layer = LAYER_HUD - 1;
drawing_requests.push_back(request);
}
request->layer = LAYER_HUD - 1;
drawing_requests.push_back(request);
}
+
+ Renderer& renderer = video_system.get_renderer();
renderer.start_draw();
handle_drawing_requests(drawing_requests);
renderer.end_draw();
renderer.start_draw();
handle_drawing_requests(drawing_requests);
renderer.end_draw();
@@
-357,12
+360,15
@@
public:
};
void
};
void
-DrawingContext::handle_drawing_requests(DrawingRequests& requests)
+DrawingContext::handle_drawing_requests(DrawingRequests& requests
_
)
{
{
- std::stable_sort(requests.begin(), requests.end(), RequestPtrCompare());
+ std::stable_sort(requests_.begin(), requests_.end(), RequestPtrCompare());
+
+ Renderer& renderer = video_system.get_renderer();
+ Lightmap& lightmap = video_system.get_lightmap();
DrawingRequests::const_iterator i;
DrawingRequests::const_iterator i;
- for(i = requests
.begin(); i != requests
.end(); ++i) {
+ for(i = requests
_.begin(); i != requests_
.end(); ++i) {
const DrawingRequest& request = **i;
switch(request.target) {
const DrawingRequest& request = **i;
switch(request.target) {
@@
-487,13
+493,13
@@
DrawingContext::pop_target()
}
void
}
void
-DrawingContext::set_target(Target target)
+DrawingContext::set_target(Target target
_
)
{
{
- this->target = target;
- if(target == LIGHTMAP) {
+ this->target = target
_
;
+ if(target
_
== LIGHTMAP) {
requests = &lightmap_requests;
} else {
requests = &lightmap_requests;
} else {
- assert(target == NORMAL);
+ assert(target
_
== NORMAL);
requests = &drawing_requests;
}
}
requests = &drawing_requests;
}
}