Skip to content

Game.Rendering.MeshLoadingState

Assembly:
Assembly-CSharp (main game assembly)

Namespace:
Game.Rendering

Type:
enum

Base:
System.Enum (backed by System.Int32)

Summary:
Represents the lifecycle states used by the mesh loading pipeline in the renderer. Each value indicates the current stage of loading, uploading, or releasing a mesh resource (CPU/GPU). Useful for tracking progress, making decisions about resource transitions, and debugging loading-related issues in mods or renderer code. Typical transitions move from None → Pending → Loading → Copying → Complete, with Obsolete/Unloading used for resources that are being replaced or freed. Default is provided as a fallback state.


Fields

  • None
    The default/uninitialized state (typically value 0). No loading activity is ongoing.

  • Pending
    The mesh is queued for loading (waiting to start actual I/O or processing).

  • Loading
    Active loading is occurring (reading/decoding mesh data, CPU-side processing).

  • Copying
    Data is being copied/uploaded to the GPU or otherwise transferred to its final location.

  • Complete
    The mesh has finished loading and is ready for use by the renderer.

  • Obsolete
    The mesh data has been superseded or invalidated (e.g., newer version exists). Usually a precursor to unloading.

  • Unloading
    The mesh is in the process of being released/freed.

  • Default
    A fallback state; can be used as an explicit default marker distinct from None.

Properties

  • (None)
    This enum does not define properties. Use standard enum operations (casting, comparisons, Enum.Parse, etc.).

Constructors

  • (None)
    Enums do not have user-defined constructors. The default numeric value corresponds to the first declared member (None).

Methods

  • (None defined)
    No custom methods are declared on this enum. Inherited System.Enum/Object methods are available (ToString, CompareTo, HasFlag, etc.).

Usage Example

// Typical usage: tracking and reacting to mesh loading state
MeshLoadingState state = MeshLoadingState.None;

// Queue for loading
state = MeshLoadingState.Pending;

// Later, when processing starts:
state = MeshLoadingState.Loading;

// After uploading to GPU:
state = MeshLoadingState.Copying;

// When ready:
state = MeshLoadingState.Complete;

// Check state before rendering or binding:
if (state == MeshLoadingState.Complete)
{
    // use the mesh
}

// Switch-based handling:
switch (state)
{
    case MeshLoadingState.Pending:
    case MeshLoadingState.Loading:
    case MeshLoadingState.Copying:
        // show loading placeholder
        break;
    case MeshLoadingState.Complete:
        // render normally
        break;
    case MeshLoadingState.Obsolete:
    case MeshLoadingState.Unloading:
        // free or ignore resource
        break;
    default:
        // fallback behavior
        break;
}