From d48332fdcdd1c1ab5213f43296289a07e1c9f161 Mon Sep 17 00:00:00 2001 From: Gregory Wells Date: Tue, 12 Aug 2025 23:09:39 -0400 Subject: [PATCH] write the functions for the command pool/buffers --- projects/apis/opengl/loader/opengl_commands_loader.c | 8 ++++++++ projects/apis/opengl/loader/opengl_device_loader.c | 5 +++-- .../opengl/src/commands/buffers/opengl_command_buffer.c | 6 ++++++ .../opengl/src/commands/buffers/opengl_command_buffer.h | 7 +++++++ .../apis/opengl/src/commands/pool/opengl_command_pool.c | 6 ++++++ .../apis/opengl/src/commands/pool/opengl_command_pool.h | 6 ++++++ projects/loader/src/gryphn_loader.c | 4 +++- 7 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 projects/apis/opengl/loader/opengl_commands_loader.c create mode 100644 projects/apis/opengl/src/commands/buffers/opengl_command_buffer.c create mode 100644 projects/apis/opengl/src/commands/buffers/opengl_command_buffer.h create mode 100644 projects/apis/opengl/src/commands/pool/opengl_command_pool.c create mode 100644 projects/apis/opengl/src/commands/pool/opengl_command_pool.h diff --git a/projects/apis/opengl/loader/opengl_commands_loader.c b/projects/apis/opengl/loader/opengl_commands_loader.c new file mode 100644 index 0000000..a74cf03 --- /dev/null +++ b/projects/apis/opengl/loader/opengl_commands_loader.c @@ -0,0 +1,8 @@ +#include "opengl_loader.h" +#include "commands/buffers/opengl_command_buffer.h" + +gnCommandFunctions loadOpenGLCommandFunctions() { + return (gnCommandFunctions) { + ._gnCommandPoolAllocateCommandBuffers = openglCommandPoolAllocateCommandBuffers + }; +} diff --git a/projects/apis/opengl/loader/opengl_device_loader.c b/projects/apis/opengl/loader/opengl_device_loader.c index 4acea9a..2040df5 100644 --- a/projects/apis/opengl/loader/opengl_device_loader.c +++ b/projects/apis/opengl/loader/opengl_device_loader.c @@ -4,6 +4,7 @@ #include "shaders/opengl_shader_module.h" #include "renderpass/opengl_render_pass_descriptor.h" #include "uniforms/pool/opengl_uniform_pool.h" +#include "commands/pool/opengl_command_pool.h" gnDeviceFunctions loadOpenGLDeviceFunctions() { return (gnDeviceFunctions){ @@ -23,8 +24,8 @@ gnDeviceFunctions loadOpenGLDeviceFunctions() { ._gnCreateFramebuffer = NULL, ._gnDestroyFramebuffer = NULL, - ._gnCreateCommandPool = NULL, - ._gnDestroyCommandPool = NULL, + ._gnCreateCommandPool = openglCreateCommandPool, + ._gnDestroyCommandPool = openglDestroyCommandPool, ._gnCreateBuffer = NULL, ._gnBufferData = NULL, diff --git a/projects/apis/opengl/src/commands/buffers/opengl_command_buffer.c b/projects/apis/opengl/src/commands/buffers/opengl_command_buffer.c new file mode 100644 index 0000000..06ffba2 --- /dev/null +++ b/projects/apis/opengl/src/commands/buffers/opengl_command_buffer.c @@ -0,0 +1,6 @@ +#include "opengl_command_buffer.h" + +gnReturnCode openglCommandPoolAllocateCommandBuffers(gnCommandBufferHandle* commandBuffers, uint32_t count, gnCommandPoolHandle pool) { + + return GN_SUCCESS; +} diff --git a/projects/apis/opengl/src/commands/buffers/opengl_command_buffer.h b/projects/apis/opengl/src/commands/buffers/opengl_command_buffer.h new file mode 100644 index 0000000..5b7b844 --- /dev/null +++ b/projects/apis/opengl/src/commands/buffers/opengl_command_buffer.h @@ -0,0 +1,7 @@ +#pragma once +#include "core/src/command/command_buffer/gryphn_command_buffer.h" + +typedef struct gnPlatformCommandBuffer_t { + +} gnPlatformCommandBuffer; +gnReturnCode openglCommandPoolAllocateCommandBuffers(gnCommandBufferHandle* commandBuffers, uint32_t count, gnCommandPoolHandle pool); diff --git a/projects/apis/opengl/src/commands/pool/opengl_command_pool.c b/projects/apis/opengl/src/commands/pool/opengl_command_pool.c new file mode 100644 index 0000000..4da4ab6 --- /dev/null +++ b/projects/apis/opengl/src/commands/pool/opengl_command_pool.c @@ -0,0 +1,6 @@ +#include "opengl_command_pool.h" + +gnReturnCode openglCreateCommandPool(gnCommandPool commandPool, gnDevice device, gnCommandPoolInfo info) { + return GN_SUCCESS; +} +void openglDestroyCommandPool(gnCommandPool commandPool) {} diff --git a/projects/apis/opengl/src/commands/pool/opengl_command_pool.h b/projects/apis/opengl/src/commands/pool/opengl_command_pool.h new file mode 100644 index 0000000..7d7f76a --- /dev/null +++ b/projects/apis/opengl/src/commands/pool/opengl_command_pool.h @@ -0,0 +1,6 @@ +#pragma once +#include "core/src/command/command_pool/gryphn_command_pool.h" + +typedef struct gnPlatformCommandPool_t gnPlatformCommandPool; +gnReturnCode openglCreateCommandPool(gnCommandPool commandPool, gnDevice device, gnCommandPoolInfo info); +void openglDestroyCommandPool(gnCommandPool commandPool); diff --git a/projects/loader/src/gryphn_loader.c b/projects/loader/src/gryphn_loader.c index b1b350d..5da7871 100644 --- a/projects/loader/src/gryphn_loader.c +++ b/projects/loader/src/gryphn_loader.c @@ -84,7 +84,9 @@ gnCommandFunctions loadAPICommandFunctions(gnRenderingAPI api) { case GN_RENDERINGAPI_SOFTWARE: return (gnCommandFunctions){ NULL }; case GN_RENDERINGAPI_DIRECTX11: return (gnCommandFunctions){ NULL }; case GN_RENDERINGAPI_DIRECTX12: return (gnCommandFunctions){ NULL }; - case GN_RENDERINGAPI_OPENGL: return (gnCommandFunctions){ NULL }; +#ifdef GN_API_OPENGL + case GN_RENDERINGAPI_OPENGL: return loadOpenGLCommandFunctions(); +#endif #ifdef GN_API_METAL case GN_RENDERINGAPI_METAL: return loadMetalCommandFunctions(); #endif