buffer creation and binding
This commit is contained in:
@@ -49,6 +49,12 @@ gnReturnCode gnCreateBufferFn(gnBufferHandle buffer, gnOutputDeviceHandle device
|
||||
vkBindBufferMemory(device->outputDevice->device, buffer->buffer->buffer, buffer->buffer->bufferMemory, 0);
|
||||
return GN_SUCCESS;
|
||||
}
|
||||
void gnBufferDataFn(gnBufferHandle buffer, size_t dataSize, void* data) {
|
||||
void* bufferData;
|
||||
vkMapMemory(buffer->device->outputDevice->device, buffer->buffer->bufferMemory, 0, dataSize, 0, &bufferData);
|
||||
memcpy(bufferData, data, dataSize);
|
||||
vkUnmapMemory(buffer->device->outputDevice->device, buffer->buffer->bufferMemory);
|
||||
}
|
||||
void gnDestroyBufferFn(gnBufferHandle buffer) {
|
||||
vkDestroyBuffer(buffer->device->outputDevice->device, buffer->buffer->buffer, NULL);
|
||||
vkFreeMemory(buffer->device->outputDevice->device, buffer->buffer->bufferMemory, NULL);
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#include "framebuffers/vulkan_framebuffer.h"
|
||||
#include "commands/command_buffer/vulkan_command_buffer.h"
|
||||
#include "pipelines/graphics_pipeline/vulkan_graphics_pipeline.h"
|
||||
#include "buffers/vulkan_buffer.h"
|
||||
|
||||
void gnCommandBeginRenderPassFn(struct gnCommandBuffer_t* buffer, struct gnRenderPassInfo_t passInfo) {
|
||||
VkClearValue* values = malloc(sizeof(VkClearValue) * passInfo.clearValueCount);
|
||||
@@ -54,6 +55,11 @@ void gnCommandSetScissorFn(struct gnCommandBuffer_t* buffer, struct gnScissor_t
|
||||
};
|
||||
vkCmdSetScissor(buffer->commandBuffer->buffer, 0, 1, &vkScissor);
|
||||
}
|
||||
VkDeviceSize offsets[] = {0};
|
||||
void gnCommandBindBufferFn(gnCommandBufferHandle buffer, gnBufferHandle bufferToBind, gnBufferType type) {
|
||||
if (type == GN_VERTEX_BUFFER)
|
||||
vkCmdBindVertexBuffers(buffer->commandBuffer->buffer, 0, 1, &bufferToBind->buffer->buffer, offsets);
|
||||
}
|
||||
void gnCommandDrawFn(struct gnCommandBuffer_t* buffer, int vertexCount, int firstVertex, int instanceCount, int firstInstance) {
|
||||
vkCmdDraw(buffer->commandBuffer->buffer, vertexCount, instanceCount, firstVertex, firstInstance);
|
||||
}
|
||||
|
Reference in New Issue
Block a user