mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-07-13 15:44:36 +00:00
Fix debug draw in SBS mode & reflection update timing
This commit is contained in:
parent
de48afc00c
commit
fa7697b13e
1 changed files with 34 additions and 14 deletions
|
|
@ -358,6 +358,15 @@ void GuiTSCtrl::_internalRender(RectI viewport, Frustum &frustum)
|
||||||
GFXTransformSaver saver;
|
GFXTransformSaver saver;
|
||||||
Point2I renderSize = viewport.extent;
|
Point2I renderSize = viewport.extent;
|
||||||
|
|
||||||
|
if (mForceFOV != 0)
|
||||||
|
mLastCameraQuery.fov = mDegToRad(mForceFOV);
|
||||||
|
|
||||||
|
if (mCameraZRot)
|
||||||
|
{
|
||||||
|
MatrixF rotMat(EulerF(0, 0, mDegToRad(mCameraZRot)));
|
||||||
|
mLastCameraQuery.cameraMatrix.mul(rotMat);
|
||||||
|
}
|
||||||
|
|
||||||
if (mReflectPriority > 0)
|
if (mReflectPriority > 0)
|
||||||
{
|
{
|
||||||
// Get the total reflection priority.
|
// Get the total reflection priority.
|
||||||
|
|
@ -367,19 +376,10 @@ void GuiTSCtrl::_internalRender(RectI viewport, Frustum &frustum)
|
||||||
totalPriority += smAwakeTSCtrls[i]->mReflectPriority;
|
totalPriority += smAwakeTSCtrls[i]->mReflectPriority;
|
||||||
|
|
||||||
REFLECTMGR->update(mReflectPriority / totalPriority,
|
REFLECTMGR->update(mReflectPriority / totalPriority,
|
||||||
getExtent(),
|
renderSize,
|
||||||
mLastCameraQuery);
|
mLastCameraQuery);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mForceFOV != 0)
|
|
||||||
mLastCameraQuery.fov = mDegToRad(mForceFOV);
|
|
||||||
|
|
||||||
if (mCameraZRot)
|
|
||||||
{
|
|
||||||
MatrixF rotMat(EulerF(0, 0, mDegToRad(mCameraZRot)));
|
|
||||||
mLastCameraQuery.cameraMatrix.mul(rotMat);
|
|
||||||
}
|
|
||||||
|
|
||||||
GFX->setViewport(viewport);
|
GFX->setViewport(viewport);
|
||||||
|
|
||||||
// Clear the zBuffer so GUI doesn't hose object rendering accidentally
|
// 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);
|
PFXMGR->setFrameMatrices(mSaveModelview, mSaveProjection);
|
||||||
|
|
||||||
renderWorld(viewport);
|
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
|
// Render the canvas overlay if its available
|
||||||
if (mStereoCanvas.getPointer() && mStereoGuiTarget.getPointer() && mStereoCanvas->size() != 0)
|
if (mStereoCanvas.getPointer() && mStereoGuiTarget.getPointer() && mStereoCanvas->size() != 0)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue