Versions Compared

Key

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

...

    └>Enlighten::CpuUpdateManager
        └>Enlighten::BaseUpdateManager
            └>Enlighten::IUpdateManager
                └>Geo::IGeoReleasable

An update manager for Enlighten that does CPU updates.

Functions

NameDescription
AllocateCubeMap(const RadCubeMapCore *, IGpuTexture *)

Allocate a cube map. This will add the cube map to the update manager's list but it must be separately added to the worker's copy via EnqueueAddCubeMap().

AllocateCubeMap(const RadCubeMapCore *, IGpuTexture *)

Allocate a cube map object.

AllocateCubeMapInternal()

Implementation-specific object allocator.

AllocateCubeMapInternal()

Implementation-specific object allocator.

AllocateDynamicObject(const Enlighten::DynamicObject &, bool)

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.

AllocateDynamicObject(const Enlighten::DynamicObject &)

Allocate a dynamic object.

AllocateDynamicObject(const Enlighten::DynamicObject &)

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.

AllocateDynamicObjectInternal(const DynamicObject &)

Implementation-specific object allocator.

AllocateDynamicObjectInternal(const DynamicObject &)

Implementation-specific object allocator.

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

Allocate a probe set. This will add the probe set to the update manager's list but it must be separately added to the worker's copy via EnqueueAddProbeSet.

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

Allocate a probe set. This will add the probe set to the update manager's list but it must be separately added to the worker's copy via EnqueueAddProbeSet.

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

Allocate a probe set object.

AllocateProbeSetImpl(const RadProbeSetCore *, bool, bool, const Geo::v128 *, Enlighten::eSHOrder, RawBuffer)

Allocate a probe set. This will add the probe set to the update manager's list but it must be separately added to the worker's copy via EnqueueAddProbeSet.

AllocateProbeSetInternal()

Implementation-specific object allocator.

AllocateProbeSetInternal()

Implementation-specific object allocator.

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

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

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

Allocate a static probe set.

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

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

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

Allocate a static system. This will add the system to the update manager's list of systems but it must separately be added to the worker's copy via EnqueueAddSystem.

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 RadSystemCore *, const InputWorkspace *, const PrecomputedVisibilityData *, IGpuTexture *)

Allocate a radiosity system.

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

Allocate a radiosity system.

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

Allocate a system.

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

Allocate a radiosity system.

AllocateSystem(const InputWorkspace *, const PrecomputedVisibilityData *)

Allocate a radiosity system.

AllocateSystemInternal()

Implementation-specific object allocator.

AllocateSystemInternal()

Implementation-specific object allocator.

AllocateSystemMemory(Geo::GeoGuid)

Allocates system memory.

AllocateSystemSolutionSpace(const RadSystemCore *, IGpuTexture *)

Allocate the solution space, which contains the textures and memory for the output, for a 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.

AllocateSystemSolutionSpace(const RadSystemCore *)

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

AllocateSystemSolutionSpace(const RadSystemCore *, IGpuTexture *, eOutputFormat)

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

AllocateSystemSolutionSpaceInternal(const RadSystemCore *, IGpuTexture *)

Allocates a system solution space.

AllocateSystemSolutionSpaceInternal(const RadSystemCore *, IGpuTexture *)

Allocates a system solution space.

BaseUpdateManager(const UpdateManagerProperties &, const ILogHandler *)

Base class constructor.

Clear()

Remove all objects from the update manager and free all associated memory.

Clear()

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

Clear()

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

CpuUpdateManager(const UpdateManagerProperties &, const ILogHandler *)

Protected constructor. Use the Create function of a derived class.

Create(const UpdateManagerProperties &)

Create a multithread CPU update manager.

DestroyAllObjects()

Destroy all objects.

DestroyObjects()

Destroy objects marked for deletion by worker thread.

DetachCubeMap(Geo::GeoGuid)

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

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.

DetachDynamicObject(Geo::GeoGuid)

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

DetachProbeSet(Geo::GeoGuid)

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

DetachProbeSet(Geo::GeoGuid)

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

DetachProbeSet(Geo::GeoGuid)

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

DetachSystem(Geo::GeoGuid)

Advanced: remove a system from the render thread-side system 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.

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.

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.

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.

EnqueueAddSystem(BaseSystem *)

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

EnqueueCommand(CommandType &&)

Enqueues a command. The command will be executed on the worker thread if one exists, otherwise it will be executed immediately on the calling thread.

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

Enqueue system solution spaces release.

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

Enqueue system solution spaces release.

EnqueueRemoveAllLights()

Removes all lights.

EnqueueRemoveAllLights()

Removes all lights.

EnqueueRemoveCubeMap(Geo::GeoGuid, RemovalMode)

Remove or disable updates for a cube map.

EnqueueRemoveCubeMap(Geo::GeoGuid, RemovalMode)

Remove or disable updates for a cube map.

EnqueueRemoveDynamicObject(Geo::GeoGuid)

Removes a dynamic object.

EnqueueRemoveDynamicObject(Geo::GeoGuid)

Removes a dynamic object.

EnqueueRemoveEmissiveEnvironment(Geo::GeoGuid)

