RavEngine
Loading...
Searching...
No Matches
Skybox.hpp
1
#if !RVE_SERVER
2
#pragma once
3
#include "Material.hpp"
4
5
namespace
RavEngine
{
6
struct
MeshAsset;
7
8
// subclass
9
struct
ISkyMaterial
:
public
Material
{
10
ISkyMaterial
(
const
std::string&
shaderpath
);
11
};
12
13
// subclass
14
struct
ISkyMaterialInstance
{
15
ISkyMaterialInstance
(
const
Ref<ISkyMaterial>
sm) : sm(sm) {}
16
17
Ref<ISkyMaterial>
GetMat()
const
{
18
return
sm;
19
}
20
21
private
:
22
Ref<ISkyMaterial>
sm;
23
};
24
25
// default implementation, sublcass or implement your own
26
27
struct
DefaultSkyMaterial
:
public
ISkyMaterial
{
28
DefaultSkyMaterial
() :
ISkyMaterial
(
"defaultsky"
) {}
29
};
30
31
struct
DefaultSkyMaterialInstance
:
public
ISkyMaterialInstance
{
32
DefaultSkyMaterialInstance
(
const
Ref<ISkyMaterial>
smi
) :
ISkyMaterialInstance
(
smi
) {}
33
};
34
35
struct
Skybox
{
36
bool
enabled =
true
;
37
Ref<ISkyMaterialInstance>
skyMat;
38
39
// default constructor, loads default sky implementation
40
Skybox
();
41
42
// supply a custom mesh and material
43
Skybox
(
const
decltype
(skyMat)& sm ): skyMat(sm){}
44
45
friend
class
App
;
46
};
47
48
49
}
50
#endif
RavEngine::App
Definition
App.hpp:43
RavEngine::Material
Definition
Material.hpp:45
moodycamel::ConcurrentQueue
Definition
concurrentqueue.h:747
RavEngine
Definition
Animation.hpp:6
RavEngine::DefaultSkyMaterialInstance
Definition
Skybox.hpp:31
RavEngine::DefaultSkyMaterial
Definition
Skybox.hpp:27
RavEngine::ISkyMaterialInstance
Definition
Skybox.hpp:14
RavEngine::ISkyMaterial
Definition
Skybox.hpp:9
RavEngine::Skybox
Definition
Skybox.hpp:35
RavEngine
include
RavEngine
Skybox.hpp
Generated by
1.9.8