+#include <stdio.h>
+#include <string.h>
+
#include "uniforms-vk.h"
UniformBufferVK::UniformBufferVK()
{
+ ubo = 0;
}
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;
}