namespace Msp {
namespace GL {
-View::View(Framebuffer &t):
- target(t),
- camera(0),
- content(0),
- internal_renderer(0)
-{ }
-
View::~View()
{
delete internal_renderer;
}
+View::View(View &&other):
+ camera(other.camera),
+ content(other.content),
+ internal_renderer(other.internal_renderer)
+{
+ other.internal_renderer = 0;
+}
+
void View::set_camera(Camera *c)
{
camera = c;
{
if(!internal_renderer)
internal_renderer = new Renderer;
+ internal_renderer->begin();
render(*internal_renderer);
+ internal_renderer->end();
}
void View::render(Renderer &renderer)
{
- Bind bind_fbo(target);
- target.clear();
+ Renderer::Push _push(renderer);
+ renderer.set_framebuffer(&get_target());
if(content)
{
- Renderer::Push push(renderer);
if(camera)
renderer.set_camera(*camera);
content->setup_frame(renderer);