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:
@@ -3,27 +3,33 @@
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
render_target_t render_target_create(uint32_t width, uint32_t height)
|
||||
bool render_target_init(uint32_t width, uint32_t height, render_target_t* render_target)
|
||||
|
||||
{
|
||||
render_target_t target;
|
||||
target.width = width;
|
||||
target.height = height;
|
||||
*render_target = (render_target_t){0};
|
||||
render_target->width = width;
|
||||
render_target->height = height;
|
||||
|
||||
size_t size_of_pixel = sizeof(vec4s);
|
||||
size_t buffer_size = (size_t)width * height * size_of_pixel;
|
||||
target.buffer = (vec4s*)malloc(buffer_size);
|
||||
vec4s* buffer = (vec4s*)malloc(buffer_size);
|
||||
if (buffer == NULL)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
memset(target.buffer, 0, buffer_size);
|
||||
memset(buffer, 0, buffer_size);
|
||||
|
||||
for (size_t i = 0; i < buffer_size / size_of_pixel; i++)
|
||||
{
|
||||
target.buffer[i].w = 1.0;
|
||||
buffer[i].w = 1.0;
|
||||
}
|
||||
|
||||
return target;
|
||||
render_target->buffer = buffer;
|
||||
return true;
|
||||
}
|
||||
|
||||
vec4s render_target_get_pixel(render_target_t* render_target, uint32_t x, uint32_t y)
|
||||
vec4s render_target_get_pixel(const render_target_t* render_target, uint32_t x, uint32_t y)
|
||||
{
|
||||
if (x < render_target->width && y < render_target->height)
|
||||
{
|
||||
@@ -47,6 +53,10 @@ unsigned char* render_target_to_char(render_target_t* render_target)
|
||||
{
|
||||
size_t buffer_size = (size_t)render_target->width * render_target->height * 4; // 4 bytes for RGBA
|
||||
unsigned char* char_buffer = (unsigned char*)malloc(buffer_size);
|
||||
if (char_buffer == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (uint32_t y = 0; y < render_target->height; y++)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user