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

Method setProgramStateRecursively

core/2d/ClippingNode.cpp:352–375  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

350}
351
352void ClippingNode::setProgramStateRecursively(Node* node, backend::ProgramState* programState)
353{
354 if (_originalStencilProgramState.find(node) == _originalStencilProgramState.end())
355 {
356 auto* existingProgramState = node->getProgramState();
357 AX_SAFE_RETAIN(existingProgramState);
358 _originalStencilProgramState[node] = existingProgramState;
359 }
360
361 if (_uniqueChildStencils)
362 {
363 node->setProgramState(programState->clone(), true);
364 }
365 else
366 {
367 node->setProgramState(programState);
368 }
369
370 auto& children = node->getChildren();
371 for (const auto& child : children)
372 {
373 setProgramStateRecursively(child, programState);
374 }
375}
376
377void ClippingNode::restoreAllProgramStates()
378{

Callers

nothing calls this directly

Calls 5

findMethod · 0.45
endMethod · 0.45
getProgramStateMethod · 0.45
setProgramStateMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected