Changed function signatures to remove const qualifiers
Changed several function signatures across multiple files to remove the `const` qualifier from parameters of type `vec3s` for improved flexibility. Changed `material_collection_create` to `material_collection_init` for better initialization handling. Changed `scene_create` to `scene_init` to return a boolean indicating success or failure. Changed `render_target_create` to `render_target_init` for consistent initialization practices. Changed `window_create` to remove `const` from its parameters for consistency. Changed `evaluate_bsdf_directional` and `evaluate_bsdf_const_sky` to remove `const` from their parameters. Changed `sample_bsdf_simple_lit` and `sample_bsdf_pdf_simple_lit` to remove `const` from the `normal` parameter. Changed `scene_render` to take a pointer to `render_target_t` instead of returning it directly. Updated `main.c` to reflect new initialization functions for better memory management.
This commit is contained in:
@@ -11,8 +11,8 @@ typedef struct
|
||||
vec3s wo;
|
||||
}shading_context_t;
|
||||
|
||||
typedef vec3s (*sample_bsdf_f)(const void* data, const vec3s normal, const vec3s wo, sobol_state_t* sobol_state, float* pdf_out);
|
||||
typedef float (*sample_bsdf_pdf_f)(const void* data, const vec3s normal, const vec3s wo, const vec3s wi);
|
||||
typedef vec3s (*sample_bsdf_f)(const void* data, vec3s normal, vec3s wo, sobol_state_t* sobol_state, float* pdf_out);
|
||||
typedef float (*sample_bsdf_pdf_f)(const void* data, vec3s normal, vec3s wo, vec3s wi);
|
||||
typedef vec3s (*evaluate_bsdf_f)(const shading_context_t* context, const void* data);
|
||||
|
||||
typedef struct
|
||||
@@ -39,17 +39,25 @@ typedef struct
|
||||
material_t* buffer;
|
||||
} material_collection_t;
|
||||
|
||||
inline material_collection_t material_collection_create(size_t size)
|
||||
inline bool material_collection_init(size_t size, material_collection_t* materials)
|
||||
{
|
||||
if (size > 254)
|
||||
{
|
||||
size = 254; // Limit the count to 254 to fit in a uint8_t
|
||||
}
|
||||
|
||||
material_collection_t collection = {0};
|
||||
collection.buffer = (material_t*)malloc(size * sizeof(material_t));
|
||||
collection.size = (uint8_t)size;
|
||||
return collection;
|
||||
material_collection_t temp = {0};
|
||||
temp.buffer = (material_t*)malloc(size * sizeof(material_t));
|
||||
if (temp.buffer == NULL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
temp.size = (uint8_t)size;
|
||||
temp.count = 0;
|
||||
*materials = temp;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
inline void material_collection_resize(material_collection_t* materials, size_t size)
|
||||
@@ -76,7 +84,7 @@ inline void material_collection_free(material_collection_t* materials)
|
||||
}
|
||||
}
|
||||
|
||||
inline material_entity_t material_create(const sample_bsdf_f sample, const sample_bsdf_pdf_f sample_pdf, const evaluate_bsdf_f evaluate, void* data, material_collection_t* collection)
|
||||
inline material_entity_t material_create( sample_bsdf_f sample, sample_bsdf_pdf_f sample_pdf, evaluate_bsdf_f evaluate, void* data, material_collection_t* collection)
|
||||
{
|
||||
material_t material = {0};
|
||||
|
||||
@@ -98,7 +106,7 @@ inline material_entity_t material_create(const sample_bsdf_f sample, const sampl
|
||||
return entity;
|
||||
}
|
||||
|
||||
inline vec3s sample_material_bsdf(const material_t* material, const vec3s normal, const vec3s wo, sobol_state_t* sobol_state, float* pdf_out)
|
||||
inline vec3s sample_material_bsdf(const material_t* material, vec3s normal, vec3s wo, sobol_state_t* sobol_state, float* pdf_out)
|
||||
{
|
||||
vec3s wi = glms_vec3_zero();
|
||||
if (material->sample_bsdf != NULL)
|
||||
@@ -109,7 +117,7 @@ inline vec3s sample_material_bsdf(const material_t* material, const vec3s normal
|
||||
return wi;
|
||||
}
|
||||
|
||||
inline float sample_material_bsdf_pdf(const material_t* material, const vec3s normal, const vec3s wo, const vec3s wi)
|
||||
inline float sample_material_bsdf_pdf(const material_t* material, vec3s normal, vec3s wo, vec3s wi)
|
||||
{
|
||||
float pdf = 0.0f;
|
||||
if (material->sample_bsdf_pdf != NULL)
|
||||
|
||||
@@ -11,9 +11,9 @@ typedef struct
|
||||
float metallic;
|
||||
}simple_lit_data_t;
|
||||
|
||||
vec3s sample_bsdf_simple_lit(const void* data, const vec3s normal, const vec3s wo, sobol_state_t* sobol_state, float* pdf_out);
|
||||
vec3s sample_bsdf_simple_lit(const void* data, vec3s normal, vec3s wo, sobol_state_t* sobol_state, float* pdf_out);
|
||||
vec3s evaluate_bsdf_simple_lit(const shading_context_t* context, const void* data);
|
||||
float sample_bsdf_pdf_simple_lit(const void* data, const vec3s normal, const vec3s wo, const vec3s wi);
|
||||
float sample_bsdf_pdf_simple_lit(const void* data, vec3s normal, vec3s wo, vec3s wi);
|
||||
|
||||
inline material_entity_t material_create_simple_lit(simple_lit_data_t* lit_data, material_collection_t* collection)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user