I love the smell of UnrealEd crashing in the morning. – tarquin

UE3:GameViewportClient (UT3)

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UT3 Object >> GameViewportClient

Contents

Package: 
Engine
Within class: 
Engine
Known classes within GameViewportClient:
Console, PlayerManagerInteraction, UIInteraction, UTConsole, UTGameInteraction
Direct subclass:
UTGameViewportClient
This class in other games:
UDK

A game viewport (FViewport) is a high-level abstract interface for the platform specific rendering, audio, and input subsystems. GameViewportClient is the engine's interface to a game viewport. Exactly one GameViewportClient is created for each instance of the game. The only case (so far) where you might have a single instance of Engine, but multiple instances of the game (and thus multiple GameViewportClients) is when you have more than PIE window running.

Responsibilities: propagating input events to the global interactions list


Copyright 1998-2008 Epic Games, Inc. All Rights Reserved.

Properties

bDisableWorldRendering

Type: bool

set to disable world rendering

bDisplayingUIMouseCursor

Type: bool

Modifiers: transient

Indicates whether the UI is currently displaying a mouse cursor. Prevents GameEngine::Tick() from recapturing mouse input while the UI has active scenes that mouse input.

bShowTitleSafeZone

Type: bool

if TRUE then the title safe border is drawn

bUIMouseCaptureOverride

Type: bool

Modifiers: transient

Indicates that the UI needs to receive all mouse input events. Usually enabled when the user is interacting with a draggable widget, such as a scrollbar or slider.

ConnectingMessage

Type: string

Modifiers: localized


Default value: "CONNECTING"

DebugProperties

Type: array<DebugDisplayProperty>


Default2PSplitType

Type: ESplitScreenType

Modifiers: const

Defaults for intances where there are multiple configs for a certain number of players

Default value: eSST_2P_HORIZONTAL

Default3PSplitType

Type: ESplitScreenType

Modifiers: const


Default value: eSST_3P_FAVOR_TOP

GlobalInteractions

Type: array<Interaction>

Modifiers: init

A list of interactions which have a chance at all input before the player's interactions.

LoadingMessage

Type: string

Modifiers: localized

Name: Localized transition messages.

Default value: "LOADING"

PausedMessage

Type: string

Modifiers: localized


Default value: "PAUSED"

PrecachingMessage

Type: string

Modifiers: localized


Default value: "PRECACHING"

SavingMessage

Type: string

Modifiers: localized


Default value: "SAVING"

ShowFlags

Type: Object.qword

Modifiers: const

The show flags used by the viewport's players.

SplitscreenInfo

Type: array<SplitscreenData>

Array of the screen data needed for all the different splitscreen configurations

Default value, index 0:

Member Value
PlayerData
Member Value
SizeX 1.0
SizeY 1.0

Default value, index 1:

Member Value
PlayerData
Member Value
SizeX 1.0
SizeY 0.5
Member Value
OriginY 0.5
SizeX 1.0
SizeY 0.5

Default value, index 2:

Member Value
PlayerData
Member Value
SizeX 0.5
SizeY 1.0
Member Value
OriginX 0.5
SizeX 0.5
SizeY 1.0

Default value, index 3:

Member Value
PlayerData
Member Value
SizeX 1.0
SizeY 0.5
Member Value
OriginY 0.5
SizeX 0.5
SizeY 0.5
Member Value
OriginX 0.5
OriginY 0.5
SizeX 0.5
SizeY 0.5

Default value, index 4:

Member Value
PlayerData
Member Value
SizeX 0.5
SizeY 0.5
Member Value
OriginX 0.5
SizeX 0.5
SizeY 0.5
Member Value
OriginY 0.5
SizeX 1.0
SizeY 0.5

Default value, index 5:

Member Value
PlayerData
Member Value
SizeX 0.5
SizeY 0.5
Member Value
OriginX 0.5
SizeX 0.5
SizeY 0.5
Member Value
OriginY 0.5
SizeX 0.5
SizeY 0.5
Member Value
OriginX 0.5
OriginY 0.5
SizeX 0.5
SizeY 0.5

