MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / render

Method render

Engine/source/renderInstance/renderGlowMgr.cpp:147–282  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

145}
146
147void RenderGlowMgr::render( SceneRenderState *state )
148{
149 PROFILE_SCOPE( RenderGlowMgr_Render );
150
151 if ( !isGlowEnabled() )
152 return;
153
154 const U32 binSize = mElementList.size();
155
156 // If this is a non-diffuse pass or we have no objects to
157 // render then tell the effect to skip rendering.
158 if ( !state->isDiffusePass() || binSize == 0 )
159 {
160 getGlowEffect()->setSkip( true );
161 return;
162 }
163
164 GFXDEBUGEVENT_SCOPE( RenderGlowMgr_Render, ColorI::GREEN );
165
166 GFXTransformSaver saver;
167
168 // Respect the current viewport
169 mNamedTarget.setViewport(GFX->getViewport());
170
171 // Tell the superclass we're about to render, preserve contents
172 const bool isRenderingToTarget = _onPreRender( state, true );
173
174 // Clear all the buffers to black.
175 GFX->clear( GFXClearTarget, ColorI::BLACK, 1.0f, 0);
176
177 // Restore transforms
178 MatrixSet &matrixSet = getRenderPass()->getMatrixSet();
179 matrixSet.restoreSceneViewProjection();
180
181 // init loop data
182 SceneData sgData;
183 sgData.init( state, SceneData::GlowBin );
184
185 for( U32 j=0; j<binSize; )
186 {
187 RenderInst *_ri = mElementList[j].inst;
188 if(_ri->type == RenderPassManager::RIT_Particle)
189 {
190 // Find the particle render manager (if we don't have it)
191 if(mParticleRenderMgr == NULL)
192 {
193 RenderPassManager *rpm = state->getRenderPass();
194 for( U32 i = 0; i < rpm->getManagerCount(); i++ )
195 {
196 RenderBinManager *bin = rpm->getManager(i);
197 if( bin->getRenderInstType() == RenderParticleMgr::RIT_Particles )
198 {
199 mParticleRenderMgr = reinterpret_cast<RenderParticleMgr *>(bin);
200 break;
201 }
202 }
203 }
204

Callers

nothing calls this directly

Calls 15

isDiffusePassMethod · 0.80
setSkipMethod · 0.80
getManagerCountMethod · 0.80
_getHighResStateBlockMethod · 0.80
renderParticleMethod · 0.80
addHookMethod · 0.80
usesHardwareSkinningMethod · 0.80
sizeMethod · 0.45
setViewportMethod · 0.45
clearMethod · 0.45
initMethod · 0.45
getRenderPassMethod · 0.45

Tested by

no test coverage detected