From 818f818f583881156eb279c71b1359bf2c4f3580 Mon Sep 17 00:00:00 2001 From: pryazha Date: Sun, 12 Oct 2025 15:25:23 +0500 Subject: change identation, maybe will change back, add own gl functions loading, and glx example --- types.h | 231 ---------------------------------------------------------------- 1 file changed, 231 deletions(-) delete mode 100644 types.h (limited to 'types.h') diff --git a/types.h b/types.h deleted file mode 100644 index 6fd5799..0000000 --- a/types.h +++ /dev/null @@ -1,231 +0,0 @@ -#define WINDOW_DEPTH_TEST 0x1 -#define WINDOW_MULTISAMPLE 0x10 - -typedef struct { - i32 width; - i32 height; - const char *name; - u32 flags; -} prge_window_t; - -typedef enum { - key_state_release = 0, - key_state_press = 1 -} key_state_enum; - -typedef struct { - key_state_enum last; - key_state_enum state; -} prge_key_t; - -typedef struct { - v2 pos; - v2 last; - v2 offset; - i32 first; - i32 capture; - prge_key_t left; - prge_key_t right; -} mouse_t; - -typedef struct { - mouse_t mouse; - - prge_key_t move_right; - prge_key_t move_forward; - prge_key_t move_left; - prge_key_t move_backward; - prge_key_t move_up; - prge_key_t move_down; - - prge_key_t jump; - prge_key_t action_right; - prge_key_t action_up; - prge_key_t action_left; - prge_key_t action_down; - prge_key_t exit; - - f32 dt; -} input_t; - -typedef enum { - texture_type_r = 1, - texture_type_rgb = 3, - texture_type_rgba = 4 -} texture_type_enum; - -typedef struct { - u32 id; - const char *name; - texture_type_enum type; - i32 width; - i32 height; - u8 *data; -} texture_t; - -#define SHADER_POSITION_LOCATION 0 -#define SHADER_NORMAL_LOCATION 1 -#define SHADER_TEXCOORDS_LOCATION 2 - -#define SHADER_PROJECTION_MATRIX "projection" -#define SHADER_VIEW_MATRIX "view" -#define SHADER_MODEL_MATRIX "model" - -#define MAX_SHADER_LOG 512 - -typedef struct { - u32 id; - char log[MAX_SHADER_LOG]; -} shader_t; - -typedef struct { - v3 position; - v3 normal; - v2 texcoords; -} vertex_t; - -#define DEFAULT_TRANSFORM (transform_t){V3_ZERO, V3_ZERO, V3_ONE} - -typedef struct { - v3 position; - v3 rotation; - v3 scale; -} transform_t; - -#define MAX_TEXTURE_PER_MESH 2 - -typedef struct { - transform_t transform; - - i32 nvertices; - vertex_t *vertices; - - i32 nindices; - u32 *indices; - - i32 ntextures; - texture_t textures[MAX_TEXTURE_PER_MESH]; - - u32 vao; - u32 vbo; - u32 ebo; -} mesh_t; - -typedef struct { - transform_t transform; - i32 nmeshes; - mesh_t *meshes; -} model_t; - -#define BBOX_UNIT (bbox_t){{-0.5f, -0.5f, -0.5f}, {0.5f, 0.5f, 0.5f}} -#define BBOX_ZERO (bbox_t){V3_ZERO, V3_ZERO} - -typedef struct { - v3 start; - v3 end; -} bbox_t; - -#define ENTITY_COLLIDE (1) -#define ENTITY_MOVE (1 << 1) -#define ENTITY_ALPHA (1 << 2) - -typedef struct { - u32 flags; - - model_t model; - - v3 position; - v3 velocity; - bbox_t bbox; -} entity_t; - -#define MAX_ENTITIES 4 - -typedef struct enode_t { - i32 id; - entity_t entity; - struct enode_t *next; - struct enode_t *prev; -} enode_t; - -typedef struct { - i32 count; - enode_t nodes[MAX_ENTITIES]; - struct enode_t *first; - struct enode_t *last; -} elist_t; - -#define DEFAULT_CAMERA (camera_t){v3_ZERO, 90.0f, 0.1f, 1000.0f, V3_ZERO} - -typedef struct { - v3 position; - - f32 fov; - - f32 near; - f32 far; - - v3 angles; -} camera_t; - -typedef struct { - i32 channels; - i32 freq; - i32 bps; - - i32 size; - unsigned char *data; - - const char *name; -} sound_t; - -typedef struct sound_queue_node_t { - sound_t *sound; - struct sound_queue_node_t *next; - struct sound_queue_node_t *prev; -} sound_queue_node_t; - -typedef struct { - i32 count; - struct sound_queue_node_t *first; - struct sound_queue_node_t *last; -} sound_queue_t; - -#define ARENA_SIZE megabytes(64) -#define FRAME_ARENA_SIZE megabytes(16) - -#define MAX_SOUNDS_LOADED 8 -#define MAX_SOUNDS_PLAYING 4 - -typedef struct { - i32 should_close; - - arena_t arena; - arena_t frame_arena; - - input_t input; - - /* TODO(pryazha): Probably a bad idea to have only one window 🙃*/ - prge_window_t window; - - sound_t sounds[MAX_SOUNDS_LOADED]; - sound_queue_node_t sound_queue_nodes[MAX_SOUNDS_PLAYING]; - sound_queue_t sound_queue; - - elist_t entities; - - const char *dir; -} prge_context_t; - -typedef enum {ui_list, ui_stack} ui_layout_enum; - -typedef struct { - prge_window_t window; - input_t input; - shader_t shader; - rect_t rect; - ui_layout_enum layout; - v2 last; - arena_t *arena; - f32 padding; -} ui_t; -- cgit v1.2.3-70-g09d2