diff options
author | vimene <vincent.menegaux@gmail.com> | 2023-12-05 10:42:35 +0100 |
---|---|---|
committer | vimene <vincent.menegaux@gmail.com> | 2023-12-05 10:42:35 +0100 |
commit | 9b70ca7b3a1b7bfd3bf434d8b84bde42f5572ca0 (patch) | |
tree | 7078a70f7fc5b590c61386f55f4fbcc67e36b0f3 /src/renderer.h | |
parent | 48ec7df0fd27fab05c9918e83a3a7da1cc32d7a0 (diff) | |
download | engine-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.h | 30 |
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 |