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

Method render

Engine/source/renderInstance/renderOcclusionMgr.cpp:170–238  ·  view source on GitHub ↗

----------------------------------------------------------------------------- render objects -----------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

168// render objects
169//-----------------------------------------------------------------------------
170void RenderOcclusionMgr::render( SceneRenderState *state )
171{
172 PROFILE_SCOPE(RenderOcclusionMgr_render);
173
174 // Early out if nothing to draw.
175 if ( !mElementList.size() )
176 return;
177
178 GFXTransformSaver saver;
179
180 GFXDEBUGEVENT_SCOPE(RenderOcclusionMgr_Render, ColorI::BLUE);
181
182 if ( mMatInstance == NULL )
183 init();
184
185 SceneData sgData;
186 sgData.init( state );
187
188 // Restore transforms
189 MatrixSet &matrixSet = getRenderPass()->getMatrixSet();
190 matrixSet.restoreSceneViewProjection();
191
192 // The material is single pass... just setup once here.
193 mMatInstance->setupPass( state, sgData );
194
195 U32 primCount;
196 for( U32 i=0; i<mElementList.size(); i++ )
197 {
198 OccluderRenderInst *ri = static_cast<OccluderRenderInst*>(mElementList[i].inst);
199 AssertFatal( ri->query != NULL, "RenderOcclusionMgr::render, OcclusionRenderInst has NULL GFXOcclusionQuery" );
200
201 if ( ri->isSphere )
202 {
203 GFX->setVertexBuffer( mSphereBuff );
204 primCount = mSpherePrimCount;
205 }
206 else
207 {
208 GFX->setVertexBuffer( mBoxBuff );
209 primCount = 12;
210 }
211
212 MatrixF xfm( *ri->orientation );
213 xfm.setPosition( ri->position );
214 xfm.scale( ri->scale );
215
216 matrixSet.setWorld(xfm);
217 mMatInstance->setTransforms(matrixSet, state);
218
219 if ( !smDebugRender )
220 GFX->setStateBlock( mRenderSB );
221
222 ri->query->begin();
223 GFX->drawPrimitive( GFXTriangleList, 0, primCount );
224 ri->query->end();
225
226 if ( ri->query2 )
227 {

Callers

nothing calls this directly

Calls 12

setVertexBufferMethod · 0.80
initFunction · 0.50
sizeMethod · 0.45
initMethod · 0.45
setupPassMethod · 0.45
setPositionMethod · 0.45
scaleMethod · 0.45
setTransformsMethod · 0.45
setStateBlockMethod · 0.45
beginMethod · 0.45
drawPrimitiveMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected