TerraForge3D
2.3.1
3D Terrain And Landscape Generator
SharedMemoryManager.h
1
#pragma once
2
3
#include <string>
4
#include <vector>
5
#include <cstdint>
6
7
class
Shader
;
8
13
struct
SharedMemoryItem
14
{
15
float
d0 = 0;
16
float
d1 = 0;
17
float
d2 = 0;
18
float
d3 = 0;
19
float
d4 = 0;
20
float
d5 = 0;
21
float
d6 = 0;
22
float
d7 = 0;
23
float
d8 = 0;
24
float
d9 = 0;
25
float
d10 = 0;
26
float
d11 = 0;
27
float
d12 = 0;
28
float
d13 = 0;
29
float
d14 = 0;
30
float
d15 = 0;
31
float
d16 = 0;
32
float
d17 = 0;
33
float
d18 = 0;
34
float
d19 = 0;
35
float
d20 = 0;
36
float
d21 = 0;
37
float
d22 = 0;
38
float
d23 = 0;
39
float
d24 = 0;
40
float
d25 = 0;
41
float
d26 = 0;
42
float
d27 = 0;
43
float
d28 = 0;
44
float
d29 = 0;
45
float
d30 = 0;
46
float
d31 = 0;
47
48
// override [] operator for SharedMemoryItem
49
float
&operator[](
int
i);
50
};
51
52
void
SetSharedMemoryItem(
SharedMemoryItem
*mi,
int
i,
float
val);
53
54
55
56
class
SharedMemoryManager
57
{
58
public
:
59
SharedMemoryManager
();
60
~SharedMemoryManager
();
61
62
void
Clear();
63
64
int
AddItem();
65
66
void
UpdateShader(
Shader
*shader);
67
68
SharedMemoryItem
*At(
int
id
);
69
70
public
:
71
uint32_t ssbo;
72
uint32_t ssboBinding;
73
int
currentID;
74
std::vector<SharedMemoryItem> sharedMemoryBlobs;
75
};
Shader
Definition:
Shader.h:7
SharedMemoryManager
Definition:
SharedMemoryManager.h:57
SharedMemoryItem
SharedMemoryItem ! A data structure to be passed to the GPU.
Definition:
SharedMemoryManager.h:14
TerraForge3D
include
Shading
SharedMemoryManager.h
Generated on Thu Apr 7 2022 14:10:50 for TerraForge3D by
1.9.3