6a02110131c9f79a019711b2c21ab0c84ca4f1d9
[demo] / src / vulkan / uniforms-vk.cc
1 #include <stdio.h>
2 #include <string.h>
3
4 #include "uniforms-vk.h"
5
6 UniformBufferVK::UniformBufferVK()
7 {
8         ubo = 0;
9 }
10
11 UniformBufferVK::~UniformBufferVK()
12 {
13 }
14
15 bool UniformBufferVK::create(int size)
16 {
17         if(!(ubo = vku_create_buffer(size, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT))) {
18                 fprintf(stderr, "Failed to create uniform buffer object.\n");
19                 return false;
20         }
21
22         return UniformBuffer::create(size);
23 }
24
25 void UniformBufferVK::destroy()
26 {
27         vku_destroy_buffer(ubo);
28 }
29
30 void UniformBufferVK::bind(int binding) const
31 {
32         if(vkBindBufferMemory(vk_device, ubo->buf, ubo->mem_pool, 0) !=
33                         VK_SUCCESS) {
34                 fprintf(stderr, "Failed to bind ubo.\n");
35         }
36 }
37
38 bool UniformBufferVK::update(void *data)
39 {
40         if(!vku_update_buffer(ubo, size, data)) {
41                 fprintf(stderr, "Failed to update ubo.\n");
42                 return false;
43         }
44         return true;
45 }