Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

NameDescription
AllocateCubeMap(const RadCubeMapCore *, IGpuTexture *)

Allocate a cube map object.

AllocateDynamicObject(const Enlighten::DynamicObject &)

Allocate a dynamic object.

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

Allocate a probe set object.

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

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.

AllocateStaticSystem(Geo::GeoGuid, InputLightingBuffer *)

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

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

Allocate a radiosity system.

AllocateSystem(const InputWorkspace *, const PrecomputedVisibilityData *)

Allocate a radiosity system.

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

Allocate a radiosity system.

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

Allocate a radiosity system.

AllocateSystem(const RadSystemCore *, const InputWorkspace *, const PrecomputedVisibilityData *, IGpuTexture *)

Allocate a radiosity system.

AllocateSystem(const RadSystemCore *, const InputWorkspace *, const PrecomputedVisibilityData *)

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.

GetProbeOutputIfUpdated(Geo::GeoGuid, Geo::s32 *)

Returns the probe output if the probeset has been updated since this function was last called on it, otherwise NULL Cannot be used in combination with PPPI.

GetTextureUpdateTicks()

Get the total number of ticks spent updating GPU textures.

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()

The main update function.

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

The main update function.

UpdatePppiBorder(const PppiIrradiance &)

Update the lighting for parts of the PPPI volume not covered by any probe set.


Anchor
a0e499888fe495bb8c70c58bece46e1b1
a0e499888fe495bb8c70c58bece46e1b1

virtual BaseCubeMap* Enlighten::IUpdateManager::AllocateCubeMap

...

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

...

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.

[in]coreData

The radiosity core data for the cubemap. Does not take ownership.

[in]outputTexture

The cubemap output texture. Takes ownership.


Anchor
aae9726ca5729d40c4e08dc0b6ad106e7
aae9726ca5729d40c4e08dc0b6ad106e7

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


Anchor
a9eb79b6791c829f4335366cbaf3fa7a2
a9eb79b6791c829f4335366cbaf3fa7a2

virtual BaseProbeSet* Enlighten::IUpdateManager::AllocateProbeSet

...

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

...

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.


Anchor
ad426b35e6b7249bfc8e1f971dc826b98
ad426b35e6b7249bfc8e1f971dc826b98

virtual BaseProbeSet* Enlighten::IUpdateManager::AllocateStaticProbeSet

...

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

...

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.


Anchor
a97eab17114e4c3cef5cf07eeaac31c8f
a97eab17114e4c3cef5cf07eeaac31c8f

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.


Anchor
a8d19090143bcb1422896c07036f53b33
a8d19090143bcb1422896c07036f53b33

BaseSystem* Enlighten::IUpdateManager::AllocateStaticSystem

...

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

...

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.


Anchor
a0bf95feb82a41c28394ad6dca52fe1c9
a0bf95feb82a41c28394ad6dca52fe1c9

virtual BaseSystem* Enlighten::IUpdateManager::AllocateSystem

...

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

...

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.


Anchor
a9855cbae090fe2407266c7424af98730
a9855cbae090fe2407266c7424af98730

BaseSystem* Enlighten::IUpdateManager::AllocateSystem

...

public: BaseSystem * AllocateSystem
(
    const InputWorkspace * inputWorkspace,
    const PrecomputedVisibilityData * visibilityData
)

...

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.


Anchor
aba2ea0f9a8227cdcf30b24f426968aae
aba2ea0f9a8227cdcf30b24f426968aae

virtual BaseSystem* Enlighten::IUpdateManager::AllocateSystem

...

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

...

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.


Anchor
aaac9d2bd2b17ee6db31fb1a5f1e529ae
aaac9d2bd2b17ee6db31fb1a5f1e529ae

virtual BaseSystem* Enlighten::IUpdateManager::AllocateSystem

...

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

...

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.


Anchor
acba7707f3921da324f102dcd9405aefb
acba7707f3921da324f102dcd9405aefb

BaseSystem* Enlighten::IUpdateManager::AllocateSystem

...

public: BaseSystem * AllocateSystem
(
    const RadSystemCore * coreData,
    const InputWorkspace * inputWorkspace,
    const PrecomputedVisibilityData * visibilityData,
    IGpuTexture * outputTextures
)

