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

Method SceneRenderState

Engine/source/scene/sceneRenderState.cpp:31–71  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29//-----------------------------------------------------------------------------
30
31SceneRenderState::SceneRenderState( SceneManager* sceneManager,
32 ScenePassType passType,
33 const SceneCameraState& view,
34 RenderPassManager* renderPass /* = NULL */,
35 bool usePostEffects /* = true */ )
36 : mSceneManager( sceneManager ),
37 mScenePassType( passType ),
38 mRenderPass( renderPass ? renderPass : sceneManager->getDefaultRenderPass() ),
39 mCullingState( sceneManager, view ),
40 mUsePostEffects( usePostEffects ),
41 mRenderLightmappedMeshes( true ),
42 mRenderNonLightmappedMeshes( true ),
43 mRenderArea( view.getFrustum().getBounds() ),
44 mDisableAdvancedLightingBins( false ),
45 mSceneRenderStyle( SRS_Standard ),
46 mAmbientLightColor( sceneManager->getAmbientLightColor() )
47{
48 // Setup the default parameters for the screen metrics methods.
49 mDiffuseCameraTransform = view.getHeadWorldViewMatrix();
50 mDiffuseCameraTransform.inverse();
51
52 // The vector eye is the camera vector with its
53 // length normalized to 1 / zFar.
54 getCameraTransform().getColumn( 1, &mVectorEye );
55 mVectorEye.normalize( 1.0f / getFarPlane() );
56
57 // TODO: What about ortho modes? Is near plane ok
58 // or do i need to remove it... maybe ortho has a near
59 // plane of 1 and it just works out?
60
61 const Frustum& frustum = view.getFrustum();
62 const RectI& viewport = view.getViewport();
63
64 mWorldToScreenScale.set( ( frustum.getNearDist() * viewport.extent.x ) / ( frustum.getNearRight() - frustum.getNearLeft() ),
65 ( frustum.getNearDist() * viewport.extent.y ) / ( frustum.getNearTop() - frustum.getNearBottom() ) );
66
67 // Assign shared matrix data to the render pass.
68
69 mRenderPass->assignSharedXform( RenderPassManager::View, view.getWorldViewMatrix() );
70 mRenderPass->assignSharedXform( RenderPassManager::Projection, view.getProjectionMatrix() );
71}
72
73//-----------------------------------------------------------------------------
74

Callers

nothing calls this directly

Calls 15

getDefaultRenderPassMethod · 0.80
getFrustumMethod · 0.80
getColumnMethod · 0.80
getNearDistMethod · 0.80
getNearRightMethod · 0.80
getNearLeftMethod · 0.80
getNearTopMethod · 0.80
getNearBottomMethod · 0.80
assignSharedXformMethod · 0.80
getProjectionMatrixMethod · 0.80
getBoundsMethod · 0.45
getAmbientLightColorMethod · 0.45

Tested by

no test coverage detected