aboutsummaryrefslogtreecommitdiff
path: root/include/RenderBackend/OpenGL/DeviceMemory.hpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2017-12-20 20:55:05 +0100
committerdec05eba <dec05eba@protonmail.com>2021-11-18 15:21:46 +0100
commitca92d8c90f7103db6d7cae4cef49b278d804b474 (patch)
treebaf44e42fcc1cf7e871a7b2f1d3d92f680f3a845 /include/RenderBackend/OpenGL/DeviceMemory.hpp
parent3d7f123c0fc0af4b8df3ad791b264d22268bd423 (diff)
Create shader using c++ code
Diffstat (limited to 'include/RenderBackend/OpenGL/DeviceMemory.hpp')
-rw-r--r--include/RenderBackend/OpenGL/DeviceMemory.hpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/RenderBackend/OpenGL/DeviceMemory.hpp b/include/RenderBackend/OpenGL/DeviceMemory.hpp
new file mode 100644
index 0000000..706529e
--- /dev/null
+++ b/include/RenderBackend/OpenGL/DeviceMemory.hpp
@@ -0,0 +1,27 @@
+#pragma once
+
+#include "../../DataView.hpp"
+#include "../../utils.hpp"
+
+namespace amalgine
+{
+ class DeviceMemory
+ {
+ DISABLE_COPY(DeviceMemory)
+ public:
+ DeviceMemory();
+
+ // Uploaded once, drawn many times
+ void copyStatic(const DataView<f32> &data);
+
+ // Created once, changed from time to time but drawn many times more than that
+ void copyDynamic(const DataView<f32> &data);
+
+ // Uploaded once, drawn once (for example data that is changed every frame)
+ void copyStream(const DataView<f32> &data);
+ private:
+ void copy(const DataView<f32> &data, i32 storageType);
+ private:
+ u32 vertexBufferObjectId;
+ };
+}