...

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.


Anchor
ac9dabf74aa2a7b261bed865941be5ce0
ac9dabf74aa2a7b261bed865941be5ce0

BaseSystem* Enlighten::IUpdateManager::AllocateSystem

...

public: BaseSystem * AllocateSystem
(
    const RadSystemCore * coreData,
    const InputWorkspace * inputWorkspace,
    const PrecomputedVisibilityData * visibilityData
)

...

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.


Anchor
ad8668fb8239e82ca5715e0a8abee8cd5
ad8668fb8239e82ca5715e0a8abee8cd5

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.


Anchor
a34109b5e6c2bf6fd03087afb4ccca1ec
a34109b5e6c2bf6fd03087afb4ccca1ec

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.


Anchor
a224ae6279a6dc2b28535f588246c5ca0
a224ae6279a6dc2b28535f588246c5ca0

virtual void Enlighten::IUpdateManager::Clear

...

public: void Clear()

...

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


Anchor
a0fb30d122c07901eeb3c2092df4e7723
a0fb30d122c07901eeb3c2092df4e7723

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.


Anchor
a4712186cabe81118ffe063a579085f19
a4712186cabe81118ffe063a579085f19

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.


Anchor
a967ae50e95afa8dab643d04ecf1c3a6e
a967ae50e95afa8dab643d04ecf1c3a6e

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.


Anchor
ab27272a793c3d34cb334be6dfa200a4b
ab27272a793c3d34cb334be6dfa200a4b

virtual bool Enlighten::IUpdateManager::EnqueueAddCubeMap

...

public: bool EnqueueAddCubeMap
(
    BaseCubeMap * cubeMap
)

...

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


Anchor
a12e8e8e9b7e44b6b2389611a3a05ec72
a12e8e8e9b7e44b6b2389611a3a05ec72

virtual bool Enlighten::IUpdateManager::EnqueueAddDynamicObject

...

public: bool EnqueueAddDynamicObject
(
    BaseDynamicObject * object
)

...

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


Anchor
aae65fa573d7e5fb9b3514ea07c3c5de9
aae65fa573d7e5fb9b3514ea07c3c5de9

virtual bool Enlighten::IUpdateManager::EnqueueAddProbeSet

...

public: bool EnqueueAddProbeSet
(
    BaseProbeSet * probeSet
)

...

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


Anchor
aedbeb2a951e1cce06fd5fda2882f7d44
aedbeb2a951e1cce06fd5fda2882f7d44

virtual bool Enlighten::IUpdateManager::EnqueueAddSystem

...

public: bool EnqueueAddSystem
(
    BaseSystem * system
)

...

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


Anchor
a8e01b6a9840257ef38712164339a7485
a8e01b6a9840257ef38712164339a7485

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.


Anchor
ae7fec718fbd45db426539502f6074d89
ae7fec718fbd45db426539502f6074d89

virtual void Enlighten::IUpdateManager::EnqueueRemoveAllLights

...

public: void EnqueueRemoveAllLights()

...

Removes all lights.


Anchor
ae2f06a615f856a1c01cd3f7282842fc1
ae2f06a615f856a1c01cd3f7282842fc1

virtual void Enlighten::IUpdateManager::EnqueueRemoveCubeMap

...

public: void EnqueueRemoveCubeMap
(
    BaseCubeMap * cubeMap
)

...

Remove the previously added cube map.


Anchor
adcb9af9b3b73a3e546080084ebe0a8bb
adcb9af9b3b73a3e546080084ebe0a8bb

virtual void Enlighten::IUpdateManager::EnqueueRemoveDynamicObject

...

public: void EnqueueRemoveDynamicObject
(
    Geo::GeoGuid objectId
)

...

Removes a dynamic object.


Anchor
a28ca310738aadf1ecc5901cf7bcafa32
a28ca310738aadf1ecc5901cf7bcafa32

virtual void Enlighten::IUpdateManager::EnqueueRemoveEmissiveEnvironment

...

public: void EnqueueRemoveEmissiveEnvironment
(
    Geo::GeoGuid environmentId
)

