aboutsummaryrefslogtreecommitdiff
path: root/src/RenderBackend/OpenGL/DeviceMemory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/RenderBackend/OpenGL/DeviceMemory.cpp')
-rw-r--r--src/RenderBackend/OpenGL/DeviceMemory.cpp28
1 files changed, 9 insertions, 19 deletions
diff --git a/src/RenderBackend/OpenGL/DeviceMemory.cpp b/src/RenderBackend/OpenGL/DeviceMemory.cpp
index f071cd8..a82cdaa 100644
--- a/src/RenderBackend/OpenGL/DeviceMemory.cpp
+++ b/src/RenderBackend/OpenGL/DeviceMemory.cpp
@@ -15,24 +15,6 @@ namespace amalgine
}
}
- u32 getOpenglPrimitiveType(DeviceMemory::PrimitiveType primitiveType)
- {
- switch(primitiveType)
- {
- case DeviceMemory::PrimitiveType::TRIANGLE: return GL_TRIANGLES;
- default: assert(false); return -1;
- }
- }
-
- u32 getPrimitiveTypePointsPerVertices(DeviceMemory::PrimitiveType primitiveType)
- {
- switch(primitiveType)
- {
- case DeviceMemory::PrimitiveType::TRIANGLE: return 3;
- default: assert(false); return -1;
- }
- }
-
DeviceMemory::DeviceMemory() : primitiveType(0), numVertices(0), type(DeviceMemoryType::NONE)
{
glGenBuffers(1, &vertexBufferObjectId);
@@ -57,12 +39,20 @@ namespace amalgine
numVertices = getPrimitiveTypePointsPerVertices(primitiveType);
}
*/
+ void DeviceMemory::copy(const DataView<vec2f> &texture_coords, StorageType storageType) {
+ glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObjectId);
+ glBufferData(GL_ARRAY_BUFFER, texture_coords.getByteSize(), texture_coords.data, getOpenglStorageType(storageType));
+ primitiveType = GL_TRIANGLES;
+ numVertices = texture_coords.size * 2;
+ type = DeviceMemoryType::VEC2;
+ }
+
void DeviceMemory::copy(const DataView<Triangle2D> &triangles, StorageType storageType)
{
glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObjectId);
glBufferData(GL_ARRAY_BUFFER, triangles.getByteSize(), triangles.data, getOpenglStorageType(storageType));
primitiveType = GL_TRIANGLES;
- numVertices = triangles.size * 3;
+ numVertices = triangles.size * 2;
type = DeviceMemoryType::VEC2;
}