X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fvulkan%2Funiforms-vk.cc;h=7e67a3a89d0c147c118df8cad1c6ea80478ca3ee;hb=f6ceb163227d00d7f97df1fc2dfbdd419c56277e;hp=1c87a5543989d1c0578578dc7e788fd9fbf001e3;hpb=05d269a194496bcef85da78652b947f5bf1c9bcf;p=demo diff --git a/src/vulkan/uniforms-vk.cc b/src/vulkan/uniforms-vk.cc index 1c87a55..7e67a3a 100644 --- a/src/vulkan/uniforms-vk.cc +++ b/src/vulkan/uniforms-vk.cc @@ -1,26 +1,50 @@ +#include +#include + #include "uniforms-vk.h" UniformBufferVK::UniformBufferVK() { + ubo = 0; } UniformBufferVK::~UniformBufferVK() { + destroy(); } bool UniformBufferVK::create(int size) { + if(!(ubo = vku_create_buffer(size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT))) { + fprintf(stderr, "Failed to create vulkan uniform buffer object.\n"); + return false; + } + + if(!UniformBuffer::create(size)) { + fprintf(stderr, "Failed to create uniform buffer object.\n"); + return false; + } return true; } 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; }