engine/src/obj.h
alessandro bason 5d1fa53405 .
2026-03-06 17:43:59 +01:00

39 lines
797 B
C

#pragma once
#include "libs/sokol_gfx.h"
#include "libs/handmademath.h"
#include "libs/cgltf.h"
#include "colla/colla.h"
#define MAX_SCENE_OBJECTS 64
typedef struct vertex_t vertex_t;
struct vertex_t {
vec3 pos;
vec3 norm;
vec2 tex;
vec2 lightmap;
};
typedef struct obj_t obj_t;
struct obj_t {
char name[16];
sg_bindings bindings;
u16 draw_count;
};
typedef struct scene_t scene_t;
struct scene_t {
obj_t objects[MAX_SCENE_OBJECTS];
int object_count;
};
typedef bool (*obj_material_cb)(arena_t scratch, cgltf_material *material, sg_image *out, void *userdata);
typedef struct obj_desc_t obj_desc_t;
struct obj_desc_t {
obj_material_cb material_cb;
void *userdata;
};
scene_t obj_load_gltf(arena_t scratch, strview_t filename, obj_desc_t *desc);