Embedded and standalone viewport management - UPBGE/upbge GitHub Wiki
Introduction
The embedded and standalone viewport are managed quite differently. The major difference is that embedded player allow to set a camera zoom which reduce or increase the render area.
Framing
To adjust the camera viewport to the render area, framing is used. Three framing modes are possible.
Letter box
This framing adjust to the render area by adding colored bars, all the compute for both standalone and embedded player is done in RAS_FramingManager::ComputeViewport
.
Extend
This framing mode deform the camera viewport to match the render area, all the compute for both standalone and embedded player is done in RAS_FramingManager::ComputeViewport
.
Scaling
This framing mode scale the camera viewport to match the render area, all the compute for both standalone and embedded player is done in RAS_FramingManager::ComputeViewport
.
Embedded player exception.
Standalone player allow to use all the framing modes contrary to the embedded player which always use the extend framing management with a camera zoom. The zoom is to 1 when the framing mode set by the user is Letter Box
, else the zoom is to match the render area. The zoom is computed in LA_BlenderLauncher::InitCamera
.
This workaround simulate a Letter Box
by only restrict the render area and clear the zone outside.
Mouse coordinates
Because embedded player is simulating a Letter Box
framing with a Extend
framing in a restricted area, the mouse coordinate is different than the real Letter Box
framing in the standalone player.