X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frenderer.cpp;h=d6090d7d2cd57db6fb7318f15df8d8752abcbe30;hb=d42c443d24a8e428c43f849b218c9e1a1dca4189;hp=62e5ced05aa90c254ba4149546091295615f541a;hpb=22f0f95981f17524587f5f2c5e3e91005240ddb7;p=libs%2Fgl.git diff --git a/source/renderer.cpp b/source/renderer.cpp index 62e5ced0..d6090d7d 100644 --- a/source/renderer.cpp +++ b/source/renderer.cpp @@ -21,34 +21,35 @@ using namespace std; namespace Msp { namespace GL { +Renderer::Renderer(): + default_camera(0) +{ + init(); +} + Renderer::Renderer(const Camera *c): - default_camera(c), - changed(0), - state_stack(1) + default_camera(c) { - state_stack.reserve(16); - shdata_stack.reserve(32); - state = &state_stack.back(); + init(); if(c) set_camera(*c); - else - { - standard_shdata.uniform("projection_matrix", Matrix()); - standard_shdata.uniform("eye_world_matrix", Matrix()); - } } -Renderer::~Renderer() +void Renderer::init() { - end(); + state_stack.reserve(16); + state_stack.push_back(State()); + shdata_stack.reserve(32); + state = &state_stack.back(); + + standard_shdata.uniform("projection_matrix", Matrix()); + standard_shdata.uniform("eye_world_matrix", Matrix()); } -void Renderer::begin(const Camera *c) +Renderer::~Renderer() { end(); - if(c) - set_camera(*c); } void Renderer::set_camera(const Camera &c)