aboutsummaryrefslogtreecommitdiff
path: root/src/renderer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderer.hpp')
-rw-r--r--src/renderer.hpp13
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();