Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)

Enlighten API 4.03 Documentation
Results will update as you type.
  • class Enlighten IPppiProbeSetStateHandler
  • class Enlighten IPrecompBuildParameters
  • class Enlighten IPrecompCubeMapBuildParameters
  • class Enlighten IPrecompCubeMapCore
  • class Enlighten IPrecompDepthCubeMap
  • class Enlighten IPrecompGeneratedSystems
  • class Enlighten IPrecompInputCubeMap
  • class Enlighten IPrecompInputGeometry
  • class Enlighten IPrecompInputItemDependencies
  • class Enlighten IPrecompInputMesh
  • class Enlighten IPrecompInputProbeOctree
  • class Enlighten IPrecompInputProbeRegion
  • class Enlighten IPrecompInputProbeSet
  • class Enlighten IPrecompInputSystem
  • class Enlighten IPrecompMeshValidation
  • class Enlighten IPrecompOutputCubeMap
  • class Enlighten IPrecompOutputProbeOctree
  • class Enlighten IPrecompOutputProbeSet
  • class Enlighten IPrecompPackedGeometry
  • class Enlighten IPrecompPackedInstance
  • class Enlighten IPrecompPackedSystem
  • class Enlighten IPrecompProbeAtlasMaxima
  • class Enlighten IPrecompProbeOctree
  • class Enlighten IPrecompProbeOctreeLayout
  • class Enlighten IPrecompProbeSetBuildParameters
  • class Enlighten IPrecompProbeSetRadiosity
  • class Enlighten IPrecompRadiosityNormalTexture
  • class Enlighten IPrecompSystemClustering
  • class Enlighten IPrecompSystemCompressedLightTransport
  • class Enlighten IPrecompSystemDependencies
  • class Enlighten IPrecompSystemDuster
  • class Enlighten IPrecompSystemLightTransport
  • class Enlighten IPrecompSystemPreClustering
  • class Enlighten IPrecompSystemRadiosity
  • class Enlighten IPrecompSystemsDependencies
  • class Enlighten IPrecompute
  • class Enlighten IProbeSetManager
  • class Enlighten IrradianceOutputDesc
  • class Enlighten ISystemSolutionSpace
  • class Enlighten IThreadGroup
  • class Enlighten IUpdateManager
  • class Enlighten IUpdateManagerWorker
  • class Enlighten LightMethodSelector
  • class Enlighten LightTransportPixel
  • class Enlighten LightValue64
  • class Enlighten LightValueIterator
  • class Enlighten Line2D
  • class Enlighten LrbCpuTextureSampler
  • class Enlighten MaterialAlbedoSampler
  • class Enlighten MaterialComponentBuffer
  • class Enlighten MaterialEmissiveSampler
  • class Enlighten MaterialGuids
  • class Enlighten MaterialSampler
  • class Enlighten MaterialTransparencySampler
  • class Enlighten MergeGeometry
  • class Enlighten MergeGeometryCache
  • class Enlighten MergeMap
  • class Enlighten MergeProcessParams
  • class Enlighten MergeStats
  • class Enlighten MergeTriGroupParams
  • class Enlighten MultithreadCpuUpdateManager
  • class Enlighten MultithreadCpuWorker
  • class Enlighten MultithreadCpuWorkerCommon
  • class Enlighten NullGeometryTransparencySampler
  • class Enlighten NullMaterialEmissiveSampler
  • class Enlighten NullMaterialTransparencySampler
  • class Enlighten NullSampler
  • class Enlighten OctreeSearchResult
  • class Enlighten PackedDusterPoint
  • class Enlighten PipelineBoxSetProbeRegion
  • class Enlighten PipelineCubemap
  • class Enlighten PipelineError
  • class Enlighten PipelineExcludedInstance
  • class Enlighten PipelineGeom
  • class Enlighten PipelineGeometryProperties
  • class Enlighten PipelineGlobalParameters
  • class Enlighten PipelineInstanceParameters
  • class Enlighten PipelineMesh
  • class Enlighten PipelinePaths
  • class Enlighten PipelinePointSetProbeRegion
  • class Enlighten PipelineProbeVolume
    Calendars

