get all the commands to work

This commit is contained in:
Greg Wells
2025-06-29 14:40:09 -04:00
parent 67e5e6e36a
commit 8211876837
37 changed files with 295 additions and 154 deletions

View File

@@ -1,12 +0,0 @@
#include <uniforms/gryphn_uniform.h>
#include "metal_uniform.h"
void gnUpdateBufferUniformFn(gnUniform uniform, gnBufferUniformInfo* info) {
for (int i = 0; i < uniform->uniform->bindingCount; i++) {
if (uniform->uniform->bindings[i].binding == info->binding) {
uniform->uniform->bindings[i].data = malloc(sizeof(gnBufferUniformInfo));
memcpy(uniform->uniform->bindings[i].data, info, sizeof(gnBufferUniformInfo));
break;
}
}
}

View File

@@ -12,3 +12,6 @@ typedef struct gnPlatformUniform_t {
uint32_t bindingCount;
metalUniformBinding* bindings;
} gnPlatformUniform;
void updateMetalBufferUniform(gnUniform uniform, gnBufferUniformInfo* info);
void updateMetalImageUniform(gnUniform uniform, gnImageUniformInfo* info);

View File

@@ -0,0 +1,23 @@
#include <uniforms/gryphn_uniform.h>
#include "metal_uniform.h"
void updateMetalBufferUniform(gnUniform uniform, gnBufferUniformInfo* info) {
for (int i = 0; i < uniform->uniform->bindingCount; i++) {
if (uniform->uniform->bindings[i].binding == info->binding) {
uniform->uniform->bindings[i].data = malloc(sizeof(gnBufferUniformInfo));
memcpy(uniform->uniform->bindings[i].data, info, sizeof(gnBufferUniformInfo));
break;
}
}
}
void updateMetalImageUniform(gnUniform uniform, gnImageUniformInfo* info) {
for (int i = 0; i < uniform->uniform->bindingCount; i++) {
if (uniform->uniform->bindings[i].binding == info->binding) {
uniform->uniform->bindings[i].data = malloc(sizeof(gnImageUniformInfo));
memcpy(uniform->uniform->bindings[i].data, info, sizeof(gnImageUniformInfo));
break;
}
}
}

View File

@@ -1,5 +1,8 @@
#pragma once
#include <vulkan/vulkan.h>
#include <uniforms/gryphn_uniform_pool.h>
typedef struct gnPlatformUniformPool_t {} gnPlatformUniformPool;
gnReturnCode createMetalUniformPool(gnUniformPool pool, gnDeviceHandle device);
gnUniform* allocateMetalUniforms(gnUniformPool pool, const gnUniformAllocationInfo allocInfo);
void destroyMetalUniformPool(gnUniformPool pool);

View File

@@ -2,11 +2,11 @@
#include <uniforms/gryphn_uniform.h>
#include "metal_uniform.h"
gnReturnCode gnCreateUniformPoolFn(gnUniformPool pool, gnDeviceHandle device) {
gnReturnCode createMetalUniformPool(gnUniformPool pool, gnDeviceHandle device) {
return GN_SUCCESS;
}
gnUniform* gnUniformPoolAllocateUniformsFn(gnUniformPool pool, const gnUniformAllocationInfo allocInfo) {
gnUniform* allocateMetalUniforms(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));
@@ -20,4 +20,4 @@ gnUniform* gnUniformPoolAllocateUniformsFn(gnUniformPool pool, const gnUniformAl
return uniforms;
}
void gnDestroyUniformPoolFn(gnUniformPool pool) { }
void destroyMetalUniformPool(gnUniformPool pool) { free(pool->uniformPool); }