#ifndef RENDERER_H #define RENDERER_H #include #include "fb/fb.h" #include "o3d/tri.h" #include "o3d/tri_deriv.h" namespace engine { class Renderer { public: std::unique_ptr fb; Renderer(std::unique_ptr fb); void resize(unsigned int w, unsigned int h); unsigned int width() const; unsigned int height() const; void clear(); void draw_triangle(o3d::Triangle triangle); private: std::vector depth_buf; void _draw_cropped_triangle(const o3d::Triangle& root, const o3d::TriangleDerived& triangle); }; } #endif // RENDERER_H