X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frenderer.cpp;h=d6090d7d2cd57db6fb7318f15df8d8752abcbe30;hb=b5791c97adfa8477e92b26960889c9e5ad8dd917;hp=d01a1f0c4156ba319ee8c6fadd0fc4ae3d58352d;hpb=3e555c51a85b97090ae8c9b16ee425ee5ffe6ef8;p=libs%2Fgl.git diff --git a/source/renderer.cpp b/source/renderer.cpp index d01a1f0c..d6090d7d 100644 --- a/source/renderer.cpp +++ b/source/renderer.cpp @@ -21,22 +21,30 @@ 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) +{ + init(); + + if(c) + set_camera(*c); +} + +void Renderer::init() { state_stack.reserve(16); + state_stack.push_back(State()); shdata_stack.reserve(32); state = &state_stack.back(); - if(c) - set_camera(*c); - else - { - standard_shdata.uniform("projection_matrix", Matrix()); - standard_shdata.uniform("eye_world_matrix", Matrix()); - } + standard_shdata.uniform("projection_matrix", Matrix()); + standard_shdata.uniform("eye_world_matrix", Matrix()); } Renderer::~Renderer()