Lugdunum  0.1.0
SkyBox.hpp
Go to the documentation of this file.
1 #pragma once
2 
6 
7 namespace lug {
8 namespace Graphics {
9 
10 class Renderer;
11 
12 // For friend
13 namespace Builder {
14 class SkyBox;
15 } // Builder
16 
17 namespace Render {
18 
20  friend class ::lug::Graphics::Builder::SkyBox;
21 
22 public:
23  SkyBox(const std::string& name);
24 
25  SkyBox(const SkyBox&) = delete;
26  SkyBox(SkyBox&&) = delete;
27 
28  SkyBox& operator=(const SkyBox&) = delete;
29  SkyBox& operator=(SkyBox&&) = delete;
30 
31  virtual ~SkyBox() = default;
32 
33  const Resource::SharedPtr<lug::Graphics::Render::Texture> getBackgroundTexture() const;
34  const Resource::SharedPtr<lug::Graphics::Render::Texture> getEnvironnementTexture() const;
35 
36  virtual Resource::SharedPtr<lug::Graphics::Render::SkyBox> createIrradianceMap(Renderer& renderer) const = 0;
37  virtual Resource::SharedPtr<lug::Graphics::Render::SkyBox> createPrefilteredMap(Renderer& renderer) const = 0;
38 
39 protected:
42 };
43 
45 
46 } // Render
47 } // Graphics
48 } // lug
lug::Graphics::Resource::SharedPtr< lug::Graphics::Render::Texture > _environnementTexture
Definition: SkyBox.hpp:41
lug::Graphics::Resource::SharedPtr< lug::Graphics::Render::Texture > _backgroundTexture
Definition: SkyBox.hpp:40
#define LUG_GRAPHICS_API
Definition: Export.hpp:11
Class for resource.
Definition: Resource.hpp:17