PeriDyno
1.0.0
Loading...
Searching...
No Matches
D:
Peridyno
peridyno
src
Core
Backend
Vulkan
VkUniform.inl
Go to the documentation of this file.
1
#include "
VkUniform.h
"
2
3
namespace
dyno
{
4
5
template
<
typename
T>
6
VkUniform<T>::VkUniform
()
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>
26
VkUniform<T>::~VkUniform
()
27
{
28
buffer
->destroy();
29
}
30
31
template
<
typename
T>
32
void
VkUniform<T>::setValue
(
T
val)
33
{
34
memcpy(
buffer
->mapped, &val,
sizeof
(
T
));
35
}
36
37
template
<
typename
T>
38
VariableType
VkUniform<T>::type
()
39
{
40
return
VariableType::Uniform
;
41
}
42
43
}
VkUniform.h
VK_CHECK_RESULT
#define VK_CHECK_RESULT(f)
Definition
VulkanTools.h:55
dyno::VkUniform::~VkUniform
~VkUniform()
Definition
VkUniform.inl:26
dyno::VkUniform::type
VariableType type() override
Definition
VkUniform.inl:38
dyno::VkUniform::setValue
void setValue(T val)
Definition
VkUniform.inl:32
dyno::VkUniform::VkUniform
VkUniform()
Definition
VkUniform.inl:6
dyno::VkVariable::VkVariable
VkVariable()
Definition
VkVariable.cpp:6
dyno::VkVariable::ctx
VkContext * ctx
Definition
VkVariable.h:48
dyno::VkVariable::buffer
std::shared_ptr< vks::Buffer > buffer
Definition
VkVariable.h:50
T
#define T(t)
dyno
This is an implementation of AdditiveCCD based on peridyno.
Definition
Array.h:25
dyno::VariableType
VariableType
Definition
VkVariable.h:14
dyno::Uniform
@ Uniform
Uniform variable.
Definition
VkVariable.h:18
Generated by
1.13.2