SplitscreenType

Type: ESplitScreenType

Current splitscreen type being used

Default value: eSST_NOVALUE

TitleSafeZone

Type: TitleSafeZoneArea

border of safe area

Default value:

Member Value
MaxPercentX 0.9
MaxPercentY 0.9
RecommendedPercentX 0.8
RecommendedPercentY 0.8

UIController

Type: UIInteraction

The viewport's UI controller

UIControllerClass

Type: class<UIInteraction>

The class for the UI controller

Default value: Class'Engine.UIInteraction'

Viewport

Type: pointer{FViewport}

Modifiers: const

The platform-specific viewport which this viewport client is attached to.

ViewportConsole

Type: Console

The viewport's console. Might be null on consoles

ViewportFrame

Type: pointer{FViewportFrame}

Modifiers: const

The platform-specific viewport frame which this viewport is contained by.

Enums

ESafeZoneType

The 4 different kinds of safezones

eSZ_TOP 
eSZ_BOTTOM 
eSZ_LEFT 
eSZ_RIGHT 

ESplitScreenType

Enum of the different splitscreen types

eSST_NONE 
No split
eSST_2P_HORIZONTAL 
2 player horizontal split
eSST_2P_VERTICAL 
2 player vertical split
eSST_3P_FAVOR_TOP 
3 Player split with 1 player on top and 2 on bottom
eSST_3P_FAVOR_BOTTOM 
3 Player split with 1 player on bottom and 2 on top
eSST_4P 
4 Player split
eSST_COUNT 
eSST_NOVALUE 

Structs

DebugDisplayProperty

Modifiers: native

debug property display functionality to interact with this, use "display", "displayall", "displayclear"

Object Obj 
the object whose property to display. If this is a class, all objects of that class are drawn.
name PropertyName 
name of the property to display

PerPlayerSplitscreenData

Modifiers: native

Structure to store splitscreen data.

float SizeX 
float SizeY 
float OriginX 
float OriginY 

SplitscreenData

Modifiers: native

Structure containing all the player splitscreen datas per splitscreen configuration.

array<PerPlayerSplitscreenData> PlayerData 

TitleSafeZoneArea

Modifiers: native

Max/Recommended screen viewable extents as a percentage

float MaxPercentX 
float MaxPercentY 
float RecommendedPercentX 
float RecommendedPercentY 

Delegates

HandleInputAxis

delegate bool HandleInputAxis (int ControllerId, name Key, float Delta, float DeltaTime, bool bGamepad)

Provides script-only child classes the opportunity to handle input axis events received from the viewport. This delegate is called before the input axis event is passed to the interactions array for processing.

Parameters:

  • ControllerId - the controller that generated this input axis event
  • Key - the name of the axis that moved (KEY_MouseX, KEY_XboxTypeS_LeftX, etc.)
  • Delta - the movement delta for the axis
  • DeltaTime - the time (in seconds) since the last axis update.
  • bGamepad - input came from gamepad (ie xbox controller)

Returns:

return TRUE to indicate that the input event was handled. if the return value is TRUE, this input event will not be passed to the interactions array.

HandleInputChar

delegate bool HandleInputChar (int ControllerId, string Unicode)

Provides script-only child classes the opportunity to handle character input (typing) events received from the viewport. This delegate is called before the character event is passed to the interactions array for processing.

Parameters:

  • ControllerId - the controller that generated this character input event
  • Unicode - the character that was typed

Returns:

return TRUE to indicate that the input event was handled. if the return value is TRUE, this input event will not be passed to the interactions array.

HandleInputKey

delegate bool HandleInputKey (int ControllerId, name Key, Object.EInputEvent EventType, float AmountDepressed, optional bool bGamepad)

Provides script-only child classes the opportunity to handle input key events received from the viewport. This delegate is called before the input key event is passed to the interactions array for processing.