...

Removes an environment.


Anchor
af390c07e8bfb2d1abbb9780205cdfe85
af390c07e8bfb2d1abbb9780205cdfe85

virtual void Enlighten::IUpdateManager::EnqueueRemoveLight

...

public: void EnqueueRemoveLight
(
    Geo::GeoGuid lightId
)

...

Removes a light.


Anchor
a986793bc800018df4be610e162069bed
a986793bc800018df4be610e162069bed

virtual void Enlighten::IUpdateManager::EnqueueRemoveProbeSet

...

public: void EnqueueRemoveProbeSet
(
    BaseProbeSet * probeSet
)

...

Remove the previously added probe set.


Anchor
aedbb02d25fff1340731aabdc696a6a0d
aedbb02d25fff1340731aabdc696a6a0d

virtual void Enlighten::IUpdateManager::EnqueueRemoveSystem

...

public: void EnqueueRemoveSystem
(
    BaseSystem * system
)

...

Remove the previously added system.


Anchor
a1a9ef2f07e3343efcf6cf152866c13ad
a1a9ef2f07e3343efcf6cf152866c13ad

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.


Anchor
a14895f7a6a6693f008b456f0475ac3e5
a14895f7a6a6693f008b456f0475ac3e5

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.


Anchor
aa90e04deb6108645603b75c40505a50e
aa90e04deb6108645603b75c40505a50e

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.


Anchor
a908a13b30baebdc983dad5cbab3482c7
a908a13b30baebdc983dad5cbab3482c7

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.


Anchor
ac61a2d9f18be76d66b455e5ea77c0419
ac61a2d9f18be76d66b455e5ea77c0419

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.


Anchor
a147e326540c515579cae9488d76225d0
a147e326540c515579cae9488d76225d0

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).


Anchor
a9350adf355fbd5ca352abc08ca21f896
a9350adf355fbd5ca352abc08ca21f896

virtual bool Enlighten::IUpdateManager::EnqueueSetWorkerProperties

...

public: bool EnqueueSetWorkerProperties
(
    const UpdateManagerWorkerProperties & properties
)

...

Enqueue a change to the worker's global state.


Anchor
a475af3a303e2cbe1e2aa031482cf5f3c
a475af3a303e2cbe1e2aa031482cf5f3c

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.


Anchor
a09aba0cf164e2de007c6c9cad2a4f7b4
a09aba0cf164e2de007c6c9cad2a4f7b4

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.


Anchor
a64b9d79e2ac71d2d055a16136272da32
a64b9d79e2ac71d2d055a16136272da32

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.


Anchor
a2bd7382e8f60b9f79d2868039c8587e9
a2bd7382e8f60b9f79d2868039c8587e9

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.


Anchor
a4da389729f92f7ddbf663cc1b98d330e
a4da389729f92f7ddbf663cc1b98d330e

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.


Anchor
ac1bd74e8b074ce70e856f717587f4e2b
ac1bd74e8b074ce70e856f717587f4e2b

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.


Anchor
a939c6d9d919fceb21cc6818192d77392
a939c6d9d919fceb21cc6818192d77392

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

...

public: Geo::s32 GetNumCubeMaps() const

...

Returns number of cube maps registered with the update manager.


Anchor
a360502ee21e572ec9de66aba8fc334f9
a360502ee21e572ec9de66aba8fc334f9

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

...

public: Geo::s32 GetNumDynamicObjects() const

...

Returns number of dynamic objects registered with the update manager.


Anchor
adec94f304115e059933aadfe41dc4570
adec94f304115e059933aadfe41dc4570

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

...

public: Geo::s32 GetNumProbeSets() const

...

Returns number of probe sets registered with the update manager.


Anchor
af6cbb437aa40ce6027f46e2d9ae4a582
af6cbb437aa40ce6027f46e2d9ae4a582

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

...

public: Geo::s32 GetNumSystems() const

...

Returns number of systems registered with the update manager.


Anchor
ac321a2fa4e22cb4db9c16cd2c22f8552
ac321a2fa4e22cb4db9c16cd2c22f8552

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.


Anchor
ab13b064309d8b9178049f86a3d759195
ab13b064309d8b9178049f86a3d759195

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.


