PeriDyno 1.0.0
Loading...
Searching...
No Matches
VkUniform.inl
Go to the documentation of this file.
1#include "VkUniform.h"
2
3namespace dyno {
4
5 template<typename T>
7 : VkVariable()
8 {
9 if (ctx->useMemoryPool) {
10 buffer->size = sizeof(T);
11 buffer->usageFlags = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT;
12 buffer->memoryPropertyFlags =
13 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
14 ctx->createBuffer(VkContext::UniformPool, buffer);
15 } else {
16 ctx->createBuffer(
17 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
18 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
19 buffer,
20 sizeof(T));
21 }
22 VK_CHECK_RESULT(buffer->map());
23 }
24
25 template<typename T>
27 {
28 buffer->destroy();
29 }
30
31 template<typename T>
33 {
34 memcpy(buffer->mapped, &val, sizeof(T));
35 }
36
37 template<typename T>
42
43}
#define VK_CHECK_RESULT(f)
Definition VulkanTools.h:55
VariableType type() override
Definition VkUniform.inl:38
void setValue(T val)
Definition VkUniform.inl:32
VkContext * ctx
Definition VkVariable.h:48
std::shared_ptr< vks::Buffer > buffer
Definition VkVariable.h:50
#define T(t)
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
VariableType
Definition VkVariable.h:14
@ Uniform
Uniform variable.
Definition VkVariable.h:18