Parameters:

  • ControllerId - the controller that generated this input key event
  • Key - the name of the key which an event occured for (KEY_Up, KEY_Down, etc.)
  • EventType - the type of event which occured (pressed, released, etc.)
  • AmountDepressed - for analog keys, the depression percent.
  • bGamepad - input came from gamepad (ie xbox controller)

Returns:

return TRUE to indicate that the input event was handled. if the return value is TRUE, this input event will not be passed to the interactions array.

Functions

Exec functions

DebugCreatePlayer

exec function DebugCreatePlayer (int ControllerId)

Debug console command to create a player.

Parameters:

  • ControllerId - The controller ID the player should accept input from.

DebugRemovePlayer

exec function DebugRemovePlayer (int ControllerId)

Debug console command to remove the player with a given controller ID.

Parameters:

  • ControllerId - The controller ID to search for.

SetConsoleTarget

exec function SetConsoleTarget (int PlayerIndex)

Sets the player which console commands will be executed in the context of.

SetSplit

exec function SetSplit (int mode)

debug test for testing splitscreens

ShowTitleSafeArea

exec function ShowTitleSafeArea ()

Exec for toggling the display of the title safe area

SSSwapControllers

exec function SSSwapControllers ()

Rotates controller ids among gameplayers, useful for testing splitscreen with only one controller.

Native functions

ConsoleCommand

native function string ConsoleCommand (string Command)

Executes a console command in the context of this viewport.

Parameters:

  • Command - The command to execute.

Returns:

The output of the command will be returned.

GetViewportSize

native final function GetViewportSize (out Object.Vector2D out_ViewportSize)

Retrieve the size of the main viewport.

Parameters:

  • out_ViewportSize - out] will be filled in with the size of the main viewport

IsFullScreenViewport

native final function bool IsFullScreenViewport ()

Returns:

Whether or not the main viewport is fullscreen or windowed.

Events

CreatePlayer

event LocalPlayer CreatePlayer (int ControllerId, out string OutError, bool bSpawnActor)

Adds a new player.

Parameters:

  • ControllerId - The controller ID the player should accept input from.
  • OutError - If no player is returned, OutError will contain a string describing the reason.
  • SpawnActor - True if an actor should be spawned for the new player.

Returns:

The player which was created.

FindPlayerByControllerId

final event LocalPlayer FindPlayerByControllerId (int ControllerId)

Finds a player by controller ID.

Parameters:

  • ControllerId - The controller ID to search for.

Returns:

None or the player with matching controller ID.

GameSessionEnded

event GameSessionEnded ()

Called when the current map is being unloaded. Cleans up any references which would prevent garbage collection.

GetSubtitleRegion

event GetSubtitleRegion (out Object.Vector2D MinPos, out Object.Vector2D MaxPos)

called before rending subtitles to allow the game viewport to determine the size of the subtitle area

Parameters:

  • Min - top left bounds of subtitle region (0 to 1)
  • Max - bottom right bounds of subtitle region (0 to 1)

Init

event bool Init (out string OutError)

Initialize the game viewport.

Parameters:

  • OutError - If an error occurs, returns the error description.

Returns:

False if an error occurred, true if the viewport was initialized successfully.

InsertInteraction

event int InsertInteraction (Interaction NewInteraction, optional int InIndex)

Inserts an interaction into the GlobalInteractions array at the specified index

Parameters:

  • NewInteraction - the interaction that should be inserted into the array
  • Index - the position in the GlobalInteractions array to insert the element. if no value (or -1) is specified, inserts the interaction at the end of the array

Returns:

the position in the GlobalInteractions array where the element was placed, or -1 if the element wasn't added to the array for some reason

LayoutPlayers

event LayoutPlayers ()

Called before rendering to allow the game viewport to allocate subregions to players.

PostRender

event PostRender (Canvas Canvas)

Called after rendering the player views and HUDs to render menus, the console, etc. This is the last rendering call in the render loop

Parameters:

  • Canvas - The canvas to use for rendering.

RemovePlayer

event bool RemovePlayer (LocalPlayer ExPlayer)

