18 #include "precompiled.h"
45 std::map<VfsPath, CMaterial>::iterator iter =
m_Materials.find(pathname);
53 #define EL(x) int el_##x = xeroFile.GetElementID(#x)
54 #define AT(x) int at_##x = xeroFile.GetAttributeID(#x)
61 EL(conditional_define);
80 preprocessor.
AddDefine(
"CFG_FORCE_ALPHATEST",
g_Renderer.m_Options.m_ForceAlphaTest ?
"1" :
"0");
87 int token = node.GetNodeName();
89 if (token == el_alternative)
107 else if (token == el_alpha_blending)
111 else if (token == el_shader)
115 else if (token == el_define)
119 else if (token == el_conditional_define)
121 std::vector<float> args;
126 if (type == CStr(
"draw_range"))
130 float valmin = -1.0f;
131 float valmax = -1.0f;
136 CFG_GET_VAL(
"materialmgr." + conf +
".min", Float, valmin);
137 CFG_GET_VAL(
"materialmgr." + conf +
".max", Float, valmax);
150 args.push_back(valmin);
151 args.push_back(valmax);
155 std::stringstream sstr;
162 std::stringstream sstr;
172 else if (token == el_uniform)
176 str >> vec.
X >> vec.Y >> vec.Z >> vec.W;
179 else if (token == el_renderquery)
void AddShaderDefine(CStrIntern key, CStrIntern value)
Path VfsPath
VFS path of the form "(dir/)*file?".
const PSRETURN PSRETURN_OK
#define CFG_GET_VAL(name, type, destination)
void AddConditionalDefine(const char *defname, const char *defvalue, int type, std::vector< float > &args)
#define XERO_ITER_EL(parent_element, child_element)
bool TestConditional(const CStr &expr)
void SetUsesAlphaBlending(bool flag)
void SetShaderEffect(const CStr &effect)
CStr8 GetNamedItem(const int AttributeName) const
std::map< VfsPath, CMaterial > m_Materials
void AddDefine(const char *name, const char *value)
void AddRenderQuery(const char *key)
Convenience wrapper around CPreprocessor.
void RecomputeCombinedShaderDefines()
void AddStaticUniform(const char *key, const CVector4D &value)
T clamp(T value, T min, T max)
CMaterial LoadMaterial(const VfsPath &pathname)