X-Git-Url: https://eleni.mutantstargoat.com/git/?p=demo;a=blobdiff_plain;f=src%2Fvulkan%2Funiforms-vk.cc;fp=src%2Fvulkan%2Funiforms-vk.cc;h=6a02110131c9f79a019711b2c21ab0c84ca4f1d9;hp=1c87a5543989d1c0578578dc7e788fd9fbf001e3;hb=86c912d603be75ac8b2fdb2229f1696e9c0c01d9;hpb=e04bbfa8eb50d10fc87c3cbd6667de5de767eaa7 diff --git a/src/vulkan/uniforms-vk.cc b/src/vulkan/uniforms-vk.cc index 1c87a55..6a02110 100644 --- a/src/vulkan/uniforms-vk.cc +++ b/src/vulkan/uniforms-vk.cc @@ -1,7 +1,11 @@ +#include +#include + #include "uniforms-vk.h" UniformBufferVK::UniformBufferVK() { + ubo = 0; } UniformBufferVK::~UniformBufferVK() @@ -10,17 +14,32 @@ UniformBufferVK::~UniformBufferVK() bool UniformBufferVK::create(int size) { - return true; + if(!(ubo = vku_create_buffer(size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT))) { + fprintf(stderr, "Failed to create uniform buffer object.\n"); + return false; + } + + return UniformBuffer::create(size); } void UniformBufferVK::destroy() { + vku_destroy_buffer(ubo); } void UniformBufferVK::bind(int binding) const { + if(vkBindBufferMemory(vk_device, ubo->buf, ubo->mem_pool, 0) != + VK_SUCCESS) { + fprintf(stderr, "Failed to bind ubo.\n"); + } } -void UniformBufferVK::update(void *data) +bool UniformBufferVK::update(void *data) { + if(!vku_update_buffer(ubo, size, data)) { + fprintf(stderr, "Failed to update ubo.\n"); + return false; + } + return true; }