PeriDyno 1.0.0
Loading...
Searching...
No Matches
VkVariable.h
Go to the documentation of this file.
1#pragma once
2#include "Platform.h"
3#include "vulkan/vulkan.h"
4
5#include "VkContext.h"
6
7namespace dyno {
8
20
22 {
24 VK_BUFFER_REUSED = 0x00000001,
25 VK_FAILED = 0xFFFFFFFF
26 };
27
28 class VkVariable {
29 public:
30 VkVariable();
32
33 VkContext* currentContext() const { return ctx; }
34
35 VkDescriptorBufferInfo& getDescriptor() { return buffer->descriptor; }
36
37 VkBuffer bufferHandle() const { return buffer->buffer; }
38
39 virtual VariableType type() = 0;
40
41 static VkDescriptorType descriptorType(const VariableType varType);
42
43 virtual uint32_t bufferSize() = 0;
44
45 virtual void* data() const { return nullptr; }
46
47 protected:
48 VkContext* ctx = nullptr;
49
50 std::shared_ptr<vks::Buffer> buffer;
51 };
52}
VkBuffer bufferHandle() const
Definition VkVariable.h:37
virtual uint32_t bufferSize()=0
VkDescriptorBufferInfo & getDescriptor()
Definition VkVariable.h:35
virtual void * data() const
Definition VkVariable.h:45
VkContext * ctx
Definition VkVariable.h:48
std::shared_ptr< vks::Buffer > buffer
Definition VkVariable.h:50
virtual VariableType type()=0
VkContext * currentContext() const
Definition VkVariable.h:33
static VkDescriptorType descriptorType(const VariableType varType)
This is an implementation of AdditiveCCD based on peridyno.
Definition Array.h:25
VariableType
Definition VkVariable.h:14
@ DeviceBuffer
Device buffer.
Definition VkVariable.h:15
@ Uniform
Uniform variable.
Definition VkVariable.h:18
@ HostBuffer
Host buffer.
Definition VkVariable.h:16
@ Constant
Constant variable.
Definition VkVariable.h:17
VkResizeType
Definition VkVariable.h:22
@ VK_BUFFER_REUSED
Definition VkVariable.h:24
@ VK_FAILED
Definition VkVariable.h:25
@ VK_BUFFER_REALLOCATED
Definition VkVariable.h:23