infinite terrain experiments
[shady.git] / renderer.hpp
blob8b0f7df56dd873f1ae496449d524b87b4656121c
2 #ifndef SHADY_RENDERER_HPP
3 #define SHADY_RENDERER_HPP
5 #include <vector>
6 #include <string>
8 class transform;
9 class World;
12 class Renderer {
14 public:
16 Renderer(const std::vector<std::string> & pps);
18 ~Renderer();
20 /**
21 * Initialize the rendering system.
23 bool init(size_t width, size_t height);
25 void renderShadowmap(const World & world);
27 /**
28 * Render one frame.
29 * @param camera The transformation from model space to view space.
30 **/
31 void renderScene(const transform & camera, const World & world);
33 void postprocess(float radius, float var, float time);
35 /**
36 * Set a new render size.
38 void resized(size_t width, size_t height);
40 private:
42 class _Private;
43 _Private * const _p;
47 bool checkGl(const char * action, bool fatal = false);
49 #endif // SHADY_RENDERER_HPP