18 #ifndef INCLUDED_SHADERDEFINES 19 #define INCLUDED_SHADERDEFINES 25 #include <boost/unordered_map.hpp> 38 template<
typename value_t>
62 std::map<CStrIntern, value_t>
GetMap()
const;
98 typedef std::pair<CStrIntern, value_t>
Item;
145 int GetInt(
const char* name)
const;
161 void Add(
const char* name,
const CVector4D& value);
166 CVector4D GetVector(
const char* name)
const;
192 void Add(
const char* name);
216 void Add(
const char* defname,
const char* defvalue,
int type, std::vector<float> &args);
217 size_t GetSize()
const {
return m_Defines.size(); }
224 #endif // INCLUDED_SHADERDEFINES std::pair< CStrIntern, value_t > Item
Definition: ShaderDefines.h:98
int m_CondType
Definition: ShaderDefines.h:212
Definition: ShaderDefines.h:177
DEFINE_CONDITION_TYPES
Definition: ShaderDefines.h:200
Definition: ShaderDefines.h:202
bool operator<(const CShaderParams &b) const
Compare with some arbitrary total order.
Definition: ShaderDefines.h:74
Definition: ShaderDefines.h:179
Uniform values that need to be evaluated in the renderer.
Definition: ShaderDefines.h:187
std::map< CStrIntern, value_t > GetMap() const
Return a copy of the current name/value mapping.
Definition: ShaderDefines.cpp:163
size_t hash
Definition: ShaderDefines.h:103
static CShaderParams s_Empty
Definition: ShaderDefines.h:124
Definition: Vector4D.h:28
RenderQuery GetItem(size_t i) const
Definition: ShaderDefines.h:194
Definition: ShaderDefines.h:95
std::vector< float > m_CondArgs
Definition: ShaderDefines.h:213
boost::unordered_map< SItems, shared_ptr< SItems > > InternedItems_t
Definition: ShaderDefines.h:112
bool operator!=(const CShaderParams &b) const
Fast inequality comparison.
Definition: ShaderDefines.h:90
Interned 8-bit strings.
Definition: CStrIntern.h:37
CShaderParams()
Create an empty map of defines.
Definition: ShaderDefines.cpp:102
size_t GetSize() const
Definition: ShaderDefines.h:217
std::vector< CondDefine > m_Defines
Definition: ShaderDefines.h:221
Definition: ShaderDefines.h:178
Definition: ShaderDefines.h:205
CStrIntern m_DefName
Definition: ShaderDefines.h:210
static CShaderParams CreateEmpty()
Definition: ShaderDefines.cpp:113
CStrIntern m_DefValue
Definition: ShaderDefines.h:211
Definition: ShaderDefines.h:208
RENDER_QUERIES
Definition: ShaderDefines.h:175
SItems * m_Items
Definition: ShaderDefines.h:109
size_t GetHash() const
Return a hash of the current mapping.
Definition: ShaderDefines.cpp:172
Represents a mapping of name strings to value strings, for use with #if and #ifdef and similar condit...
Definition: ShaderDefines.h:133
Represents a mapping of name strings to value, for use with CShaderDefines (values are strings) and C...
Definition: ShaderDefines.h:39
void SetMany(const CShaderParams ¶ms)
Add all the names and values from another set of parameters.
Definition: ShaderDefines.cpp:147
bool operator==(const CShaderParams &b) const
Fast equality comparison.
Definition: ShaderDefines.h:82
void RecalcHash()
Definition: ShaderDefines.cpp:178
static SItems * GetInterned(const SItems &items)
Returns a pointer to an SItems equal to items.
Definition: ShaderDefines.cpp:83
const CondDefine & GetItem(size_t i) const
Definition: ShaderDefines.h:218
std::vector< Item > items
Definition: ShaderDefines.h:101
void Set(CStrIntern name, const value_t &value)
Add a name and associated value to the map of parameters.
Definition: ShaderDefines.cpp:121
size_t GetSize() const
Definition: ShaderDefines.h:193
static InternedItems_t s_InternedItems
Definition: ShaderDefines.h:113
std::vector< RenderQuery > m_Items
Definition: ShaderDefines.h:196
std::shared_ptr< CShaderProgram > CShaderProgramPtr
Definition: ShaderProgramPtr.h:25
std::pair< int, CStrIntern > RenderQuery
Definition: ShaderDefines.h:190