mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
Fix debug draw in SBS mode & reflection update timing
This commit is contained in:
parent
de48afc00c
commit
fa7697b13e
|
|
@ -358,19 +358,6 @@ void GuiTSCtrl::_internalRender(RectI viewport, Frustum &frustum)
|
|||
GFXTransformSaver saver;
|
||||
Point2I renderSize = viewport.extent;
|
||||
|
||||
if (mReflectPriority > 0)
|
||||
{
|
||||
// Get the total reflection priority.
|
||||
F32 totalPriority = 0;
|
||||
for (U32 i = 0; i < smAwakeTSCtrls.size(); i++)
|
||||
if (smAwakeTSCtrls[i]->isVisible())
|
||||
totalPriority += smAwakeTSCtrls[i]->mReflectPriority;
|
||||
|
||||
REFLECTMGR->update(mReflectPriority / totalPriority,
|
||||
getExtent(),
|
||||
mLastCameraQuery);
|
||||
}
|
||||
|
||||
if (mForceFOV != 0)
|
||||
mLastCameraQuery.fov = mDegToRad(mForceFOV);
|
||||
|
||||
|
|
@ -380,6 +367,19 @@ void GuiTSCtrl::_internalRender(RectI viewport, Frustum &frustum)
|
|||
mLastCameraQuery.cameraMatrix.mul(rotMat);
|
||||
}
|
||||
|
||||
if (mReflectPriority > 0)
|
||||
{
|
||||
// Get the total reflection priority.
|
||||
F32 totalPriority = 0;
|
||||
for (U32 i = 0; i < smAwakeTSCtrls.size(); i++)
|
||||
if (smAwakeTSCtrls[i]->isVisible())
|
||||
totalPriority += smAwakeTSCtrls[i]->mReflectPriority;
|
||||
|
||||
REFLECTMGR->update(mReflectPriority / totalPriority,
|
||||
renderSize,
|
||||
mLastCameraQuery);
|
||||
}
|
||||
|
||||
GFX->setViewport(viewport);
|
||||
|
||||
// Clear the zBuffer so GUI doesn't hose object rendering accidentally
|
||||
|
|
@ -423,7 +423,27 @@ void GuiTSCtrl::_internalRender(RectI viewport, Frustum &frustum)
|
|||
PFXMGR->setFrameMatrices(mSaveModelview, mSaveProjection);
|
||||
|
||||
renderWorld(viewport);
|
||||
DebugDrawer::get()->render();
|
||||
|
||||
DebugDrawer* debugDraw = DebugDrawer::get();
|
||||
if (mRenderStyle == RenderStyleStereoSideBySide && debugDraw->willDraw())
|
||||
{
|
||||
// For SBS we need to render over each viewport
|
||||
Frustum frustum;
|
||||
|
||||
GFX->setViewport(mLastCameraQuery.stereoViewports[0]);
|
||||
MathUtils::makeFovPortFrustum(&frustum, mLastCameraQuery.ortho, mLastCameraQuery.nearPlane, mLastCameraQuery.farPlane, mLastCameraQuery.fovPort[0]);
|
||||
GFX->setFrustum(frustum);
|
||||
debugDraw->render(false);
|
||||
|
||||
GFX->setViewport(mLastCameraQuery.stereoViewports[1]);
|
||||
MathUtils::makeFovPortFrustum(&frustum, mLastCameraQuery.ortho, mLastCameraQuery.nearPlane, mLastCameraQuery.farPlane, mLastCameraQuery.fovPort[1]);
|
||||
GFX->setFrustum(frustum);
|
||||
debugDraw->render();
|
||||
}
|
||||
else
|
||||
{
|
||||
debugDraw->render();
|
||||
}
|
||||
|
||||
// Render the canvas overlay if its available
|
||||
if (mStereoCanvas.getPointer() && mStereoGuiTarget.getPointer() && mStereoCanvas->size() != 0)
|
||||
|
|
|
|||
Loading…
Reference in a new issue