Lugdunum  0.1.0
Mesh.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 #include <set>
5 #include <vector>
6 
14 
15 namespace lug {
16 namespace Graphics {
17 namespace Vulkan {
18 namespace Render {
19 
21  friend Resource::SharedPtr<lug::Graphics::Render::Mesh> Builder::Mesh::build(const ::lug::Graphics::Builder::Mesh&);
22 
23 public:
26  std::vector<API::Buffer> buffers;
27  };
28 
29 public:
30  Mesh(const Mesh&) = delete;
31  Mesh(Mesh&& mesh) = delete;
32 
33  Mesh& operator=(const Mesh&) = delete;
34  Mesh& operator=(Mesh&& mesh) = delete;
35 
36  ~Mesh() override final;
37 
38  void destroy();
39 
40 private:
41  explicit Mesh(const std::string& name);
42 
43 private:
44  API::DeviceMemory _deviceMemory;
45 };
46 
47 #include <lug/Graphics/Vulkan/Render/Mesh.inl>
48 
49 } // Render
50 } // Vulkan
51 } // Graphics
52 } // lug
Resource::SharedPtr< Render::Mesh > build()
Definition: Mesh.cpp:24
#define LUG_GRAPHICS_API
Definition: Export.hpp:11
A Mesh, which itsef is a Resource. A mesh is composed of a vector of PrimitiveSet.
Definition: Mesh.hpp:26
Pipeline::Id::PrimitivePart pipelineIdPrimitivePart
Definition: Mesh.hpp:25