Mountain  1.0.0
Simple C++ 2D Game Framework
gpu_buffer.hpp
1 #pragma once
2 
3 #include <Maths/vector2i.hpp>
4 
5 #include "Mountain/core.hpp"
6 #include "Mountain/rendering/graphics.hpp"
8 
10 {
12  struct MOUNTAIN_API GpuBuffer
13  {
14  void Create();
15 
16  void Delete();
17 
19  void Recreate();
20 
21  void SetStorage(int64_t size, const void* data, Meta::Flags<BufferStorageFlags> flags = Utils::ToFlags(BufferStorageFlags::None)) const;
22 
23  void SetSubData(int64_t offset, int64_t size, const void* data) const;
24 
25  void SetData(int64_t size, const void* data, BufferUsage usage) const;
26 
27  void SetDebugName(std::string_view name) const;
28 
29  [[nodiscard]]
30  bool_t GetImmutable() const;
31 
32  GETTER(uint32_t, Id, m_Id)
33 
34  [[nodiscard]]
35  explicit operator uint32_t() const;
36 
37  private:
38  uint32_t m_Id = 0;
39  };
40 }
Defines general utility functions.
Low-level graphics API.
Definition: gpu_buffer.hpp:9
Low-level interface for OpenGL buffers.
Definition: gpu_buffer.hpp:12