From d65ddd07a43d5ffdcf2ddf90d6f86626cf9b92d8 Mon Sep 17 00:00:00 2001 From: pryazha Date: Tue, 18 Mar 2025 11:31:31 +0500 Subject: hdr --- libs/common.h | 49 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 5 deletions(-) (limited to 'libs/common.h') diff --git a/libs/common.h b/libs/common.h index b12e4a1..b535c72 100644 --- a/libs/common.h +++ b/libs/common.h @@ -12,7 +12,7 @@ #include #include -U8 * read_entire_file(const char *filename) +U8 *read_entire_file(const char *filename) { U8 *result; FILE *f; @@ -40,7 +40,7 @@ U8 * read_entire_file(const char *filename) return(result); } -void * mmap_file(size_t *len, const char *filename) +void *mmap_file(size_t *len, const char *filename) { struct stat sb; char* p; @@ -95,7 +95,33 @@ void read_entire_file_mmap(void* ctx, const char* filename, const int is_mtl, *len = data_len; } -Mesh * mesh_load_obj(Arena *arena, const char *filename) +Mesh *mesh_gen_quad(Arena *arena) +{ + Mesh *m; + Vertex verts[4]; + U32 ids[6]; + + m = 0; + + verts[0] = vertex(v3f( 1.0f, 1.0f, 0.0f), v3f_zero(), v2f(1.0f, 1.0f)); + verts[1] = vertex(v3f(-1.0f, 1.0f, 0.0f), v3f_zero(), v2f(0.0f, 1.0f)); + verts[2] = vertex(v3f(-1.0f, -1.0f, 0.0f), v3f_zero(), v2f(0.0f, 0.0f)); + verts[3] = vertex(v3f( 1.0f, -1.0f, 0.0f), v3f_zero(), v2f(1.0f, 0.0f)); + + ids[0] = 0; + ids[1] = 1; + ids[2] = 2; + + ids[3] = 0; + ids[4] = 2; + ids[5] = 3; + + m = mesh_init(arena, verts, 4, ids, 6); + + return m; +} + +Mesh *mesh_load_obj(Arena *arena, const char *filename) { tinyobj_attrib_t attrib; tinyobj_shape_t *shapes = 0; @@ -767,9 +793,22 @@ V3F get_dv_camera_first_person(Input *input, Camera *camera, return(dv); } +MAT4 camera_persp(Camera camera, F32 ar) +{ + MAT4 result; + result = perspective(camera.fovx, ar, camera.near, camera.far); + return result; +} + typedef struct { - Camera camera; - F32 dt; + Arena *arena; + + Input input; + + Camera camera; + V3F camera_dp; + + F32 dt; } State; #endif /* COMMON_H */ -- cgit v1.2.3