Lugdunum  0.1.0
SkyBox.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <cstdint>
4 #include <string>
5 
11 
12 namespace lug {
13 namespace Graphics {
14 
15 class Renderer;
16 
17 namespace Vulkan {
18 namespace Render {
19 
24  friend Resource::SharedPtr<lug::Graphics::Render::SkyBox> Builder::SkyBox::build(const ::lug::Graphics::Builder::SkyBox&);
25 
26 public:
27  SkyBox(const SkyBox&) = delete;
28  SkyBox(SkyBox&&) = delete;
29 
30  SkyBox& operator=(const SkyBox&) = delete;
31  SkyBox& operator=(SkyBox&&) = delete;
32 
33  ~SkyBox();
34 
35  void destroy();
36 
37  Resource::SharedPtr<lug::Graphics::Render::SkyBox> createIrradianceMap(lug::Graphics::Renderer& renderer) const override final;
38  Resource::SharedPtr<lug::Graphics::Render::SkyBox> createPrefilteredMap(lug::Graphics::Renderer& renderer) const override final;
39 
40  static const API::GraphicsPipeline& getPipeline();
43 
44 private:
51  SkyBox(const std::string& name);
52 
53 private:
60 
66  static uint32_t _skyBoxCount;
67 };
68 
70 
71 } // Render
72 } // Vulkan
73 } // Graphics
74 } // lug
Resource::SharedPtr< Render::SkyBox > build()
Definition: SkyBox.cpp:11
#define LUG_GRAPHICS_API
Definition: Export.hpp:11
static lug::Graphics::Resource::SharedPtr< lug::Graphics::Render::Mesh > _mesh
Definition: SkyBox.hpp:58
static uint32_t _skyBoxCount
Store the number of skybox created to know when to create/destroy the pipeline and mesh...
Definition: SkyBox.hpp:66
static API::GraphicsPipeline _pipeline
Definition: SkyBox.hpp:54
static API::GraphicsPipeline _prefilteredMapPipeline
Definition: SkyBox.hpp:56
static lug::Graphics::Resource::SharedPtr< lug::Graphics::Render::Texture > _brdfLut
Definition: SkyBox.hpp:59
static API::GraphicsPipeline _irradianceMapPipeline
Definition: SkyBox.hpp:55
static API::GraphicsPipeline _brdfLutPipeline
Definition: SkyBox.hpp:57