Antkeeper  0.0.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
renderer.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2023 Christopher J. Howard
3  *
4  * This file is part of Antkeeper source code.
5  *
6  * Antkeeper source code is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * Antkeeper source code is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with Antkeeper source code. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef ANTKEEPER_RENDER_RENDERER_HPP
21 #define ANTKEEPER_RENDER_RENDERER_HPP
22 
29 #include <engine/gl/pipeline.hpp>
31 #include <memory>
32 
33 namespace render {
34 
38 class renderer
39 {
40 public:
48 
57  void render(float t, float dt, float alpha, scene::collection& collection);
58 
59 private:
60  render::context m_ctx;
61  std::unique_ptr<render::light_probe_stage> m_light_probe_stage;
62  std::unique_ptr<render::cascaded_shadow_map_stage> m_cascaded_shadow_map_stage;
63  std::unique_ptr<render::culling_stage> m_culling_stage;
64  std::unique_ptr<render::queue_stage> m_queue_stage;
65 };
66 
67 } // namespace render
68 
69 #endif // ANTKEEPER_RENDER_RENDERER_HPP
Graphics pipeline interface.
Definition: pipeline.hpp:48
renderer(gl::pipeline &pipeline, ::resource_manager &resource_manager)
Constructs a renderer.
Definition: renderer.cpp:40
void render(float t, float dt, float alpha, scene::collection &collection)
Renders a collection of scene objects.
Definition: renderer.cpp:48
Manages the loading, caching, and saving of resources.
Collection of scene objects.
Definition: collection.hpp:33
High-level rendering.
Context of a renderer.
Definition: context.hpp:40