aboutsummaryrefslogtreecommitdiff
path: root/src/renderer.h
diff options
context:
space:
mode:
authorvimene <vincent.menegaux@gmail.com>2023-12-05 10:42:35 +0100
committervimene <vincent.menegaux@gmail.com>2023-12-05 10:42:35 +0100
commit9b70ca7b3a1b7bfd3bf434d8b84bde42f5572ca0 (patch)
tree7078a70f7fc5b590c61386f55f4fbcc67e36b0f3 /src/renderer.h
parent48ec7df0fd27fab05c9918e83a3a7da1cc32d7a0 (diff)
downloadengine-9b70ca7b3a1b7bfd3bf434d8b84bde42f5572ca0.tar.gz
added renderer, improved various things
- Added renderer to unify frame buffers - Added FrameBuffer class as a parent for frame buffers' classes - Improved formatting in Makefile.am - Added const modifier in Matrix4's methods
Diffstat (limited to 'src/renderer.h')
-rw-r--r--src/renderer.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/renderer.h b/src/renderer.h
new file mode 100644
index 0000000..211a6fc
--- /dev/null
+++ b/src/renderer.h
@@ -0,0 +1,30 @@
+#ifndef RENDERER_H
+#define RENDERER_H
+
+#include <memory>
+#include "fb/fb.h"
+#include "o3d/tri_vertex.h"
+
+namespace engine {
+
+class Renderer {
+ public:
+ std::unique_ptr<engine::fb::FrameBuffer> fb;
+
+ Renderer(std::unique_ptr<engine::fb::FrameBuffer> fb);
+ void resize(unsigned int w, unsigned int h);
+ unsigned int width() const;
+ unsigned int height() const;
+ void clear();
+ void draw_triangle(engine::o3d::TriangleVertex4 triangle);
+
+ private:
+ std::vector<float> depth_buf;
+ int face_ind;
+
+ void _draw_cropped_triangle(engine::o3d::TriangleVertex3 triangle);
+};
+
+}
+
+#endif // RENDERER_H