push constants
This commit is contained in:
@@ -25,6 +25,9 @@ void gnCommandBindUniform(gnCommandBufferHandle buffer, gnUniform uniform, uint3
|
||||
void gnCommandBindBuffer(gnCommandBufferHandle buffer, gnBufferHandle bufferToBind, gnBufferType type) {
|
||||
buffer->commandPool->commandFunctions->_gnCommandBindBuffer(buffer, bufferToBind, type);
|
||||
}
|
||||
void gnCommandPushConstant(gnCommandBufferHandle buffer, gnPushConstantLayout layout, void* data) {
|
||||
buffer->commandPool->commandFunctions->_gnCommandPushConstant(buffer, layout, data);
|
||||
}
|
||||
void gnCommandDraw(struct gnCommandBuffer_t* buffer, int vertexCount, int firstVertex, int instanceCount, int firstInstance) {
|
||||
buffer->commandPool->commandFunctions->_gnCommandDraw(buffer, vertexCount, firstVertex, instanceCount, firstInstance);
|
||||
}
|
||||
|
@@ -9,6 +9,7 @@ void gnCommandBindGraphicsPipeline(gnCommandBufferHandle buffer, gnGraphicsPipel
|
||||
void gnCommandSetViewport(gnCommandBufferHandle buffer, gnViewport viewport);
|
||||
void gnCommandSetScissor(gnCommandBufferHandle buffer, gnScissor scissor);
|
||||
void gnCommandBindUniform(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set);
|
||||
void gnCommandPushConstant(gnCommandBufferHandle buffer, gnPushConstantLayout layout, void* data);
|
||||
|
||||
#include "core/buffers/gryphn_buffer.h"
|
||||
void gnCommandBindBuffer(gnCommandBufferHandle buffer, gnBufferHandle bufferToBind, gnBufferType type);
|
||||
|
@@ -118,6 +118,7 @@ typedef struct gnCommandFunctions_t {
|
||||
void (*_gnCommandSetViewport)(gnCommandBufferHandle buffer, gnViewport viewport);
|
||||
void (*_gnCommandSetScissor)(gnCommandBufferHandle buffer, gnScissor scissor);
|
||||
void (*_gnCommandBindUniform)(gnCommandBufferHandle buffer, gnUniform uniform, uint32_t set);
|
||||
void (*_gnCommandPushConstant)(gnCommandBufferHandle buffer, gnPushConstantLayout layout, void* data);
|
||||
|
||||
void (*_gnCommandBindBuffer)(gnCommandBufferHandle buffer, gnBufferHandle bufferToBind, gnBufferType type);
|
||||
void (*_gnCommandDraw)(gnCommandBufferHandle buffer, int vertexCount, int firstVertex, int instanceCount, int firstInstance);
|
||||
|
@@ -121,6 +121,7 @@ void gnLoadCommandFunctions(struct gnDynamicLibrary_t* lib, struct gnCommandFunc
|
||||
gnLoadDLLFunction(lib, functions->_gnCommandSetScissor, "gnCommandSetScissorFn");
|
||||
gnLoadDLLFunction(lib, functions->_gnCommandBindUniform, "gnCommandBindUniformFn");
|
||||
gnLoadDLLFunction(lib, functions->_gnCommandBindBuffer, "gnCommandBindBufferFn");
|
||||
gnLoadDLLFunction(lib, functions->_gnCommandPushConstant, "gnCommandPushConstantFn");
|
||||
gnLoadDLLFunction(lib, functions->_gnCommandDraw, "gnCommandDrawFn");
|
||||
gnLoadDLLFunction(lib, functions->_gnCommandDrawIndexed, "gnCommandDrawIndexedFn");
|
||||
}
|
||||
|
@@ -19,7 +19,15 @@ typedef struct gnUniformSet {
|
||||
gnUniformBinding* uniformBindings;
|
||||
} gnUniformSet;
|
||||
|
||||
typedef struct gnPushConstantLayout {
|
||||
gnShaderModuleStage stage;
|
||||
size_t size;
|
||||
size_t offset;
|
||||
} gnPushConstantLayout;
|
||||
|
||||
typedef struct gnUniformLayout {
|
||||
uint32_t setCount;
|
||||
gnUniformSet* sets;
|
||||
uint32_t pushConstantCount;
|
||||
gnPushConstantLayout* pushConstants;
|
||||
} gnUniformLayout;
|
||||
|
Reference in New Issue
Block a user