add support for sets within uniforms
This commit is contained in:
@@ -89,6 +89,7 @@ typedef struct gnGraphicsPipelineInfo_t {
|
||||
uint32_t shaderModuleCount;
|
||||
gnShaderModuleHandle* shaderModules;
|
||||
gnShaderInputLayout shaderInputLayout;
|
||||
|
||||
gnUniformLayout uniformLayout;
|
||||
} gnGraphicsPipelineInfo;
|
||||
|
||||
|
@@ -14,7 +14,12 @@ typedef struct gnUniformBinding {
|
||||
gnShaderModuleStage stage;
|
||||
} gnUniformBinding;
|
||||
|
||||
typedef struct gnUniformLayout {
|
||||
typedef struct gnUniformSet {
|
||||
uint32_t uniformBindingCount;
|
||||
gnUniformBinding* uniformBindings;
|
||||
} gnUniformSet;
|
||||
|
||||
typedef struct gnUniformLayout {
|
||||
uint32_t setCount;
|
||||
gnUniformSet* sets;
|
||||
} gnUniformLayout;
|
||||
|
@@ -13,12 +13,12 @@ gnReturnCode gnCreateUniformPool(gnUniformPool* pool, gnDeviceHandle device) {
|
||||
// you own this memory now
|
||||
gnUniformArrayList gnUniformPoolAllocateUniforms(gnUniformPool pool, gnUniformAllocationInfo allocInfo) {
|
||||
gnUniform* uniforms = pool->device->deviceFunctions->_gnUniformPoolAllocateUniforms(pool, allocInfo);
|
||||
for (int i = 0; i < allocInfo.layoutCount; i++)
|
||||
for (int i = 0; i < allocInfo.setCount; i++)
|
||||
uniforms[i]->pool = pool;
|
||||
|
||||
gnUniformArrayList list = gnUniformArrayListCreate();
|
||||
gnUniformArrayListResize(&list, allocInfo.layoutCount);
|
||||
for (int i = 0; i < allocInfo.layoutCount; i++) list.data[i] = uniforms[i];
|
||||
gnUniformArrayListResize(&list, allocInfo.setCount);
|
||||
for (int i = 0; i < allocInfo.setCount; i++) list.data[i] = uniforms[i];
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@@ -12,8 +12,8 @@ struct gnUniformPool_t {
|
||||
#endif
|
||||
|
||||
typedef struct gnUniformAllocationInfo {
|
||||
const uint32_t layoutCount;
|
||||
const gnUniformLayout* layouts;
|
||||
const uint32_t setCount;
|
||||
const gnUniformSet* sets;
|
||||
} gnUniformAllocationInfo;
|
||||
|
||||
gnReturnCode gnCreateUniformPool(gnUniformPool* pool, gnDeviceHandle device);
|
||||
|
Reference in New Issue
Block a user