MCPcopy Create free account
hub / github.com/axmolengine/axmol / parsePass

Method parsePass

core/renderer/Material.cpp:223–257  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

221}
222
223bool Material::parsePass(Technique* technique, Properties* passProperties)
224{
225 auto pass = Pass::create(technique);
226 technique->addPass(pass);
227
228 pass->setName(passProperties->getId());
229
230 // Pass can have 3 different namespaces:
231 // - one or more "sampler"
232 // - one "renderState"
233 // - one "shader"
234
235 auto space = passProperties->getNextNamespace();
236 while (space)
237 {
238 const char* name = space->getNamespace();
239 if (strcmp(name, "shader") == 0)
240 {
241 parseShader(pass, space);
242 }
243 else if (strcmp(name, "renderState") == 0)
244 {
245 parseRenderState(&pass->_renderState.getStateBlock(), space);
246 }
247 else
248 {
249 AXASSERT(false, "Invalid namespace");
250 return false;
251 }
252
253 space = passProperties->getNextNamespace();
254 }
255
256 return true;
257}
258
259// axmol doesn't support Samplers yet.
260bool Material::parseSampler(backend::ProgramState* programState, Properties* samplerProperties)

Callers

nothing calls this directly

Calls 6

createFunction · 0.85
addPassMethod · 0.80
getNextNamespaceMethod · 0.80
getNamespaceMethod · 0.80
setNameMethod · 0.45
getIdMethod · 0.45

Tested by

no test coverage detected