allow binding uniform at set
This commit is contained in:
@@ -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;
|
||||||
|
@@ -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
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
@@ -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);
|
||||||
|
@@ -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);
|
||||||
|
Reference in New Issue
Block a user