Interface IGameCameraService
Port for camera management: tracking registered cameras, choosing the active one, and driving split-screen viewport layout. Camera handles are opaque object references so this port stays engine-agnostic; the concrete engine camera type is only known to the Infrastructure implementation.
Namespace: Serenity.GameCamera.Application.Interfaces
Assembly: Serenity.GameCamera.Application.dll
Syntax
public interface IGameCameraService : IService, IFoundationSettings
Methods
ActivateSplitScreen(SplitScreenLayout)
Activates split-screen rendering using the given layout.
Declaration
void ActivateSplitScreen(SplitScreenLayout layout)
Parameters
| Type | Name | Description |
|---|---|---|
| SplitScreenLayout | layout | The split-screen layout to apply. |
AssignCameraToPlayer(int, object)
Assigns a camera to a specific player for split-screen rendering.
Declaration
void AssignCameraToPlayer(int playerIndex, object camera)
Parameters
| Type | Name | Description |
|---|---|---|
| int | playerIndex | Zero-based player index. |
| object | camera | Opaque handle to the engine camera instance. |
ClearActiveCamera()
Clears any explicit active-camera selection made via SetActiveCamera(object).
Declaration
void ClearActiveCamera()
ClearActiveCameraOverride()
Clears the active-camera override set via SetActiveCameraOverride(object).
Declaration
void ClearActiveCameraOverride()
DeactivateSplitScreen()
Deactivates split-screen rendering, returning to a single active camera.
Declaration
void DeactivateSplitScreen()
GetActiveCamera()
Gets the currently active camera. Resolution priority, highest first: an active
override set via SetActiveCameraOverride(object), an explicit selection made
via SetActiveCamera(object), the depth-priority winner among registered cameras
(see ActiveCameraSelector), and finally an engine "main camera" fallback. That
last fallback is an Infrastructure concern and is not implemented at this layer.
Declaration
object GetActiveCamera()
Returns
| Type | Description |
|---|---|
| object | Opaque handle to the active camera, or null when none can be resolved. |
GetPlayerAssignments()
Gets every current player-to-camera-and-viewport assignment.
Declaration
IReadOnlyList<PlayerViewportAssignment> GetPlayerAssignments()
Returns
| Type | Description |
|---|---|
| IReadOnlyList<PlayerViewportAssignment> | A read-only list of player viewport assignments. |
GetRegisteredCameras()
Gets every currently registered camera.
Declaration
IReadOnlyList<object> GetRegisteredCameras()
Returns
| Type | Description |
|---|---|
| IReadOnlyList<object> | A read-only list of opaque camera handles. |
RegisterCamera(object)
Registers a camera so it becomes eligible for active-camera selection.
Declaration
void RegisterCamera(object camera)
Parameters
| Type | Name | Description |
|---|---|---|
| object | camera | Opaque handle to the engine camera instance. |
Reset()
Resets the service to its initial state: no registered cameras, no active camera, split-screen off.
Declaration
void Reset()
SetActiveCamera(object)
Explicitly sets the active camera, taking precedence over depth-priority selection.
Declaration
void SetActiveCamera(object camera)
Parameters
| Type | Name | Description |
|---|---|---|
| object | camera | Opaque handle to the engine camera instance to activate. |
SetActiveCameraOverride(object)
Sets a temporary override that takes precedence over every other active-camera source.
Declaration
void SetActiveCameraOverride(object camera)
Parameters
| Type | Name | Description |
|---|---|---|
| object | camera | Opaque handle to the engine camera instance to force active. |
SetPlayerViewport(int, ViewportRect)
Explicitly assigns a viewport rect to a player, overriding the computed layout.
Declaration
void SetPlayerViewport(int playerIndex, ViewportRect rect)
Parameters
| Type | Name | Description |
|---|---|---|
| int | playerIndex | Zero-based player index. |
| ViewportRect | rect | The normalized viewport rect to assign. |
SetSplitScreenLayout(SplitScreenLayout)
Changes the split-screen layout used to compute player viewports.
Declaration
void SetSplitScreenLayout(SplitScreenLayout layout)
Parameters
| Type | Name | Description |
|---|---|---|
| SplitScreenLayout | layout | The split-screen layout to apply. |
UnassignPlayer(int)
Removes a player's camera assignment.
Declaration
void UnassignPlayer(int playerIndex)
Parameters
| Type | Name | Description |
|---|---|---|
| int | playerIndex | Zero-based player index. |
UnregisterCamera(object)
Unregisters a previously registered camera.
Declaration
void UnregisterCamera(object camera)
Parameters
| Type | Name | Description |
|---|---|---|
| object | camera | Opaque handle to the engine camera instance. |