aboutsummaryrefslogtreecommitdiff
path: root/source/30-game/VertexIndex.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/30-game/VertexIndex.cpp')
-rw-r--r--source/30-game/VertexIndex.cpp84
1 files changed, 0 insertions, 84 deletions
diff --git a/source/30-game/VertexIndex.cpp b/source/30-game/VertexIndex.cpp
deleted file mode 100644
index ac68289..0000000
--- a/source/30-game/VertexIndex.cpp
+++ /dev/null
@@ -1,84 +0,0 @@
-#include "VertexIndex.hpp"
-
-#include <algorithm>
-
-GpuVertexBuffer::GpuVertexBuffer() {
- glGenBuffers(1, &handle);
-}
-
-GpuVertexBuffer::~GpuVertexBuffer() {
- glDeleteBuffers(1, &handle);
-}
-
-void GpuVertexBuffer::Upload(const std::byte* data, size_t sizeInBytes) {
- glBindBuffer(GL_ARRAY_BUFFER, handle);
- glBufferData(GL_ARRAY_BUFFER, sizeInBytes, data, GL_DYNAMIC_DRAW);
-}
-
-GpuIndexBuffer::GpuIndexBuffer() {
- glGenBuffers(1, &handle);
-}
-
-GpuIndexBuffer::~GpuIndexBuffer() {
- glDeleteBuffers(1, &handle);
-}
-
-void GpuIndexBuffer::Upload(const std::byte* data, Tags::IndexType type, size_t count) {
- this->indexType = type;
- this->count = count;
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, handle);
- glBufferData(GL_ELEMENT_ARRAY_BUFFER, count * Tags::SizeOf(type), data, GL_DYNAMIC_DRAW);
-}
-
-int BufferBindings::GetMaxBindingIndex() const {
- return bindings.size() - 1;
-}
-
-GpuVertexBuffer* BufferBindings::GetBinding(int index) const {
- if (index >= 0 && index < bindings.size()) {
- return bindings[index].Get();
- } else {
- return nullptr;
- }
-}
-
-void BufferBindings::SetBinding(int index, GpuVertexBuffer* buffer) {
- int maxBindingIndex = GetMaxBindingIndex();
- if (index > maxBindingIndex) {
- int countDelta = index - maxBindingIndex;
- bindings.resize(bindings.size() + countDelta);
- }
-
- bindings[index].Attach(buffer);
- if (index == maxBindingIndex && buffer == nullptr) {
- bindings.pop_back();
- }
-}
-
-void BufferBindings::Clear() {
- bindings.clear();
-}
-
-int VertexElementFormat::GetStride() const {
- return Tags::SizeOf(type);
-}
-
-void VertexFormat::AddElement(VertexElementFormat element) {
- vertexSize += element.GetStride();
-
- int lastIdx = (int)elements.size() - 1;
- if (lastIdx >= 0) {
- auto& last = elements[lastIdx];
- element.offset = last.offset + last.GetStride();
- } else {
- element.offset = 0;
- }
-
- elements.push_back(std::move(element));
-}
-
-void VertexFormat::RemoveElement(int index) {
- auto& element = elements[index];
- vertexSize -= element.GetStride();
- elements.erase(elements.begin() + index);
-}