#include "video/surface.hpp"
#include "video/texture.hpp"
#include "video/texture_manager.hpp"
-#include "video/video_systems.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(),
}
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)
{
}
request->~DrawingRequest();
}
- requests.clear();
+ requests_.clear();
}
void
// 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();
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();
clear_drawing_requests(lightmap_requests);
clear_drawing_requests(drawing_requests);
};
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;
- for(i = requests.begin(); i != requests.end(); ++i) {
+ for(i = requests_.begin(); i != requests_.end(); ++i) {
const DrawingRequest& request = **i;
switch(request.target) {
}
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 {
- assert(target == NORMAL);
+ assert(target_ == NORMAL);
requests = &drawing_requests;
}
}