Radium Engine
1.6.3
Loading...
Searching...
No Matches
ShaderConfigFactory.cpp
1
#include <Core/Utils/Log.hpp>
2
#include <Core/Utils/StdOptional.hpp>
3
#include <Engine/Data/ShaderConfigFactory.hpp>
4
#include <Engine/Data/ShaderConfiguration.hpp>
5
#include <map>
6
#include <ostream>
7
#include <string>
8
#include <utility>
9
10
namespace
Ra
{
11
namespace
Engine {
12
namespace
Data {
13
namespace
ShaderConfigurationFactory {
14
15
using namespace
Core::Utils;
// log
16
17
static
std::map<std::string, ShaderConfiguration>
configs;
18
19
void
addConfiguration
(
const
ShaderConfiguration
& config ) {
20
if
( config.getName().
empty
() ) {
21
LOG( logWARNING ) <<
"Empty name in ShaderConfigurationFactory::addConfiguration call. "
22
"Configuration not added"
;
23
return
;
24
}
25
26
auto
found = configs.insert( { config.getName(), config } );
27
if
( !found.second ) {
28
LOG( logDEBUG ) <<
"Configuration "
<< config.getName()
29
<<
" already in ShaderConfigurationFactory. "
30
"Configuration not added"
;
31
return
;
32
}
33
}
34
35
bool
removeConfiguration
(
const
std::string
& configName ) {
36
auto
found = configs.find( configName );
37
if
( found != configs.end() ) {
38
configs.erase( found );
39
return
true
;
40
}
41
return
false
;
42
}
43
44
Core::Utils::optional<ShaderConfiguration>
getConfiguration
(
const
std::string
& name ) {
45
if
( name.
empty
() ) {
46
LOG( logWARNING ) <<
"Empty name in ShaderConfigurationFactory::getConfiguration call."
;
47
return
{};
48
}
49
50
auto
found = configs.find( name );
51
if
( found != configs.end() ) {
return
found->second; }
52
else
{
return
{}; }
53
}
54
55
}
// namespace ShaderConfigurationFactory
56
}
// namespace Data
57
}
// namespace Engine
58
}
// namespace Ra
std::string
Ra::Engine::Data::ShaderConfiguration
Definition
ShaderConfiguration.hpp:68
std::string::empty
T empty(T... args)
std::map
Ra::Engine::Data::ShaderConfigurationFactory::addConfiguration
void addConfiguration(const ShaderConfiguration &config)
Definition
ShaderConfigFactory.cpp:19
Ra::Engine::Data::ShaderConfigurationFactory::getConfiguration
Core::Utils::optional< ShaderConfiguration > getConfiguration(const std::string &name)
Definition
ShaderConfigFactory.cpp:44
Ra::Engine::Data::ShaderConfigurationFactory::removeConfiguration
bool removeConfiguration(const std::string &configName)
Definition
ShaderConfigFactory.cpp:35
Ra
hepler function to manage enum as underlying types in VariableSet
Definition
Cage.cpp:4
src
Engine
Data
ShaderConfigFactory.cpp
Generated by
1.12.0