diff options
Diffstat (limited to 'src/renderer.hpp')
| -rw-r--r-- | src/renderer.hpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/renderer.hpp b/src/renderer.hpp index 6725f70..3880d04 100644 --- a/src/renderer.hpp +++ b/src/renderer.hpp @@ -2,22 +2,29 @@ #define RENDERER_HPP #include <memory> +#include <type_traits> #include "math/vector.hpp" #include "o3d/tri.hpp" #include "o3d/tri_deriv.hpp" +#include "o3d/mesh.hpp" +#include "fb/fb.hpp" +#include "shaders/shaders.hpp" namespace engine { -template<typename FrameBuffer> -class Renderer { +template<fb::FrameBufferConcept FrameBuffer, shaders::ShadersConcept Shaders> +class Renderer +{ public: FrameBuffer fb; + Shaders shaders; - Renderer(FrameBuffer&& fb); + Renderer(FrameBuffer&& fb, Shaders&& shaders); void resize(unsigned int w, unsigned int h); void clear(); void draw_triangle(const o3d::Triangle& triangle); + void draw_mesh(const o3d::Mesh& mesh); constexpr unsigned int width() const & { return fb.width(); |
