Fixed cdf and added Standard Lit

This commit is contained in:
2025-12-29 22:01:44 +09:00
parent e1693764f7
commit adee5acd10
24 changed files with 830 additions and 570 deletions

View File

@@ -7,18 +7,18 @@
#include <stdint.h>
#include <stdbool.h>
#define INVALID_TEXTURE_ID UINT16_MAX
#define INVALID_TEXTURE_ID 0xffff
typedef enum
{
REPEAT,
CLAMP,
WM_REPEAT,
WM_CLAMP,
} wrap_mode_t;
typedef enum
{
NEAREST,
LINEAR,
FM_NEAREST,
FM_LINEAR,
} filter_mode_t;
typedef enum
@@ -66,30 +66,30 @@ typedef struct
typedef struct
{
uint16_t id;
} texture_entity_t;
} texture_handle_t;
bool texture_collection_init(uint16_t size, texture_collection_t* textures);
void texture_collection_resize(texture_collection_t* textures, uint16_t size);
void texture_collection_free(texture_collection_t* textures);
texture_entity_t texture_load(const char* filename, bool srgb, bool mipmap, stride_t stride, texture_collection_t* textures);
texture_handle_t texture_load(const char* filename, bool srgb, bool mipmap, stride_t stride, texture_collection_t* textures);
vec4s texture_get_pixel(const texture_t* texture, vec2s uv, uint8_t lod);
float texture_get_sample_lod(vec3s view_direction, vec3s normal, float distance);
vec4s texture_sample(const texture_t* texture, vec2s uv, vec3s view_direction, vec3s normal, float distance);
vec4s texture_sample_lod(const texture_t* texture, vec2s uv, float lod);
void texture_free(texture_t* texture);
inline texture_entity_t invalid_texture_entity()
inline texture_handle_t invalid_texture_handle()
{
return (texture_entity_t){.id = INVALID_TEXTURE_ID};
return (texture_handle_t){.id = INVALID_TEXTURE_ID};
}
inline bool is_texture_entity_valid(texture_entity_t entity)
inline bool is_texture_entity_valid(texture_handle_t entity)
{
return entity.id != INVALID_TEXTURE_ID;
}
inline texture_t* get_texture(const texture_collection_t* textures, texture_entity_t entity)
inline texture_t* get_texture(const texture_collection_t* textures, texture_handle_t entity)
{
if (entity.id >= textures->count || !is_texture_entity_valid(entity))
{