#pragma once #include "scene_tree.h" #include #include "shader_constants.h" BEGIN_NAMESPACE class shader; class material; class texture; class scene_renderer { public: scene_renderer(); void render(const scene_tree &tree, const std::string &cameraName); private: void attach_depth_texture(texture &text) const; void render_shadow_map(const scene_tree &scene, light_node &light); std::shared_ptr first_pass_shadow_shader; std::shared_ptr first_pass_shadow_material; std::shared_ptr second_pass_shadow_shader; std::shared_ptr second_pass_shadow_material; shader_constants shader_consts; GLuint fbo_id; }; END_NAMESPACE