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

Method render

Engine/source/renderInstance/renderTranslucentMgr.cpp:136–296  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

134}
135
136void RenderTranslucentMgr::render( SceneRenderState *state )
137{
138 PROFILE_SCOPE(RenderTranslucentMgr_render);
139
140 // Early out if nothing to draw.
141 if(!mElementList.size())
142 return;
143
144 GFXDEBUGEVENT_SCOPE(RenderTranslucentMgr_Render, ColorI::BLUE);
145
146 // Find the particle render manager (if we don't have it)
147 if(mParticleRenderMgr == NULL)
148 {
149 RenderPassManager *rpm = state->getRenderPass();
150 for( U32 i = 0; i < rpm->getManagerCount(); i++ )
151 {
152 RenderBinManager *bin = rpm->getManager(i);
153 if( bin->getRenderInstType() == RenderParticleMgr::RIT_Particles )
154 {
155 mParticleRenderMgr = reinterpret_cast<RenderParticleMgr *>(bin);
156 break;
157 }
158 }
159 }
160
161 GFXTransformSaver saver;
162
163 SceneData sgData;
164 sgData.init( state );
165
166 GFXVertexBuffer * lastVB = NULL;
167 GFXPrimitiveBuffer * lastPB = NULL;
168
169 // Restore transforms
170 MatrixSet &matrixSet = getRenderPass()->getMatrixSet();
171 matrixSet.restoreSceneViewProjection();
172
173 U32 binSize = mElementList.size();
174 for( U32 j=0; j<binSize; )
175 {
176 RenderInst *baseRI = mElementList[j].inst;
177
178 U32 matListEnd = j;
179
180 // render these separately...
181 if ( baseRI->type == RenderPassManager::RIT_ObjectTranslucent )
182 {
183 ObjectRenderInst* objRI = static_cast<ObjectRenderInst*>(baseRI);
184 objRI->renderDelegate( objRI, state, NULL );
185
186 lastVB = NULL;
187 lastPB = NULL;
188 j++;
189 continue;
190 }
191 else if (baseRI->type == RenderPassManager::RIT_VolumetricFog)
192 {
193 ObjectRenderInst* objRI = static_cast<ObjectRenderInst*>(baseRI);

Callers

nothing calls this directly

Calls 15

getManagerCountMethod · 0.80
renderInstanceMethod · 0.80
usesHardwareSkinningMethod · 0.80
isInstancedMethod · 0.80
sizeMethod · 0.45
getRenderPassMethod · 0.45
getManagerMethod · 0.45
initMethod · 0.45
setupPassMethod · 0.45
setSceneInfoMethod · 0.45
setTransformsMethod · 0.45
setNodeTransformsMethod · 0.45

Tested by

no test coverage detected