#include "Rendering/RenderTarget.h" #include #include render_target_t render_target_create(uint32_t width, uint32_t height) { render_target_t target; target.width = width; target.height = height; size_t buffer_size = (size_t)width * height * sizeof(vec4s); target.buffer = (vec4s*)malloc(buffer_size); memset(target.buffer, 0, buffer_size); return target; } vec4s render_target_get_pixel(render_target_t* render_target, uint32_t x, uint32_t y) { if (x < render_target->width && y < render_target->height) { size_t index = (size_t)y * render_target->width + x; return render_target->buffer[index]; } return (vec4s){0.0f, 0.0f, 0.0f, 0.0f}; // Return black if out of bounds } void render_target_set_pixel(render_target_t* render_target, uint32_t x, uint32_t y, vec4s color) { if (x < render_target->width && y < render_target->height) { size_t index = (size_t)y * render_target->width + x; render_target->buffer[index] = color; } } void render_target_free(render_target_t* target) { if (target->buffer != NULL) { free(target->buffer); target->buffer = NULL; } }