MCPcopy Create free account
hub / github.com/OGRECave/ogre / execute

Method execute

OgreMain/src/OgreCompositorInstance.cpp:283–300  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

281 }
282
283 void execute(SceneManager *sm, RenderSystem *rs) override
284 {
285 // Fire listener
286 instance->_fireNotifyMaterialRender(pass_id, mat);
287 // Queue passes from mat
288 for(auto* pass : technique->getPasses())
289 {
290 int tuIdx = 0;
291 for(auto* tu : pass->getTextureUnitStates())
292 rs->_setTextureUnitSettings(tuIdx++, *tu);
293 auto params = pass->getGpuProgramParameters(GPT_COMPUTE_PROGRAM);
294 params->_updateAutoParams(sm->_getAutoParamDataSource(), GPV_GLOBAL);
295 rs->bindGpuProgram(pass->getComputeProgram()->_getBindingDelegate());
296 rs->bindGpuProgramParameters(GPT_COMPUTE_PROGRAM, params, GPV_GLOBAL);
297 rs->_dispatchCompute(thread_groups);
298 }
299 rs->unbindGpuProgram(GPT_COMPUTE_PROGRAM);
300 }
301};
302
303//-----------------------------------------------------------------------

Callers

nothing calls this directly

Calls 8

_updateAutoParamsMethod · 0.45
bindGpuProgramMethod · 0.45
_getBindingDelegateMethod · 0.45
_dispatchComputeMethod · 0.45
unbindGpuProgramMethod · 0.45

Tested by

no test coverage detected