Anchor
acbd7df74c4657d8f686fd5f203d54ee6
acbd7df74c4657d8f686fd5f203d54ee6

virtual const float* Enlighten::IUpdateManager::GetProbeOutputIfUpdated

...

public: const float * GetProbeOutputIfUpdated
(
    Geo::GeoGuid probeSetId,
    Geo::s32 * outStride
) const

...

Returns the probe output if the probeset has been updated since this function was last called on it, otherwise NULL Cannot be used in combination with PPPI.

/param[out] outStride If not NULL, receives the output stride in floats.


Anchor
a27544f8375f760926cd9f9df12dbbcdd
a27544f8375f760926cd9f9df12dbbcdd

virtual Geo::s64 Enlighten::IUpdateManager::GetTextureUpdateTicks

...

public: Geo::s64 GetTextureUpdateTicks() const

...

Get the total number of ticks spent updating GPU textures.


Anchor
a8d0acd5979459b884cc41006ee487099
a8d0acd5979459b884cc41006ee487099

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.


Anchor
a1f09569d3fa5e1a69178498683164522
a1f09569d3fa5e1a69178498683164522

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.


Anchor
a32fc3776e62cee1c1a79a909d227d409
a32fc3776e62cee1c1a79a909d227d409

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.


Anchor
a73cc19d1f3fd3771d8448d74dbdc1536
a73cc19d1f3fd3771d8448d74dbdc1536

virtual bool Enlighten::IUpdateManager::HasDynamicObject

...

public: bool HasDynamicObject
(
    Geo::GeoGuid objectId
)

...

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


Anchor
acad91e759f3835cbcd1253674ad1f03a
acad91e759f3835cbcd1253674ad1f03a

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.


Anchor
a0051593cb6071f65931167400d7ffa0f
a0051593cb6071f65931167400d7ffa0f

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.


Anchor
a056ebb32c739ab47be22df5a9b960e7e
a056ebb32c739ab47be22df5a9b960e7e

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?


Anchor
adaed81b4c59f263dcb4e78c4126f4683
adaed81b4c59f263dcb4e78c4126f4683

Geo::NonCopyable::NonCopyable

...

public: NonCopyable
(
    NonCopyable &&
)

...

Defaulted to allow move.


Anchor
a6abc781e23b8f4864e0b868806e0acbf
a6abc781e23b8f4864e0b868806e0acbf

NonCopyable& Geo::NonCopyable::operator=

...

public: NonCopyable & operator=
(
    NonCopyable &&
)

...

Defaulted to allow move.


Anchor
a40de6a099612bb8f09f40e5e52815572
a40de6a099612bb8f09f40e5e52815572

virtual void Enlighten::IUpdateManager::Release

...

public: void Release()

...

Destroys the update manager and all the resources it owns.


Anchor
af6bdf30b42adde386c428e9dc2821eb9
af6bdf30b42adde386c428e9dc2821eb9

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)'


Anchor
aa0812bdfcd6f51bdfa8b2d821a699ede
aa0812bdfcd6f51bdfa8b2d821a699ede

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.


Anchor
a513b7714807d2f05f446e749889ba7fc
a513b7714807d2f05f446e749889ba7fc

virtual void Enlighten::IUpdateManager::StopWorking

...

public: void StopWorking()

...

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


Anchor
ad630baefd3d3600b2fdc1e1b17a15561
ad630baefd3d3600b2fdc1e1b17a15561

virtual void Enlighten::IUpdateManager::Update

...

public: void Update()

...

The main update function.

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


Anchor
a8136f0a85ae6709657aaf7eae636d195
a8136f0a85ae6709657aaf7eae636d195

virtual PppiShaderParameters Enlighten::IUpdateManager::Update

...

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

...

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.


Anchor
a34ab3e4b43382b1079d4680d0a1f63cd
a34ab3e4b43382b1079d4680d0a1f63cd

virtual void Enlighten::IUpdateManager::UpdatePppiBorder

...

public: void UpdatePppiBorder
(
    const PppiIrradiance & border
)

...

Update the lighting for parts of the PPPI volume not covered by any probe set.