Removes a player.

Parameters:

  • Player - The player to remove.

Returns:

whether the player was successfully removed. Removal is not allowed while connected to a server.

Tick

event Tick (float DeltaTime)

Called every frame to allow the game viewport to update time based state.

Parameters:

  • DeltaTime - The time since the last call to Tick.

Other instance functions

AddLocalPlayer

private final function AddLocalPlayer (LocalPlayer NewPlayer)

Adds a LocalPlayer to the local and global list of Players.

Parameters:

  • NewPlayer - the player to add

CalculateDeadZone

final function float CalculateDeadZone (LocalPlayer LPlayer, ESafeZoneType SZType, Canvas Canvas, optional bool bUseMaxPercent)


CalculatePixelCenter

final function CalculatePixelCenter (out float out_CenterX, out float out_CenterY, LocalPlayer LPlayer, Canvas Canvas, optional bool bUseMaxPercent)

Calculate the pixel value of the center of the viewport - this takes the safezones into consideration.

CalculateSafeZoneValues

final function CalculateSafeZoneValues (out float out_Horizontal, out float out_Vertical, Canvas Canvas, int LocalPlayerIndex, bool bUseMaxPercent)

Calculate the amount of safezone needed for a single side for both vertical and horizontal dimensions

ConvertLocalPlayerToGamePlayerIndex

final function int ConvertLocalPlayerToGamePlayerIndex (LocalPlayer LPlayer)

Convert a LocalPlayer to it's index in the GamePlayer array Returns -1 if the index could not be found.

DrawTitleSafeArea

function DrawTitleSafeArea (Canvas Canvas)

Draw the safe area using the current TitleSafeZone settings

DrawTransition

function DrawTransition (Canvas Canvas)

Displays the transition screen.

Parameters:

  • Canvas - The canvas to use for rendering.

DrawTransitionMessage

function DrawTransitionMessage (Canvas Canvas, string Message)

Print a centered transition message with a drop shadow.

GetPixelSizeOfScreen

final function GetPixelSizeOfScreen (out float out_Width, out float out_Height, Canvas Canvas, int LocalPlayerIndex)

Get the total pixel size of the screen. This is different from the pixel size of the viewport since we could be in splitscreen

HasBottomSafeZone

final function bool HasBottomSafeZone (int LocalPlayerIndex)

Whether the player at LocalPlayerIndex's viewport has a "bottom of viewport" safezone or not.

HasLeftSafeZone

final function bool HasLeftSafeZone (int LocalPlayerIndex)

Whether the player at LocalPlayerIndex's viewport has a "left of viewport" safezone or not.

HasRightSafeZone

final function bool HasRightSafeZone (int LocalPlayerIndex)

Whether the player at LocalPlayerIndex's viewport has a "right of viewport" safezone or not.

HasTopSafeZone

final function bool HasTopSafeZone (int LocalPlayerIndex)

Whether the player at LocalPlayerIndex's viewport has a "top of viewport" safezone or not.

NotifyPlayerAdded

final function NotifyPlayerAdded (int PlayerIndex, LocalPlayer AddedPlayer)

Notifies all interactions that a new player has been added to the list of active players.

Parameters:

  • PlayerIndex - the index [into the GamePlayers array] where the player was inserted
  • AddedPlayer - the player that was added

NotifyPlayerRemoved

final function NotifyPlayerRemoved (int PlayerIndex, LocalPlayer RemovedPlayer)

Notifies all interactions that a new player has been added to the list of active players.

Parameters:

  • PlayerIndex - the index [into the GamePlayers array] where the player was located
  • RemovedPlayer - the player that was removed

RemoveLocalPlayer

private final function RemoveLocalPlayer (LocalPlayer ExistingPlayer)

Removes a LocalPlayer from the local and global list of Players.

Parameters:

  • ExistingPlayer - the player to remove

SetSplitscreenConfiguration

function SetSplitscreenConfiguration (ESplitScreenType SplitType)

Sets up the splitscreen configuration and does some sanity checking