Removes an environment.

EnqueueRemoveEmissiveEnvironment(Geo::GeoGuid)

Removes an environment.

EnqueueRemoveLight(Geo::GeoGuid)

Removes a light.

EnqueueRemoveLight(Geo::GeoGuid)

Removes a light.

EnqueueRemoveProbeSet(Geo::GeoGuid, RemovalMode)

Remove or disable updates for a probe set.

EnqueueRemoveProbeSet(Geo::GeoGuid, RemovalMode)

Remove or disable updates for a probe set.

EnqueueRemoveSystem(Geo::GeoGuid, RemovalMode)

Remove or disable updates for a system.

EnqueueRemoveSystem(Geo::GeoGuid, RemovalMode)

Remove or disable updates for a system.

EnqueueRemoveSystemSolutionSpaces(Geo::GeoGuid)

Enqueue system solution spaces remove.

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.

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.

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.

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

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

EnqueueSetObjectParameter(PointerType, void(ObjectType::*)(ParamType), ArgType &&)

Enqueues a command to set an object parameter.

EnqueueSetProbeSetManager(IProbeSetManager *)

Set the Probe Set Manager object.

EnqueueSetProbeSetManager(IProbeSetManager *)

Set the Probe Set Manager object.

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.

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.

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.

EnqueueSetWorkerProperties(const UpdateManagerWorkerProperties &)

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

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.

FlushCommands()

Wait until all commands currently in the queue have been executed.

GetCubeMapTexture(Geo::GeoGuid)

Get the output texture for the cube map texture.

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.

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.

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

Gets the probe output for a given dynamic object.

GetInputLightingPrecisionHint()

Gets the precision hint of the input lighting buffer.

GetNumCubeMaps()

Returns number of cube maps registered with the update manager.

GetNumCubeMaps()

Returns number of cube maps registered with the update manager.

GetNumDynamicObjects()

Returns number of dynamic objects 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.

GetNumProbeSets()

Returns number of probe sets registered with the update manager.

GetNumSystems()

Returns number of systems 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.

GetOutputTexture(Geo::GeoGuid, OutputTextureType)

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

GetPppiRequiredOutputTextures()

Returns information about the required PPPI output textures.

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.

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.

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.

GetTextureUpdateTicks()

Get the total number of ticks spent updating GPU textures.

GetTextureUpdateTicks()

Get the total number of ticks spent updating GPU textures.

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.

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.

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.

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 udpate manager has a dynamic object with this GUID.

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.

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.

HasSystem(Geo::GeoGuid)

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

IsCubeMapStatic(Geo::GeoGuid)

Returns true if the cube map update counter is 0 (ie no updates are pending for this cube map).

IsProbeSetStatic(Geo::GeoGuid)

Returns true if the probe set update counter is 0 (ie no updates are pending for this probe set).

IsSystemStatic(Geo::GeoGuid)

Returns true if the system update counter is 0 (ie no updates are pending for this system).

IsUpdateLimited()

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

IsUpdateLimited()

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

LoadInputLightingBuffer(Geo::GeoGuid, const char *)

Loads light buffer dump data into the given system's input lighting buffer.

LoadProbeTaskDump(Geo::GeoGuid, const char *)

Loads probe task dump data into the given probe set's output buffer.

LoadRadTaskDump(Geo::GeoGuid, const char *)

Debug functions.

MultithreadCpuUpdateManager(const UpdateManagerProperties &, const ILogHandler *)

Protected constructor. Do not call directly, use Create instead.

Release()

Destroys the update manager and all the resources it owns.

Release()

Free this object that was created within the Enlighten libraries.

Release()

Destroys the update manager and all the resources it owns.

RequiresVisibilityDataOnCpu()

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

RequiresVisibilityDataOnCpu()

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

SetGpuTexture(Geo::GeoGuid, IGpuTexture *)

Sets an output texture for the given cube map.

SetGpuTexture(Geo::GeoGuid, OutputTextureType, IGpuTexture *)

Sets an output texture for the given system.

SetGpuTexture(Geo::GeoGuid, ProbeVolumeOutputTextureType, IGpuTexture *)

Sets an output texture for the given dynamic object.

SetPppiOutputWorkspace(const PppiOutputWorkspace &, IPppiTextureUpdateHandler *)

Use the provided PPPI output textures.

StopWorking()

Tell the worker thread to quit and wait until it does.

StopWorking()

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

Update()

The main update function.

Update()

The main update function. This should be called once per frame from the rendering thread.

UpdateGpuTextures()

Update the GPU textures of all objects.

UpdatePppi(const Geo::v128 &, const IViewVolumeIntersector *, float)

Update PPPI indirection texture based on the view origin.

UpdatePppiBorder(const PppiIrradiance &)

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

...

[in]properties

The UpdateManagerProperties class contains parameters common to all implementations.

[in]logger

This is attached to the GeoAttachLogger/GeoDetachLogger API in order to connect up the ILogHandler to all Enlighten messages.


Anchor
a7c36a5255277e8c69760b354edb9ed4b
a7c36a5255277e8c69760b354edb9ed4b

...

Free this object that was created within the Enlighten libraries.

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

...