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

Method onRender

Engine/source/gui/3d/guiTSControl.cpp:455–729  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

453//-----------------------------------------------------------------------------
454
455void GuiTSCtrl::onRender(Point2I offset, const RectI &updateRect)
456{
457 // Save the current transforms so we can restore
458 // it for child control rendering below.
459 GFXTransformSaver saver;
460 bool renderingToTarget = false;
461
462 mLastCameraQuery.displayDevice = NULL;
463
464 if (!processCameraQuery(&mLastCameraQuery))
465 {
466 // We have no camera, but render the GUI children
467 // anyway. This makes editing GuiTSCtrl derived
468 // controls easier in the GuiEditor.
469 renderChildControls(offset, updateRect);
470 return;
471 }
472
473 // jamesu - currently a little bit of a hack. Ideally we need to ditch the viewports in the query data and just rely on the display device
474 if (mLastCameraQuery.displayDevice)
475 {
476 if (mRenderStyle == RenderStyleStereoSideBySide)
477 {
478 mLastCameraQuery.displayDevice->setDrawMode(GFXDevice::RS_StereoSideBySide);
479 }
480 else if (mRenderStyle == RenderStyleStereoSeparate)
481 {
482 mLastCameraQuery.displayDevice->setDrawMode(GFXDevice::RS_StereoSeparate);
483 }
484 else
485 {
486 mLastCameraQuery.displayDevice->setDrawMode(GFXDevice::RS_Standard);
487 }
488
489 // The connection's display device may want to set the eye offset
490 if (mLastCameraQuery.displayDevice->providesEyeOffsets())
491 {
492 mLastCameraQuery.displayDevice->getEyeOffsets(mLastCameraQuery.eyeOffset);
493 }
494
495 // Grab field of view for both eyes
496 if (mLastCameraQuery.displayDevice->providesFovPorts())
497 {
498 mLastCameraQuery.displayDevice->getFovPorts(mLastCameraQuery.fovPort);
499 mLastCameraQuery.hasFovPort = true;
500 }
501
502 mLastCameraQuery.displayDevice->getStereoViewports(mLastCameraQuery.stereoViewports);
503 mLastCameraQuery.displayDevice->getStereoTargets(mLastCameraQuery.stereoTargets);
504
505 mLastCameraQuery.hasStereoTargets = mLastCameraQuery.stereoTargets[0];
506 }
507
508 GFXTargetRef origTarget = GFX->getActiveRenderTarget();
509 U32 origStyle = GFX->getCurrentRenderStyle();
510
511 // Set up the appropriate render style
512 Point2I renderSize = getExtent();

Callers

nothing calls this directly

Calls 15

makeFovPortFrustumFunction · 0.85
mDegToRadFunction · 0.85
mTanFunction · 0.85
renderGuiFunction · 0.85
setDrawModeMethod · 0.80
getActiveRenderTargetMethod · 0.80
getCurrentRenderStyleMethod · 0.80
setCurrentRenderStyleMethod · 0.80
setStereoEyeOffsetsMethod · 0.80

Tested by

no test coverage detected