You‘re viewing this with anonymous access, so some content might be blocked.
/
class Enlighten IUpdateManager

    This is the documentation for Enlighten.

    class Enlighten IUpdateManager

    Sept 09, 2025

    class Enlighten::IUpdateManager

        └>Geo::IGeoReleasable

    This class is the base interface for the singleton object which manages all of the Enlighten updates for the systems and lights in the world, according to the current update strategy, solve type and albedo type.

    Functions

    Name Description
    AllocateCubeMap(const RadCubeMapCore *, IGpuTexture *, Geo::u8)

    Allocate a cube map object.

    AllocateDynamicObject(const Enlighten::DynamicObject &)

    Allocate a dynamic object.

    AllocateProbeSet(const RadProbeSetCore *, Enlighten::eSHOrder, RawBuffer, Geo::u8)

    Allocate a probe set object.

    AllocateProbeSet(const RadProbeSetCore *, bool, Enlighten::eSHOrder, RawBuffer, Geo::u8)

    Allocate a probe set object.

    AllocateStaticProbeSet(const RadProbeSetCore *, Enlighten::eSHOrder, RawBuffer, Geo::u8)

    Allocate a probe set object that is not solved at runtime.

    AllocateStaticProbeSet(const RadProbeSetCore *, bool, Enlighten::eSHOrder, RawBuffer, Geo::u8)

    Allocate a probe set object that is not solved at runtime.

    AllocateStaticSystem(Geo::GeoGuid, InputLightingBuffer *, Geo::s32)

    Allocate a radiosity system where the lighting does not change at runtime.

    AllocateSystem(const InputWorkspace *, const PrecomputedVisibilityData *, Geo::s32, Geo::u8)

    Allocate a radiosity system.

    AllocateSystem(const RadSystemCore *, const InputWorkspace *, const PrecomputedVisibilityData *, IGpuTexture *, Geo::s32, Geo::u8)

    Allocate a radiosity system.

    AllocateSystem(const RadSystemCore *, const InputWorkspace *, const PrecomputedVisibilityData *, Geo::s32, Geo::u8)

    Allocate a radiosity system.

    AllocateSystemSolutionSpace(const RadSystemCore *)

    Allocate the solution space, which contains the textures and memory for the output, for a system.

    AllocateSystemSolutionSpace(const RadSystemCore *, IGpuTexture *)

    Allocate the solution space, which contains the textures and memory for the output, for a system.

    Clear()

    Wait until asynchronous processing has finished, then remove all objects from the update manager.

    DetachCubeMap(Geo::GeoGuid)

    Advanced: remove a cube map from the render thread-side list, prior to its removal.

    DetachDynamicObject(Geo::GeoGuid)

    Advanced: remove a dynamic object from the render thread-side list, prior to its removal.

    DetachSystem(Geo::GeoGuid)

    Advanced: remove a system from the render thread-side system list, prior to its removal.

    EnqueueAddCubeMap(BaseCubeMap *)

    Add a previously allocated cube map to the worker's list.

    EnqueueAddDynamicObject(BaseDynamicObject *)

    Add a previously allocated dynamic object to the worker's list.

    EnqueueAddProbeSet(BaseProbeSet *)

    Add a previously allocated probe set to the worker's list.

    EnqueueAddSystem(BaseSystem *)

    Add a previously allocated system to the worker's list.

    EnqueueReleaseSystemSolutionSpaces(ISystemSolutionSpace *const *, Geo::s32)

    Enqueue system solution spaces release.

    EnqueueRemoveAllLights()

    Removes all lights.

    EnqueueRemoveCubeMap(BaseCubeMap *)

    Remove the previously added cube map.

    EnqueueRemoveDynamicObject(Geo::GeoGuid)

    Removes a dynamic object.

    EnqueueRemoveEmissiveEnvironment(Geo::GeoGuid)

    Removes an environment.

    EnqueueRemoveLight(Geo::GeoGuid)

    Removes a light.

    EnqueueRemoveProbeSet(BaseProbeSet *)

    Remove the previously added probe set.

    EnqueueRemoveSystem(BaseSystem *)

    Remove the previously added system.

    EnqueueRemoveSystemSolutionSpaces(Geo::GeoGuid)

    Enqueue system solution spaces remove.

    EnqueueSetAllUpdateCounters(Geo::s32)

    Set the update counters for all systems, probe sets and cube maps in the update manager.

    EnqueueSetDoFullSolveNextFrame()

    Set the flag which turns off temporal coherence for the next frame and performs a full solve from scratch.

    EnqueueSetLightBankUpdateCounter(Geo::s32, Geo::s32)

    Set the light bank update counter for the given light bank.

    EnqueueSetProbeSetTransform(Geo::GeoGuid, const Geo::Matrix &)

    Set the world-to-local-space transform for the given probe set. This will trigger a global recomputation of all probe interpolants.

    EnqueueSetVisibilityBits(Geo::GeoGuid, Geo::GeoGuid, void *)

    Set the visibility data associated to a given (system/cube map, spotlight) pair.

    EnqueueSetWorkerProperties(const UpdateManagerWorkerProperties &)

    Enqueue a change to the worker's global state.

    EnqueueUpdateEmissiveEnvironment(Geo::GeoGuid, Geo::s32, const Geo::v128 *)

    Update the environment with the given GUID. If this environment hasn't been updated before it will be added to the update manager.

    EnqueueUpdateLight(const Geo::GeoGuid &, const LightType &, UpdateLightOptions)

    Add the light.

    FlushCommands()

    Wait for all commands to be executed before proceeding. This blocks the current thread, potentially for a long time.

    GetCubeMapTexture(Geo::GeoGuid)

    Get the output texture for the cube map texture.

    GetDynamicObjectEnvironmentVisibilityShCoeff(Geo::GeoGuid, Geo::SHCoeff &)

    Gets the environment visibility probe output for a given dynamic object.

    GetDynamicObjectShCoeff(Geo::GeoGuid, Geo::SHCoeff &, Geo::SHCoeff &, Geo::SHCoeff &)

    Gets the probe output for a given dynamic object.

    GetNumCubeMaps()

    Returns number of cube maps registered with the update manager.

    GetNumDynamicObjects()

    Returns number of dynamic objects registered with the update manager.

    GetNumProbeSets()

    Returns number of probe sets registered with the update manager.

    GetNumSystems()

    Returns number of systems registered with the update manager.

    GetOutputTexture(Geo::GeoGuid, OutputTextureType)

    Gets the output texture of the given type for the given system.

    GetProbeOutput(Geo::GeoGuid, Geo::s32)

    Returns the probe output for the given probe set and probe index, or NULL if the probe set produces compressed output.

    GetU8ProbeOutput(Geo::GeoGuid, Geo::s32)

    Returns the compressed probe output for the given probe set and probe index, or NULL if the probe set produces uncompressed output.

    GetWorldToUvwMatrix(Geo::GeoGuid)

    Gets the matrix to transform world space to UVW texture space for a dynamic object.

    HasCubeMap(Geo::GeoGuid)

    Returns true if the update manager has a cube map with this GUID; false if it doesn't.

    HasDynamicObject(Geo::GeoGuid)

    Returns true if the update manager has a dynamic object with this GUID.

    HasProbeSet(Geo::GeoGuid)

    Returns true if the update manager has a probe set with this GUID; false if it doesn't.

    HasSystem(Geo::GeoGuid)

    Returns true if the update manager has a system with this GUID; false if it doesn't.

    IsUpdateLimited()

    Are we at the limit of the number of allowed enqueued updates, and therefore the update rate is throttled?

    NonCopyable(NonCopyable &&)

    Defaulted to allow move.

    operator=(NonCopyable &&)

    Defaulted to allow move.

    Release()

    Destroys the update manager and all the resources it owns.

    Release()

    Free this object that was created within the Enlighten libraries.

    RequiresVisibilityDataOnCpu()

    Returns true for Update Managers that require spotlight visibility to be copied to the CPU before it can be used.

    StopWorking()

    Wait for all asynchronous processing to finish, then quit the worker thread(s), if any.

    Update(Geo::u8)

    The main update function.

    Update(const Geo::v128 &, float, IPppiComputeUpdateHandler &, const PppiIrradiance16 *, Geo::u8)

    The main update function.

    Update(const Geo::v128 &, float, const PppiIrradiance16 *, IPppiComputeUpdateHandler *, Geo::u8)

    The main update function.


    virtual BaseCubeMap* Enlighten::IUpdateManager::AllocateCubeMap


    public: BaseCubeMap * AllocateCubeMap
    (
        const RadCubeMapCore * coreData,
        IGpuTexture * outputTexture,
        Geo::u8 partition
    )


    Allocate a cube map object.

    Pointer parameters that are are owned by the caller may be read any time after EnqueueAddCubeMap and before the completion of the async RemoveCubeMap command.

    Parameters
    [in] coreData

    The runtime data that represents the cube map. Owned by the caller.

    [in] outputTexture

    The cubemap output texture. Takes ownership.

    [in] partition

    The (optional) index of the partition containing this cube map.


    virtual BaseDynamicObject* Enlighten::IUpdateManager::AllocateDynamicObject


    public: BaseDynamicObject * AllocateDynamicObject
    (
        const Enlighten::DynamicObject & dynamicObjectDesc
    )


    Allocate a dynamic object.

    This will add the object to the update manager's list but it must be separately added to the worker's copy via EnqueueAddDynamicObject.

    Parameters
    [in] dynamicObjectDesc

    The dynamic object to add


    virtual BaseProbeSet* Enlighten::IUpdateManager::AllocateProbeSet


    public: BaseProbeSet * AllocateProbeSet
    (
        const RadProbeSetCore * coreData,
        Enlighten::eSHOrder shOrder,
        RawBuffer output,
        Geo::u8 partition
    )


    Allocate a probe set object.

    Pointer parameters that are are owned by the caller may be read (and output may be written) any time after EnqueueAddProbeSet and before the completion of the async RemoveProbeSet command. Only one copy of a given probe set may be allocated/added at a time. Returns null if the same probe set is added a second time before being removed. In the case where two zones each contain the same probe set data (same GUID) allocate/add the probe set once when the first zone is loaded, and remove the probe set once after the last zone which contains the probe set is unloaded.

    Parameters
    [in] coreData

    The runtime data that represents the probe set. Owned by the caller.

    [in] shOrder

    The number of spherical harmonic coefficients in the solved output for this probe set.

    [in] output

    The (optional) output buffer. Owned by the caller. This buffer may be written to any time after AddProbeSet and before the completion of the async RemoveProbeSet command.

    [in] partition

    The (optional) index of the partition containing this probe set.


    virtual BaseProbeSet* Enlighten::IUpdateManager::AllocateProbeSet


    public: BaseProbeSet * AllocateProbeSet
    (
        const RadProbeSetCore * coreData,
        bool useU8Output,
        Enlighten::eSHOrder shOrder,
        RawBuffer output,
        Geo::u8 partition
    )


    Allocate a probe set object.

    Pointer parameters that are are owned by the caller may be read (and output may be written) any time after EnqueueAddProbeSet and before the completion of the async RemoveProbeSet command. Only one copy of a given probe set may be allocated/added at a time. Returns null if the same probe set is added a second time before being removed. In the case where two zones each contain the same probe set data (same GUID) allocate/add the probe set once when the first zone is loaded, and remove the probe set once after the last zone which contains the probe set is unloaded.

    Parameters
    [in] coreData

    The runtime data that represents the probe set. Owned by the caller.

    [in] useU8Output

    When true, this probe set is solved to compressed probe output format. This may reduce lighting quality and introduce artifacts.

    [in] shOrder

    The number of spherical harmonic coefficients in the solved output for this probe set.

    [in] output

    The (optional) output buffer. Owned by the caller. This buffer may be written to any time after AddProbeSet and before the completion of the async RemoveProbeSet command.

    [in] partition

    The (optional) index of the partition containing this probe set.


    virtual BaseProbeSet* Enlighten::IUpdateManager::AllocateStaticProbeSet


    public: BaseProbeSet * AllocateStaticProbeSet
    (
        const RadProbeSetCore * coreData,
        Enlighten::eSHOrder shOrder,
        RawBuffer output,
        Geo::u8 partition
    )


    Allocate a probe set object that is not solved at runtime.

    Pointer parameters that are are owned by the caller may be read (and output may be written) any time after EnqueueAddProbeSet and before the completion of the async RemoveProbeSet command.

    Parameters
    [in] coreData

    The runtime data that represents the probe set. Owned by the caller.

    [in] shOrder

    The number of spherical harmonic coefficients in the solved output for this probe set.

    [in] output

    The (optional) output buffer. Owned by the caller. This buffer may be written to any time after AddProbeSet and before the completion of the async RemoveProbeSet command.

    [in] partition

    The (optional) index of the partition containing this probe set.


    virtual BaseProbeSet* Enlighten::IUpdateManager::AllocateStaticProbeSet


    public: BaseProbeSet * AllocateStaticProbeSet
    (
        const RadProbeSetCore * coreData,
        bool useU8Output,
        Enlighten::eSHOrder shOrder,
        RawBuffer output,
        Geo::u8 partition
    )


    Allocate a probe set object that is not solved at runtime.

    Pointer parameters that are are owned by the caller may be read (and output may be written) any time after EnqueueAddProbeSet and before the completion of the async RemoveProbeSet command.

    Parameters
    [in] coreData

    The runtime data that represents the probe set. Owned by the caller.

    [in] useU8Output

    When true, this probe set is solved to compressed probe output format. This may reduce lighting quality and introduce artifacts.

    [in] shOrder

    The number of spherical harmonic coefficients in the solved output for this probe set.

    [in] output

    The (optional) output buffer. Owned by the caller. This buffer may be written to any time after AddProbeSet and before the completion of the async RemoveProbeSet command.

    [in] partition

    The (optional) index of the partition containing this probe set.


    virtual BaseSystem* Enlighten::IUpdateManager::AllocateStaticSystem


    public: BaseSystem * AllocateStaticSystem
    (
        Geo::GeoGuid systemId,
        InputLightingBuffer * inputLightingBuffer,
        Geo::s32 lightChannels
    )


    Allocate a radiosity system where the lighting does not change at runtime.

    A saved InputLightingBuffer ensures that the lighting bounces into systems which depend on this system. Pointer parameters that are are owned by the caller may be read any time after EnqueueAddSystem and before the completion of the async RemoveSystem command.

    Parameters
    [in] systemId

    The unique ID of the system. Provide the same value to RemoveSystem.

    [in] inputLightingBuffer

    The (static) input lighting for the system. Owned by the caller.

    [in] lightChannels

    Only lights which have the same light channel bit set are used as input for this system.


    virtual BaseSystem* Enlighten::IUpdateManager::AllocateSystem


    public: BaseSystem * AllocateSystem
    (
        const InputWorkspace * inputWorkspace,
        const PrecomputedVisibilityData * visibilityData,
        Geo::s32 lightChannels,
        Geo::u8 partition
    )


    Allocate a radiosity system.

    Pointer parameters that are are owned by the caller may be read any time after EnqueueAddSystem and before the completion of the async RemoveSystem command.

    Parameters
    [in] inputWorkspace

    The input workspace data for this system. Owned by the caller.

    [in] visibilityData

    The directional visibility data for this system. Owned by the caller.

    [in] lightChannels

    Only lights which have the same light channel bit set are used as input for this system.

    [in] partition

    The (optional) index of the partition containing this system.


    virtual BaseSystem* Enlighten::IUpdateManager::AllocateSystem


    public: BaseSystem * AllocateSystem
    (
        const RadSystemCore * coreData,
        const InputWorkspace * inputWorkspace,
        const PrecomputedVisibilityData * visibilityData,
        IGpuTexture * outputTextures,
        Geo::s32 lightChannels,
        Geo::u8 partition
    )


    Allocate a radiosity system.

    Pointer parameters that are are owned by the caller may be read any time after EnqueueAddSystem and before the completion of the async RemoveSystem command. Takes ownership of the output textures.


    virtual BaseSystem* Enlighten::IUpdateManager::AllocateSystem


    public: BaseSystem * AllocateSystem
    (
        const RadSystemCore * coreData,
        const InputWorkspace * inputWorkspace,
        const PrecomputedVisibilityData * visibilityData,
        Geo::s32 lightChannels,
        Geo::u8 partition
    )


    Allocate a radiosity system.

    Pointer parameters that are are owned by the caller may be read any time after EnqueueAddSystem and before the completion of the async RemoveSystem command.


    virtual ISystemSolutionSpace* Enlighten::IUpdateManager::AllocateSystemSolutionSpace


    public: ISystemSolutionSpace * AllocateSystemSolutionSpace
    (
        const RadSystemCore * coreData
    )


    Allocate the solution space, which contains the textures and memory for the output, for a system.

    This version requires an IGpuTextureAllocator to have been set on the update manager properties.


    virtual ISystemSolutionSpace* Enlighten::IUpdateManager::AllocateSystemSolutionSpace


    public: ISystemSolutionSpace * AllocateSystemSolutionSpace
    (
        const RadSystemCore * coreData,
        IGpuTexture * outputTextures
    )


    Allocate the solution space, which contains the textures and memory for the output, for a system.

    This version requires the customer allocated textures to be provided.


    virtual void Enlighten::IUpdateManager::Clear


    public: void Clear()


    Wait until asynchronous processing has finished, then remove all objects from the update manager.


    virtual void Enlighten::IUpdateManager::DetachCubeMap


    public: void DetachCubeMap
    (
        Geo::GeoGuid cubeMapId
    )


    Advanced: remove a cube map from the render thread-side list, prior to its removal.

    This is automatically performed by EnqueueRemoveCubeMap, so only needs to be called if you are using a custom command to perform the removal.


    virtual void Enlighten::IUpdateManager::DetachDynamicObject


    public: void DetachDynamicObject
    (
        Geo::GeoGuid objectId
    )


    Advanced: remove a dynamic object from the render thread-side list, prior to its removal.

    This is automatically performed by EnqueueRemoveDynamicObject, so only needs to be called if you are using a custom command to perform the removal.


    virtual void Enlighten::IUpdateManager::DetachSystem


    public: void DetachSystem
    (
        Geo::GeoGuid systemId
    )


    Advanced: remove a system from the render thread-side system list, prior to its removal.

    This is automatically performed by EnqueueRemoveSystem, so only needs to be called if you are using a custom command to perform the removal.


    virtual bool Enlighten::IUpdateManager::EnqueueAddCubeMap


    public: bool EnqueueAddCubeMap
    (
        BaseCubeMap * cubeMap
    )


    Add a previously allocated cube map to the worker's list.


    virtual bool Enlighten::IUpdateManager::EnqueueAddDynamicObject


    public: bool EnqueueAddDynamicObject
    (
        BaseDynamicObject * object
    )


    Add a previously allocated dynamic object to the worker's list.


    virtual bool Enlighten::IUpdateManager::EnqueueAddProbeSet


    public: bool EnqueueAddProbeSet
    (
        BaseProbeSet * probeSet
    )


    Add a previously allocated probe set to the worker's list.


    virtual bool Enlighten::IUpdateManager::EnqueueAddSystem


    public: bool EnqueueAddSystem
    (
        BaseSystem * system
    )


    Add a previously allocated system to the worker's list.


    virtual void Enlighten::IUpdateManager::EnqueueReleaseSystemSolutionSpaces


    public: void EnqueueReleaseSystemSolutionSpaces
    (
        ISystemSolutionSpace *const * ,
        Geo::s32 count
    )


    Enqueue system solution spaces release.

    This will add the solution spaces to a list of objects to destroy on next update.


    virtual void Enlighten::IUpdateManager::EnqueueRemoveAllLights


    public: void EnqueueRemoveAllLights()


    Removes all lights.


    virtual void Enlighten::IUpdateManager::EnqueueRemoveCubeMap


    public: void EnqueueRemoveCubeMap
    (
        BaseCubeMap * cubeMap
    )


    Remove the previously added cube map.


    virtual void Enlighten::IUpdateManager::EnqueueRemoveDynamicObject


    public: void EnqueueRemoveDynamicObject
    (
        Geo::GeoGuid objectId
    )


    Removes a dynamic object.


    virtual void Enlighten::IUpdateManager::EnqueueRemoveEmissiveEnvironment


    public: void EnqueueRemoveEmissiveEnvironment
    (
        Geo::GeoGuid environmentId
    )


    Removes an environment.


    virtual void Enlighten::IUpdateManager::EnqueueRemoveLight


    public: void EnqueueRemoveLight
    (
        Geo::GeoGuid lightId
    )


    Removes a light.


    virtual void Enlighten::IUpdateManager::EnqueueRemoveProbeSet


    public: void EnqueueRemoveProbeSet
    (
        BaseProbeSet * probeSet
    )


    Remove the previously added probe set.


    virtual void Enlighten::IUpdateManager::EnqueueRemoveSystem


    public: void EnqueueRemoveSystem
    (
        BaseSystem * system
    )


    Remove the previously added system.


    virtual void Enlighten::IUpdateManager::EnqueueRemoveSystemSolutionSpaces


    public: void EnqueueRemoveSystemSolutionSpaces
    (
        Geo::GeoGuid systemId
    )


    Enqueue system solution spaces remove.

    This will remove all the solution spaces from a system.


    virtual void Enlighten::IUpdateManager::EnqueueSetAllUpdateCounters


    public: void EnqueueSetAllUpdateCounters
    (
        Geo::s32 count
    )


    Set the update counters for all systems, probe sets and cube maps in the update manager.


    virtual void Enlighten::IUpdateManager::EnqueueSetDoFullSolveNextFrame


    public: void EnqueueSetDoFullSolveNextFrame()


    Set the flag which turns off temporal coherence for the next frame and performs a full solve from scratch.


    virtual void Enlighten::IUpdateManager::EnqueueSetLightBankUpdateCounter


    public: void EnqueueSetLightBankUpdateCounter
    (
        Geo::s32 lightBankId,
        Geo::s32 count
    )


    Set the light bank update counter for the given light bank.


    virtual void Enlighten::IUpdateManager::EnqueueSetProbeSetTransform


    public: void EnqueueSetProbeSetTransform
    (
        Geo::GeoGuid probeSetId,
        const Geo::Matrix & transform
    )


    Set the world-to-local-space transform for the given probe set. This will trigger a global recomputation of all probe interpolants.


    virtual void Enlighten::IUpdateManager::EnqueueSetVisibilityBits


    public: void EnqueueSetVisibilityBits
    (
        Geo::GeoGuid objectId,
        Geo::GeoGuid lightId,
        void * visibilityBits
    )


    Set the visibility data associated to a given (system/cube map, spotlight) pair.

    Typically, this data will have been computed using the GPU (for instance, in GeoRadiosity by the GpuSpotlightVisibilityEngine).


    virtual bool Enlighten::IUpdateManager::EnqueueSetWorkerProperties


    public: bool EnqueueSetWorkerProperties
    (
        const UpdateManagerWorkerProperties & properties
    )


    Enqueue a change to the worker's global state.


    virtual void Enlighten::IUpdateManager::EnqueueUpdateEmissiveEnvironment


    public: void EnqueueUpdateEmissiveEnvironment
    (
        Geo::GeoGuid environmentId,
        Geo::s32 resolution,
        const Geo::v128 * values
    )


    Update the environment with the given GUID. If this environment hasn't been updated before it will be added to the update manager.


    void Enlighten::IUpdateManager::EnqueueUpdateLight


    public: void EnqueueUpdateLight
    (
        const Geo::GeoGuid & guid,
        const LightType & light,
        UpdateLightOptions options
    )


    Add the light.

    Parameters
    [in] guid

    The unique ID of the light source.

    [in] light

    The light object derived from Enlighten::InputLightBase

    [in] options

    Optional properties of the light.


    virtual void Enlighten::IUpdateManager::FlushCommands


    public: void FlushCommands()


    Wait for all commands to be executed before proceeding. This blocks the current thread, potentially for a long time.


    virtual IGpuTexture* Enlighten::IUpdateManager::GetCubeMapTexture


    public: IGpuTexture * GetCubeMapTexture
    (
        Geo::GeoGuid cubeMapId
    ) const


    Get the output texture for the cube map texture.

    Implemented with a binary search by GUID. To avoid calling this, keep a reference to the output texture you provide to AllocateCubeMap.


    virtual bool Enlighten::IUpdateManager::GetDynamicObjectEnvironmentVisibilityShCoeff


    public: bool GetDynamicObjectEnvironmentVisibilityShCoeff
    (
        Geo::GeoGuid objectId,
        Geo::SHCoeff & envVisCoeff
    ) const


    Gets the environment visibility probe output for a given dynamic object.


    virtual bool Enlighten::IUpdateManager::GetDynamicObjectShCoeff


    public: bool GetDynamicObjectShCoeff
    (
        Geo::GeoGuid objectId,
        Geo::SHCoeff & redCoeff,
        Geo::SHCoeff & greenCoeff,
        Geo::SHCoeff & blueCoeff
    ) const


    Gets the probe output for a given dynamic object.


    virtual Geo::s32 Enlighten::IUpdateManager::GetNumCubeMaps


    public: Geo::s32 GetNumCubeMaps() const


    Returns number of cube maps registered with the update manager.


    virtual Geo::s32 Enlighten::IUpdateManager::GetNumDynamicObjects


    public: Geo::s32 GetNumDynamicObjects() const


    Returns number of dynamic objects registered with the update manager.


    virtual Geo::s32 Enlighten::IUpdateManager::GetNumProbeSets


    public: Geo::s32 GetNumProbeSets() const


    Returns number of probe sets registered with the update manager.


    virtual Geo::s32 Enlighten::IUpdateManager::GetNumSystems


    public: Geo::s32 GetNumSystems() const


    Returns number of systems registered with the update manager.


    virtual IGpuTexture* Enlighten::IUpdateManager::GetOutputTexture


    public: IGpuTexture * GetOutputTexture
    (
        Geo::GeoGuid systemId,
        OutputTextureType textureType
    ) const


    Gets the output texture of the given type for the given system.

    Implemented with a binary search by GUID. To avoid calling this, keep a reference to the output textures you provide to AllocateSystem or AllocateSystemSolutionSpace.


    virtual const float* Enlighten::IUpdateManager::GetProbeOutput


    public: const float * GetProbeOutput
    (
        Geo::GeoGuid probeSetId,
        Geo::s32 probeIndex
    ) const


    Returns the probe output for the given probe set and probe index, or NULL if the probe set produces compressed output.


    virtual const Geo::u8* Enlighten::IUpdateManager::GetU8ProbeOutput


    public: const Geo::u8 * GetU8ProbeOutput
    (
        Geo::GeoGuid probeSetId,
        Geo::s32 probeIndex
    ) const


    Returns the compressed probe output for the given probe set and probe index, or NULL if the probe set produces uncompressed output.


    virtual Geo::Matrix Enlighten::IUpdateManager::GetWorldToUvwMatrix


    public: Geo::Matrix GetWorldToUvwMatrix
    (
        Geo::GeoGuid objectId
    ) const


    Gets the matrix to transform world space to UVW texture space for a dynamic object.


    virtual bool Enlighten::IUpdateManager::HasCubeMap


    public: bool HasCubeMap
    (
        Geo::GeoGuid cubeMapId
    )


    Returns true if the update manager has a cube map with this GUID; false if it doesn't.


    virtual bool Enlighten::IUpdateManager::HasDynamicObject


    public: bool HasDynamicObject
    (
        Geo::GeoGuid objectId
    )


    Returns true if the update manager has a dynamic object with this GUID.


    virtual bool Enlighten::IUpdateManager::HasProbeSet


    public: bool HasProbeSet
    (
        Geo::GeoGuid probeSetId
    )


    Returns true if the update manager has a probe set with this GUID; false if it doesn't.


    virtual bool Enlighten::IUpdateManager::HasSystem


    public: bool HasSystem
    (
        Geo::GeoGuid systemId
    )


    Returns true if the update manager has a system with this GUID; false if it doesn't.


    virtual bool Enlighten::IUpdateManager::IsUpdateLimited


    public: bool IsUpdateLimited() const


    Are we at the limit of the number of allowed enqueued updates, and therefore the update rate is throttled?


    Geo::NonCopyable::NonCopyable


    public: NonCopyable
    (
        NonCopyable &&
    )


    Defaulted to allow move.


    NonCopyable& Geo::NonCopyable::operator=


    public: NonCopyable & operator=
    (
        NonCopyable &&
    )


    Defaulted to allow move.


    virtual void Enlighten::IUpdateManager::Release


    public: void Release()


    Destroys the update manager and all the resources it owns.


    virtual void Geo::IGeoReleasable::Release


    public: void Release()


    Free this object that was created within the Enlighten libraries.

    Expect this to behave in a similar way to calling 'delete(this)'


    virtual bool Enlighten::IUpdateManager::RequiresVisibilityDataOnCpu


    public: bool RequiresVisibilityDataOnCpu() const


    Returns true for Update Managers that require spotlight visibility to be copied to the CPU before it can be used.


    virtual void Enlighten::IUpdateManager::StopWorking


    public: void StopWorking()


    Wait for all asynchronous processing to finish, then quit the worker thread(s), if any.


    virtual void Enlighten::IUpdateManager::Update


    public: void Update
    (
        Geo::u8 partition
    )


    The main update function.

    This should be called once per frame from the rendering thread.


    virtual PppiShaderParameters Enlighten::IUpdateManager::Update


    public: PppiShaderParameters Update
    (
        const Geo::v128 & viewOrigin,
        float lodDistance,
        IPppiComputeUpdateHandler & computeUpdateHandler,
        const PppiIrradiance16 * border,
        Geo::u8 partition
    )


    The main update function.

    This should be called once per frame from the rendering thread. Use this overload when per pixel probe lighting is enabled.

    Parameters
    [in] viewOrigin

    The position in world units at which the greatest level of detail is required. This is usually the camera position.

    [in] lodDistance

    The distance in voxel units from the view origin at which to begin reduction of the level of detail, zero for maximum.

    [in] border

    If non-null, is the lighting for areas not covered by any probe set.

    [in] computeUpdateHandler

    If non-null, will be called during Update.

    [in] partition

    The index of the partition for which lighting is required.


    virtual PppiShaderParameters Enlighten::IUpdateManager::Update


    public: virtual PppiShaderParameters Update
    (
        const Geo::v128 & viewOrigin,
        float lodDistance,
        const PppiIrradiance16 * border,
        IPppiComputeUpdateHandler * computeUpdateHandler,
        Geo::u8 partition
    )


    The main update function.

    This should be called once per frame from the rendering thread. Use this overload when per pixel probe lighting is enabled.

    Parameters
    [in] viewOrigin

    The position in world units at which the greatest level of detail is required. This is usually the camera position.

    [in] lodDistance

    The distance in voxel units from the view origin at which to begin reduction of the level of detail, zero for maximum.

    [in] border

    If non-null, is the lighting for areas not covered by any probe set.

    [in] computeUpdateHandler

    If non-null, will be called during Update.

    [in] partition

    The index of the partition for which lighting is required.

    , multiple selections available,
    {"serverDuration": 37, "requestCorrelationId": "de38572cafe24744a4b728af4dafc712"}