summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorpryazha <pryadeiniv@mail.ru>2025-03-18 11:31:31 +0500
committerpryazha <pryadeiniv@mail.ru>2025-03-18 11:31:31 +0500
commitd65ddd07a43d5ffdcf2ddf90d6f86626cf9b92d8 (patch)
tree672efce6089ec9c1103be0c1b70a28ec415eeeab /libs
parentd64a159d05a45e75870f61c37f0defa94f03793e (diff)
Diffstat (limited to 'libs')
-rw-r--r--libs/common.h49
-rw-r--r--libs/pwyazh/types.h2
2 files changed, 45 insertions, 6 deletions
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 <sys/stat.h>
#include <fcntl.h>
-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 */
diff --git a/libs/pwyazh/types.h b/libs/pwyazh/types.h
index 0704299..988206a 100644
--- a/libs/pwyazh/types.h
+++ b/libs/pwyazh/types.h
@@ -34,9 +34,9 @@ typedef struct {
} MAT4;
typedef struct {
- U8 *memory;
U64 capacity;
U64 used;
+ U8 *memory;
} Arena;
/* NOTE(pryazha): String types */