logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    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.

    In this article
    © 2026 Serenity. All Rights Reserved