| 5129 | } |
| 5130 | |
| 5131 | void SourceModsContext::processUpstream( const AttribSet &requestedAttribs ) |
| 5132 | { |
| 5133 | // next 'modifier' is actually the Source, because we're at the end of the stack of modifiers |
| 5134 | if( mModiferStack.empty() ) { |
| 5135 | mAttribMask = &requestedAttribs; |
| 5136 | if( mSource ) |
| 5137 | mSource->loadInto( this, requestedAttribs ); |
| 5138 | mAttribMask = nullptr; |
| 5139 | } |
| 5140 | else { |
| 5141 | // we want the Params to reflect upstream from the current Modifier |
| 5142 | auto modifier = mModiferStack.back(); |
| 5143 | mModiferStack.pop_back(); |
| 5144 | modifier->process( this, requestedAttribs ); |
| 5145 | } |
| 5146 | } |
| 5147 | |
| 5148 | uint8_t SourceModsContext::getAttribDims( Attrib attr ) const |
| 5149 | { |