-#include "camera.h"
-#include "renderable.h"
-#include "renderer.h"
-#include "view.h"
-
-namespace Msp {
-namespace GL {
-
-View::View(Framebuffer &t):
- target(t),
- camera(0),
- content(0),
- internal_renderer(0)
-{ }
-
-View::~View()
-{
- delete internal_renderer;
-}
-
-void View::set_camera(Camera *c)
-{
- camera = c;
- if(camera)
- camera->set_aspect_ratio(get_aspect_ratio());
-}
-
-void View::set_content(Renderable *r)
-{
- content = r;
-}
-
-void View::render()
-{
- if(!internal_renderer)
- internal_renderer = new Renderer;
- render(*internal_renderer);
-}
-
-void View::render(Renderer &renderer)
-{
- Bind bind_fbo(target);
- target.clear(COLOR_BUFFER_BIT|DEPTH_BUFFER_BIT);
- if(content)
- {
- Renderer::Push push(renderer);
- renderer.set_camera(*camera);
- content->setup_frame(renderer);
- content->render(renderer);
- content->finish_frame();
- }
-}
-
-} // namespace GL
-} // namespace Msp