From f251613d77baf07684c37e2f955120aa99396057 Mon Sep 17 00:00:00 2001 From: Gregory Wells Date: Tue, 12 Aug 2025 23:00:22 -0400 Subject: [PATCH] opengl uniform pools --- projects/apis/opengl/loader/opengl_device_loader.c | 7 ++++--- .../opengl/src/uniforms/pool/opengl_uniform_pool.c | 14 ++++++++++++++ .../opengl/src/uniforms/pool/opengl_uniform_pool.h | 7 +++++++ 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 projects/apis/opengl/src/uniforms/pool/opengl_uniform_pool.c create mode 100644 projects/apis/opengl/src/uniforms/pool/opengl_uniform_pool.h diff --git a/projects/apis/opengl/loader/opengl_device_loader.c b/projects/apis/opengl/loader/opengl_device_loader.c index bf31a3c..4acea9a 100644 --- a/projects/apis/opengl/loader/opengl_device_loader.c +++ b/projects/apis/opengl/loader/opengl_device_loader.c @@ -3,6 +3,7 @@ #include "presentation_queue/opengl_presentation_queue.h" #include "shaders/opengl_shader_module.h" #include "renderpass/opengl_render_pass_descriptor.h" +#include "uniforms/pool/opengl_uniform_pool.h" gnDeviceFunctions loadOpenGLDeviceFunctions() { return (gnDeviceFunctions){ @@ -31,9 +32,9 @@ gnDeviceFunctions loadOpenGLDeviceFunctions() { ._gnMapBuffer = NULL, ._gnDestroyBuffer = NULL, - ._gnCreateUniformPool = NULL, - ._gnUniformPoolAllocateUniforms = NULL, - ._gnDestroyUniformPool = NULL, + ._gnCreateUniformPool = openglCreateUniformPool, + ._gnUniformPoolAllocateUniforms = openglAllocateUniforms, + ._gnDestroyUniformPool = openglDestroyUniformPool, ._gnUpdateBufferUniform = NULL, ._gnUpdateStorageUniform = NULL, diff --git a/projects/apis/opengl/src/uniforms/pool/opengl_uniform_pool.c b/projects/apis/opengl/src/uniforms/pool/opengl_uniform_pool.c new file mode 100644 index 0000000..3a28de5 --- /dev/null +++ b/projects/apis/opengl/src/uniforms/pool/opengl_uniform_pool.c @@ -0,0 +1,14 @@ +#include "opengl_uniform_pool.h" + +gnReturnCode openglCreateUniformPool(gnUniformPool pool, gnDeviceHandle device) { + return GN_SUCCESS; +} +gnUniform* openglAllocateUniforms(gnUniformPool pool, const gnUniformAllocationInfo allocInfo) { + gnUniform* uniforms = malloc(sizeof(gnUniform) * allocInfo.setCount); + for (int i = 0; i < allocInfo.setCount; i++) + uniforms[i] = malloc(sizeof(struct gnUniform_t)); + return uniforms; +} +void openglDestroyUniformPool(gnUniformPool pool) { + +} diff --git a/projects/apis/opengl/src/uniforms/pool/opengl_uniform_pool.h b/projects/apis/opengl/src/uniforms/pool/opengl_uniform_pool.h new file mode 100644 index 0000000..53fedae --- /dev/null +++ b/projects/apis/opengl/src/uniforms/pool/opengl_uniform_pool.h @@ -0,0 +1,7 @@ +#pragma once +#include "core/src/uniforms/gryphn_uniform_pool.h" + +typedef struct gnPlatformUniformPool_t { gnBool warningAvoider; } gnPlatformUniformPool; +gnReturnCode openglCreateUniformPool(gnUniformPool pool, gnDeviceHandle device); +gnUniform* openglAllocateUniforms(gnUniformPool pool, const gnUniformAllocationInfo allocInfo); +void openglDestroyUniformPool(gnUniformPool pool);