X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Frender%2Frenderer.cpp;h=45ad120045397de5848e4cecfe1968f39e83433b;hp=999ff1a22e32bc3bfa6e72d84a88936f6187661d;hb=5871764de7aa23d2c40cac03ad9d07088fb57e06;hpb=175153f224916b92d02a325aac5628956cda8daf diff --git a/source/render/renderer.cpp b/source/render/renderer.cpp index 999ff1a2..45ad1200 100644 --- a/source/render/renderer.cpp +++ b/source/render/renderer.cpp @@ -27,17 +27,16 @@ Renderer::Renderer() texture_stack.reserve(32); } -Renderer::~Renderer() -{ -} - void Renderer::begin() { if(current_state) throw invalid_operation("Renderer::begin"); - state_stack.push_back(State()); + state_stack.emplace_back(); current_state = &state_stack.back(); + + RendererBackend::begin(); + add_shader_data(standard_shdata); } @@ -46,12 +45,12 @@ void Renderer::end() if(!current_state || state_stack.size()>1) throw invalid_operation("Renderer::end"); + RendererBackend::end(); + current_state = 0; state_stack.clear(); texture_stack.clear(); shdata_stack.clear(); - - commands.use_pipeline(0); } void Renderer::push_state() @@ -164,7 +163,7 @@ void Renderer::set_texture(Tag tag, const Texture *tex, const Sampler *samp) break; } - texture_stack.push_back(BoundTexture()); + texture_stack.emplace_back(); BoundTexture &bound_tex = texture_stack.back(); bound_tex.tag = tag; bound_tex.texture = tex;