From 7228b2e1a2d0a8399facce3493d71a3569d250d5 Mon Sep 17 00:00:00 2001 From: mattkae Date: Fri, 23 Dec 2022 12:47:10 -0500 Subject: Improved the makefile considerably --- themes/src/Renderer3d.h | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 themes/src/Renderer3d.h (limited to 'themes/src/Renderer3d.h') diff --git a/themes/src/Renderer3d.h b/themes/src/Renderer3d.h new file mode 100644 index 0000000..7e89c93 --- /dev/null +++ b/themes/src/Renderer3d.h @@ -0,0 +1,56 @@ +#ifndef RENDERER3D_H +#define RENDERER3D_H +#include "mathlib.h" +#include "list.h" +#include "types.h" +#include + +struct Renderer3D; + +struct Vertex3d { + Vector4 position; + Vector4 color; + Vector4 normal; +}; + +struct Mesh3d { + u32 vao; + u32 vbo; + u32 ebo; + matte::List vertices; + matte::List indices; + Mat4x4 model; + + void load(Renderer3D* renderer); + void render(Renderer3D* renderer); + void unload(); +}; + +struct WebglContext; +struct Renderer3D { + WebglContext* context = NULL; + Mat4x4 projection; + Mat4x4 view; + u32 shader; + Vector4 clearColor; + + struct { + i32 position; + i32 color; + i32 normal; + } attributes; + + struct { + i32 projection; + i32 view; + i32 model; + } uniforms; + + void load(WebglContext* context); + void render(); + void unload(); +}; + +Mesh3d Mesh3d_fromObj(Renderer3D* renderer, const char* content, const i32 len); + +#endif -- cgit v1.2.1