diff options
author | dec05eba <dec05eba@protonmail.com> | 2017-12-20 20:55:05 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2021-11-18 15:21:46 +0100 |
commit | ca92d8c90f7103db6d7cae4cef49b278d804b474 (patch) | |
tree | baf44e42fcc1cf7e871a7b2f1d3d92f680f3a845 /src/RenderBackend/OpenGL/DeviceMemory.cpp | |
parent | 3d7f123c0fc0af4b8df3ad791b264d22268bd423 (diff) |
Create shader using c++ code
Diffstat (limited to 'src/RenderBackend/OpenGL/DeviceMemory.cpp')
-rw-r--r-- | src/RenderBackend/OpenGL/DeviceMemory.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/RenderBackend/OpenGL/DeviceMemory.cpp b/src/RenderBackend/OpenGL/DeviceMemory.cpp new file mode 100644 index 0000000..f166666 --- /dev/null +++ b/src/RenderBackend/OpenGL/DeviceMemory.cpp @@ -0,0 +1,31 @@ +#include "../../../include/RenderBackend/OpenGL/DeviceMemory.hpp" +#include "../../../include/RenderBackend/OpenGL/opengl.hpp" + +namespace amalgine +{ + DeviceMemory::DeviceMemory() + { + glGenBuffers(1, &vertexBufferObjectId); + } + + void DeviceMemory::copyStatic(const DataView<f32> &data) + { + copy(data, GL_STATIC_DRAW); + } + + void DeviceMemory::copyDynamic(const DataView<f32> &data) + { + copy(data, GL_DYNAMIC_DRAW); + } + + void DeviceMemory::copyStream(const DataView<f32> &data) + { + copy(data, GL_STREAM_DRAW); + } + + void DeviceMemory::copy(const DataView<f32> &data, i32 storageType) + { + glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObjectId); + glBufferData(GL_ARRAY_BUFFER, data.getByteSize(), data.data, storageType); + } +} |