allow binding uniform at set

This commit is contained in:
Greg Wells
2025-06-08 15:26:06 -04:00
parent df0cbb78d0
commit 93d81966e3
5 changed files with 7 additions and 7 deletions

View File

@@ -114,7 +114,7 @@ void gnCommandDrawIndexedFn(gnCommandBufferHandle buffer, gnIndexType type, int
]; ];
} }
void gnCommandBindUniformFn(gnCommandBufferHandle buffer, gnUniform uniform) { void gnCommandBindUniformFn(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set) {
id<MTLRenderCommandEncoder> encoder = (id<MTLRenderCommandEncoder>)buffer->commandBuffer->encoder; id<MTLRenderCommandEncoder> encoder = (id<MTLRenderCommandEncoder>)buffer->commandBuffer->encoder;
if (uniform->uniform->type == GN_UNIFORM_BUFFER_DESCRIPTOR) { if (uniform->uniform->type == GN_UNIFORM_BUFFER_DESCRIPTOR) {
gnBufferUniformInfo info = *(gnBufferUniformInfo*)uniform->uniform->data; gnBufferUniformInfo info = *(gnBufferUniformInfo*)uniform->uniform->data;

View File

@@ -75,11 +75,11 @@ void gnCommandDrawIndexedFn(gnCommandBufferHandle buffer, gnIndexType type, int
buffer->commandBuffer->changedBuffer = gnFalse; buffer->commandBuffer->changedBuffer = gnFalse;
} }
void gnCommandBindUniformFn(gnCommandBufferHandle buffer, gnUniform uniform) { void gnCommandBindUniformFn(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set) {
vkCmdBindDescriptorSets( vkCmdBindDescriptorSets(
buffer->commandBuffer->buffer, buffer->commandBuffer->buffer,
VK_PIPELINE_BIND_POINT_GRAPHICS, VK_PIPELINE_BIND_POINT_GRAPHICS,
buffer->commandBuffer->boundGraphicsPipeline->graphicsPipeline->pipelineLayout, 0, 1, buffer->commandBuffer->boundGraphicsPipeline->graphicsPipeline->pipelineLayout, set, 1,
&uniform->uniform->set, 0, NULL &uniform->uniform->set, 0, NULL
); );
} }

View File

@@ -17,8 +17,8 @@ void gnCommandSetViewport(struct gnCommandBuffer_t* buffer, struct gnViewport_t
void gnCommandSetScissor(struct gnCommandBuffer_t* buffer, struct gnScissor_t scissor) { void gnCommandSetScissor(struct gnCommandBuffer_t* buffer, struct gnScissor_t scissor) {
buffer->commandPool->commandFunctions->_gnCommandSetScissor(buffer, scissor); buffer->commandPool->commandFunctions->_gnCommandSetScissor(buffer, scissor);
} }
void gnCommandBindUniform(gnCommandBufferHandle buffer, gnUniform uniform) { void gnCommandBindUniform(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set) {
buffer->commandPool->commandFunctions->_gnCommandBindUniform(buffer, uniform); buffer->commandPool->commandFunctions->_gnCommandBindUniform(buffer, uniform, set);
} }
void gnCommandBindBuffer(gnCommandBufferHandle buffer, gnBufferHandle bufferToBind, gnBufferType type) { void gnCommandBindBuffer(gnCommandBufferHandle buffer, gnBufferHandle bufferToBind, gnBufferType type) {
buffer->commandPool->commandFunctions->_gnCommandBindBuffer(buffer, bufferToBind, type); buffer->commandPool->commandFunctions->_gnCommandBindBuffer(buffer, bufferToBind, type);

View File

@@ -8,7 +8,7 @@ void gnCommandEndRenderPass(gnCommandBufferHandle buffer);
void gnCommandBindGraphicsPipeline(gnCommandBufferHandle buffer, gnGraphicsPipelineHandle graphicsPipeline); void gnCommandBindGraphicsPipeline(gnCommandBufferHandle buffer, gnGraphicsPipelineHandle graphicsPipeline);
void gnCommandSetViewport(gnCommandBufferHandle buffer, gnViewport viewport); void gnCommandSetViewport(gnCommandBufferHandle buffer, gnViewport viewport);
void gnCommandSetScissor(gnCommandBufferHandle buffer, gnScissor scissor); void gnCommandSetScissor(gnCommandBufferHandle buffer, gnScissor scissor);
void gnCommandBindUniform(gnCommandBufferHandle buffer, gnUniform uniform); void gnCommandBindUniform(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set);
#include "core/buffers/gryphn_buffer.h" #include "core/buffers/gryphn_buffer.h"
void gnCommandBindBuffer(gnCommandBufferHandle buffer, gnBufferHandle bufferToBind, gnBufferType type); void gnCommandBindBuffer(gnCommandBufferHandle buffer, gnBufferHandle bufferToBind, gnBufferType type);

View File

@@ -118,7 +118,7 @@ typedef struct gnCommandFunctions_t {
void (*_gnCommandBindGraphicsPipeline)(gnCommandBufferHandle buffer, gnGraphicsPipelineHandle graphicsPipeline); void (*_gnCommandBindGraphicsPipeline)(gnCommandBufferHandle buffer, gnGraphicsPipelineHandle graphicsPipeline);
void (*_gnCommandSetViewport)(gnCommandBufferHandle buffer, gnViewport viewport); void (*_gnCommandSetViewport)(gnCommandBufferHandle buffer, gnViewport viewport);
void (*_gnCommandSetScissor)(gnCommandBufferHandle buffer, gnScissor scissor); void (*_gnCommandSetScissor)(gnCommandBufferHandle buffer, gnScissor scissor);
void (*_gnCommandBindUniform)(gnCommandBufferHandle buffer, gnUniform uniform); void (*_gnCommandBindUniform)(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set);
void (*_gnCommandBindBuffer)(gnCommandBufferHandle buffer, gnBufferHandle bufferToBind, gnBufferType type); void (*_gnCommandBindBuffer)(gnCommandBufferHandle buffer, gnBufferHandle bufferToBind, gnBufferType type);
void (*_gnCommandDraw)(gnCommandBufferHandle buffer, int vertexCount, int firstVertex, int instanceCount, int firstInstance); void (*_gnCommandDraw)(gnCommandBufferHandle buffer, int vertexCount, int firstVertex, int instanceCount, int firstInstance);