2022-03-08 21:19:19 +03:30
|
|
|
#pragma once
|
|
|
|
|
2025-07-05 13:28:41 +03:30
|
|
|
#include <engine/base/base.hpp>
|
2022-03-08 21:19:19 +03:30
|
|
|
|
|
|
|
namespace Light {
|
|
|
|
|
|
|
|
class SharedContext;
|
|
|
|
|
|
|
|
enum class ConstantBufferIndex
|
|
|
|
{
|
|
|
|
ViewProjection = 0u
|
|
|
|
};
|
|
|
|
|
|
|
|
//========== CONSTANT_BUFFER ==========//
|
|
|
|
class ConstantBuffer
|
|
|
|
{
|
|
|
|
public:
|
2025-07-05 15:36:53 +03:30
|
|
|
static Scope<ConstantBuffer> create(ConstantBufferIndex index, unsigned int size, Ref<SharedContext> sharedContext);
|
2022-03-08 21:19:19 +03:30
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
virtual void* map() = 0;
|
|
|
|
virtual void un_map() = 0;
|
2022-03-08 21:19:19 +03:30
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
virtual void bind() = 0;
|
2022-03-08 21:19:19 +03:30
|
|
|
|
|
|
|
protected:
|
|
|
|
ConstantBuffer() = default;
|
|
|
|
};
|
|
|
|
|
|
|
|
//========== VERTEX_BUFFER ==========//
|
|
|
|
class VertexBuffer
|
|
|
|
{
|
|
|
|
public:
|
2025-07-05 15:36:53 +03:30
|
|
|
static Ref<VertexBuffer> create(float* vertices, unsigned int stride, unsigned int count, Ref<SharedContext> sharedContext);
|
2022-03-08 21:19:19 +03:30
|
|
|
|
|
|
|
virtual ~VertexBuffer() = default;
|
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
virtual void* map() = 0;
|
|
|
|
virtual void un_map() = 0;
|
2022-03-08 21:19:19 +03:30
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
virtual void bind() = 0;
|
|
|
|
virtual void un_bind() = 0;
|
2022-03-08 21:19:19 +03:30
|
|
|
|
|
|
|
protected:
|
|
|
|
VertexBuffer() = default;
|
|
|
|
};
|
|
|
|
|
|
|
|
//========== INDEX_BUFFER ==========//
|
|
|
|
class IndexBuffer
|
|
|
|
{
|
|
|
|
public:
|
2025-07-05 15:36:53 +03:30
|
|
|
static Ref<IndexBuffer> create(unsigned int* indices, unsigned int count, Ref<SharedContext> sharedContext);
|
2022-03-08 21:19:19 +03:30
|
|
|
|
|
|
|
virtual ~IndexBuffer() = default;
|
|
|
|
|
2025-07-05 15:36:53 +03:30
|
|
|
virtual void bind() = 0;
|
|
|
|
virtual void un_bind() = 0;
|
2022-03-08 21:19:19 +03:30
|
|
|
|
|
|
|
protected:
|
|
|
|
IndexBuffer() = default;
|
|
|
|
};
|
|
|
|
|
2025-07-05 13:28:41 +03:30
|
|
|
} // namespace Light
|