get all the commands to work
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@@ -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);
|
||||
|
23
projects/apis/metal/src/uniforms/metal_uniform.m
Normal file
23
projects/apis/metal/src/uniforms/metal_uniform.m
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
@@ -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);
|
||||
|
@@ -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); }
|
Reference in New Issue
Block a user