Versions Compared

Key

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

class Enlighten::MultithreadCpuWorker

    └>Enlighten::MultithreadCpuWorkerCommon
        └>Enlighten::CpuWorker
            └>Enlighten::BaseWorker
                └>Enlighten::IUpdateManagerWorker

Worker for the mulithreaded CPU update manager.

Functions

NameDescription
AddCubeMap(BaseCubeMap *const &)

Add a cube map to the worker.

AddCubeMap(BaseCubeMap *const &)

Add a cube map to the worker.

AddCubeMap(BaseCubeMap *const &)

Add a cube map to the worker.

AddDynamicObject(BaseDynamicObject *const &)

Add a dynamic object to the worker.

AddDynamicObject(BaseDynamicObject *const &)

Add a dynamic object to the worker.

AddProbeSet(BaseProbeSet *const &)

Add a probe set to the worker.

AddProbeSet(BaseProbeSet *const &)

Add a probe set to the worker.

AddProbeSet(BaseProbeSet *const &)

Add a probe set to the worker.

AddSystem(BaseSystem *const &)

Add a system to the worker, and allocate any required auxiliary resources.

AddSystem(BaseSystem *const &)

Add a system to the worker, and allocate any required auxiliary resources.

AddSystem(BaseSystem *const &)

Add a system to the worker, and allocate any required auxiliary resources.

AddSystem(BaseSystem *const &)

Add a system to the worker, and allocate any required auxiliary resources.

AllocateVisibilityData(Geo::s32, Enlighten::eLightType)

Allocates/Frees memory for visibility data.

AllocateVisibilityData(Geo::s32, Enlighten::eLightType)

Allocates/Frees memory for visibility data.

BaseWorker(SolveType, eOutputFormat, eOutputFormat, eOutputFormatByteOrder, eProbeOutputFormat, PrecisionHint::Value, bool, bool, EnlightenProfile *)

Base class constructor.

ClearCubeMapVolumeTransparency(Geo::GeoGuid const &)

Clears the cube map volume transparency.

ClearCubeMapVolumeTransparency(Geo::GeoGuid const &)

Clears the cube map volume transparency.

ClearSystemVolumeTransparency(Geo::GeoGuid const &)

Clears the system volume transparency.

ClearSystemVolumeTransparency(Geo::GeoGuid const &)

Clears the system volume transparency.

ClearSystemVolumeTransparency(Geo::GeoGuid const &)

Clears the system volume transparency.

ComputeDirectionalVisibility(CpuSystem *)

Compute directional light visibility for the given system.

CopyAlbedoBuffer(CopyAlbedoBufferInfo const &)

Allocate and make a copy of an albedo buffer.

CopyAlbedoBuffer(CopyAlbedoBufferInfo const &)

Allocate and make a copy of an albedo buffer.

CopyBounceBuffer(CopyBounceBufferInfo const &)

Allocate and make a copy of an emissive buffer.

CopyBounceBuffer(CopyBounceBufferInfo const &)

Allocate and make a copy of an emissive buffer.

CopyEmissiveBuffer(CopyEmissiveBufferInfo const &)

Allocate and make a copy of an emissive buffer.

CopyEmissiveBuffer(CopyEmissiveBufferInfo const &)

Allocate and make a copy of an emissive buffer.

CopyEmissiveEnvironment(CopyEmissiveEnvironmentInfo const &)

Allocate and make a copy of an emissive environment.

CopyEmissiveEnvironment(CopyEmissiveEnvironmentInfo const &)

Allocate and make a copy of an emissive environment.

CopyGeometryTransparencyBuffer(CopyTransparencyBufferInfo const &)

Allocate and make a copy of a geoemtry transparency buffer.

CopyGeometryTransparencyBuffer(CopyTransparencyBufferInfo const &)

Copies the geometry transparency buffer.

CopyGeometryTransparencyBuffer(CopyTransparencyBufferInfo const &)

Copies the geometry transparency buffer.

CopyInputLightingBuffer(CopyInputLightingBufferInfo const &)

Allocate and make a copy of an input lighting buffer.

CopyInputLightingBuffer(CopyInputLightingBufferInfo const &)

Allocate and make a copy of an input lighting buffer.

CopyLightsToSolverArray()

Convert UpdateManagerLights to Enlighten::InputLights in preparation for Enlighten work.

CopyLightsToSolverArray()

Convert UpdateManagerLights to Enlighten::InputLights in preparation for Enlighten work.

CopyMaterialTransparencyBuffer(CopyTransparencyBufferInfo const &)

Allocate and make a copy of a material transparency buffer.

CopyMaterialTransparencyBuffer(CopyTransparencyBufferInfo const &)

Allocate and make a copy of a material transparency buffer.

CopyProbeOutput(CopyProbeOutputInfo const &)

Allocate and make a copy of Enlighten probe set output.

CopyProbeOutput(CopyProbeOutputInfo const &)

Allocate and make a copy of Enlighten probe set output.

CopyRawOutput(CopyRawOutputInfo const &)

Allocate and make a copy of raw Enlighten texture output.

CopyRawOutput(CopyRawOutputInfo const &)

Allocate and make a copy of raw Enlighten texture output.

CopyVisibilityBuffer(CopyVisibilityBufferInfo const &)

Allocate and make a copy of a visibility data block.

CopyVisibilityBuffer(CopyVisibilityBufferInfo const &)

Allocate and make a copy of a visibility data block.

CpuWorker(SolveType, eOutputFormat, eOutputFormat, eOutputFormatByteOrder, eProbeOutputFormat, PrecisionHint::Value, bool, bool, EnlightenProfile *, Command *)

Constructor, taking properties which are fixed at creation time.

DecrementUpdateCounters()

Decrements the update counters for all systems, probe sets, cube maps and light banks.

DestroyAllWorkerObjects()

Release all the objects this worker constructed.

DoBounceSolverTask(Enlighten::SolveBounceTask, void *, Geo::u32 &, Geo::u32 &, CpuSystem *)

Call the bounce solver and trigger feedback updates if required.

DoCubeMapSolve(BaseCubeMap *, WorkerThreadData *)

Do the solve task for a cube map using the working memory of the given thread index.

DoCubeMapSolve(BaseCubeMap *, WorkerThreadData *)

Do the solve task for a cube map using the working memory of the given thread index.

DoDynamicObjectInterpolation(BaseDynamicObject *)

Do the interpolation for a single dynamic object, to allow multithreading.

DoDynamicObjectUpdate()

Runs the probe interpolation tasks for all dynamic objects, non-multithreaded.

DoEnvironmentUpdate()

Copies the environment values from the application-settable copy to the internal copy.

DoNextTask(Geo::s32)

Do the next task on the queue using the working memory of the given thread index.

DoSystemInputLighting(BaseSystem *, const Geo::v128 &, WorkerThreadData *)

Do the input lighting task for a system using the working memory of the given thread index.

DoSystemInputLighting(BaseSystem *, const Geo::v128 &, WorkerThreadData *)

Do the input lighting task for a system using the working memory of the given thread index.

DoSystemSolutionSpaceFreeze(CpuSystemSolutionSpace *, Enlighten::InputLightingBuffer *, CpuSystem *, WorkerThreadData *, Geo::u32 &, bool)

Do a freeze of the solution space data.

DoSystemSolutionSpaceSolve(CpuSystem *, CpuSystemSolutionSpace *, void *, const Enlighten::InputLightingBuffer *, float, bool, bool, Geo::u32 &, Geo::u32 &)

Do a solve of a particular system solution space for a given system and update bounce buffers.

EnqueueCommand(CommandType &&)

Enqueues a command for later execution by the worker thread, if it is running.

EnqueueQuitCommand()

Tell the update thread to quit.

EnqueueRadiosityUpdate(const Geo::v128 &)

Enqueue a radiosity update on the worker thread.

EnsureSolverLightBufferSize()

Ensure the solver light buffer is large enough to store all the lights.

EnsureSolverLightBufferSize()

Ensure the solver light buffer is large enough to store all the lights.

ExcludesEnvironmentInPrimaryBounce()

Returns the value of the worker property m_ExcludeEnvrionmentInPrimaryBounce.

ExcludesEnvironmentInPrimaryBounce()

Have we requested to solve the environment in secondary bounce only. (ie skip primary bounce)

ExecuteCommands()

Executes and destroys commands in the command ring buffer until the buffer is empty.

FindObject(const Geo::GeoGuid &, BaseDynamicObject *&)

Finds the object with the given GUID.

FindObject(const Geo::GeoGuid &, BaseCubeMap *&)

Finds the object with the given GUID.

FindObject(const Geo::GeoGuid &, BaseProbeSet *&)

Finds the object with the given GUID.

FindObject(const Geo::GeoGuid &, BaseSystem *&)

Finds the object with the given GUID.

FindObject(ObjectType *, ObjectType *&)

Finds the object with the given address.

FindObject(const Geo::GeoGuid &, ObjectType *&)

Finds the object with the given GUID.

FindObject(const Geo::GeoGuid &, CpuSystem *&)

Specialise the BaseWorker::FindObject to deal with a concrete type here.

FreeVisibilityData(Geo::s32, bool)

Allocates/Frees memory for visibility data.

GetInputLightingPrecisionHint()

Gets the precision hint for the input lighting buffer,.

GetLightMethodSelector()

Gets the light method selector.

GetLightMethodSelector()

Gets the light method selector.

GetSizeOfProbeInputWorkspaceMemory()

Get the total size of probe set output workspaces.

GetSizeOfProbeInputWorkspaceMemory()

Get the total size of probe set output workspaces.

GetSizeOfProbeOutputWorkspaceMemory()

Get the total size of probe set input workspaces.

GetSizeOfProbeOutputWorkspaceMemory()

Get the total size of probe set input workspaces.

GetSizeOfWorkingMemory()

Get the size of the working memory required for solving.

GetSizeOfWorkingMemory()

Get the size of the working memory required for solving.

GetSizeOfWorkingMemory()

Get the size of the working memory required for solving.

GetSystemArray()

Returns the array of systems. Used by the GeoMaya plug in to work out when to trigger refreshes.

InitThreadGroup()

One-time thread group initialisation.

IsCommandThreadSafe()

Returns true if called on the worker thread, or if no worker thread is running.

IsCommandThreadSafe()

Returns true if called on the worker thread, or if no worker thread is running.

IsEnvOnlyUpdateRequired(CpuSystemSolutionSpace *, bool, const Enlighten::InputLightingBuffer *, Geo::s32)

Returns true if the EnvOnly feature is enabled and an update is required.

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?

IsWorkerThreadRunning()

Whether the worker thread is currently running.

IsWorkerThreadRunning()

Returns true if a separate worker thread is currently running, false if not.

LogProfiling(const ObjectType *, F)

Log stats with the profiler using an enclosure.

MultithreadCpuWorker(SolveType, eOutputFormat, eOutputFormat, eOutputFormatByteOrder, eProbeOutputFormat, PrecisionHint::Value, bool, bool, EnlightenProfile *, Command *, IThreadGroup *, ILimiter *, Geo::u64)

Constructor.

MultithreadCpuWorkerCommon(SolveType, eOutputFormat, eOutputFormat, eOutputFormatByteOrder, eProbeOutputFormat, PrecisionHint::Value, bool, bool, EnlightenProfile *, Command *, IThreadGroup *, ILimiter *, Geo::u64)

Constructor.

ProbeSetManagerSetMaxWeightForProbeSet(Geo::GeoGuid const &, float)

Set max interpolation weight for a given probe set.

ProbeSetManagerSetMaxWeightForProbeSet(Geo::GeoGuid const &, float)

Set max interpolation weight for a given probe set.

PushMultipleObjectsToDestroy(Geo::IGeoReleasable *const *, Geo::s32)

Push a list of objects which has been removed from the worker on to a list to be destroyed by the rendering thread.

PushObjectToDestroy(Geo::IGeoReleasable *)

Push an object which has been removed from the worker on to a list to be destroyed by the rendering thread.

ReadInputLightingBuffer(ReadInputLightingBufferInfo const &)

These functions are provided for debugging/visualisation purposes.

ReadInputLightingBuffer(ReadInputLightingBufferInfo const &)

These functions are provided for debugging/visualisation purposes.

RecreateInterpolationInputList()

Updates the probe interpolation inputs, if required.

ReleaseSystemSolutionSpaces(ReleaseSystemSolutionSpacesInfo const &)

Release system solution spaces.

ReleaseSystemSolutionSpaces(ReleaseSystemSolutionSpacesInfo const &)

Release the solution spaces.

RemoveAllLights()

Remove all lights.

RemoveAllLights()

Remove all lights.

RemoveCubeMap(RemoveInfo const &)

Remove a cube map from the worker (either completely or partially)

RemoveCubeMap(RemoveInfo const &)

Remove a cube map from the worker (either completely or partially)

RemoveCubeMap(RemoveInfo const &)

Remove a cube map from the worker (either completely or partially)

RemoveDirectionalLight(Geo::GeoGuid)

Removes a light with the given GUID from the list of directional lights (if one is found), and frees the associated memory.

RemoveDynamicObject(RemoveInfo const &)

Remove a dynamic object from the worker.

RemoveDynamicObject(RemoveInfo const &)

Remove a dynamic object from the worker.

RemoveDynamicObject(RemoveInfo const &)

Remove a dynamic object from the worker.

RemoveEmissiveEnvironment(Geo::GeoGuid const &)

Remove the environment with the given id.

RemoveEmissiveEnvironment(Geo::GeoGuid const &)

Remove the environment with the given id.

RemoveLight(Geo::GeoGuid const &)

Remove the light with the given id.

RemoveLight(Geo::GeoGuid const &)

Remove the light with the given id.

RemoveLightBank(Geo::s32 const &)

Remove a light bank.

RemoveLightBank(Geo::s32 const &)

Remove a light bank.

RemoveLightWithoutVisibility(Geo::GeoGuid)

Removes a light with the given GUID from the list of lights without visibility (if one is found), and frees the associated memory.

RemoveLightWithVisibility(Geo::GeoGuid)

Removes a light with the given GUID from the list of lights with visibility (if one is found), and frees the associated memory.

RemoveProbeSet(RemoveInfo const &)

Remove a probe set from the worker (either completely or partially)

RemoveProbeSet(RemoveInfo const &)

Remove a probe set from the worker (either completely or partially)

RemoveProbeSet(RemoveInfo const &)

Remove a probe set from the worker (either completely or partially)

RemoveSystem(RemoveInfo const &)

Remove a system from the worker (either completely or partially)

RemoveSystem(RemoveInfo const &)

Remove a system from the worker (either completely or partially)

RemoveSystem(RemoveInfo const &)

Remove a system from the worker (either completely or partially)

RemoveSystem(RemoveInfo const &)

Remove a system from the worker (either completely or partially)

RemoveSystem(RemoveInfo const &)

Remove a system from the worker (either completely or partially)

RemoveSystemFromDependencyLists(BaseSystem *)

Removes the given system from all cached dependency lists.

RemoveSystemSolutionSpaces(Geo::GeoGuid const &)

Removes the solution spaces from the system. This function will not release the solution spaces.

RemoveSystemSolutionSpaces(Geo::GeoGuid const &)

Removes the solution spaces from the system. This function will not release the solution spaces.

ReRegisterObjectsWithProfiler()

Re-register all objects with the profiler.

RunWorkerThread()

Start the worker thread if it is not already running.

RunWorkerThread()

Start the worker thread if it is not already running.

SetAllUpdateCounters(Geo::s32 const &)

Set all system and probe update counters to count.

SetAllUpdateCounters(Geo::s32 const &)

Set all system and probe update counters to count.

SetDoFullSolveNextFrame()

Disable temporal coherence so a full solve is performed next frame.

SetDoFullSolveNextFrame()

Disable temporal coherence so a full solve is performed next frame.

SetDoIndirectInputLightingNextFrame(Geo::GeoGuid const &)

Sets a flag to run indirect input lighting on the next frame.

SetDoIndirectInputLightingNextFrame(Geo::GeoGuid const &)

Sets a flag to run indirect input lighting on the next frame.

SetDoIndirectInputLightingNextFrame(Geo::GeoGuid const &)

Sets a flag to run indirect input lighting on the next frame.

SetLightBankUpdateCounter(SetLightBankUpdateCounterInfo const &)

Set a light bank update counter.

SetLightBankUpdateCounter(SetLightBankUpdateCounterInfo const &)

Set a light bank update counter.

SetLightBankUpdateCounter(SetLightBankUpdateCounterInfo const &)

Set a light bank update counter.

SetProbeSetManager(IProbeSetManager *const &)

Set a probe set manager.

SetProbeSetTransform(SetProbeSetTransformInfo const &)

Set a probe set world-to-local-space transform.

SetProbeSetTransform(SetProbeSetTransformInfo const &)

Set a probe set world-to-local-space transform.

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

Set the solution spaces used by a system.

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

Set the solution spaces used by a system.

SetTransparencySamplePositionOffset(SetTransparencySamplePositionOffsetInfo const &)

Sets the transparency sample position offset.

SetTransparencySamplePositionOffset(SetTransparencySamplePositionOffsetInfo const &)

Sets the transparency sample position offset.

SetTransparencySamplePositionOffset(SetTransparencySamplePositionOffsetInfo const &)

Sets the transparency sample position offset.

SetVisibilityBits(SetVisibilityBitsInfo const &)

Sets the visibility block for a (system, light) pair.

SetVisibilityBits(SetVisibilityBitsInfo const &)

Sets the visibility block for a (system, light) pair.

SetVisibilityBits(SetVisibilityBitsInfo const &)

Sets the visibility block for a (system, light) pair.

SetWorkerProperties(const UpdateManagerWorkerProperties &)

Set the worker global state.

SetWorkerProperties(UpdateManagerWorkerProperties const &)

Set the worker global state.

SetWorkerProperties(const UpdateManagerWorkerProperties &)

Set the worker global state.

ShutdownThreadGroup()

One-time therad group shut down.

StopWorkerThread()

Signal the worker thread to stop and wait until it quits.

StopWorkerThread()

Signal the worker thread to stop and wait until it quits.

TriggerTransparencyVolume(const Enlighten::BoxVolume &)

Triggers a transparency volume.

TriggerTransparencyVolume(const Enlighten::BoxVolume &)

Triggers a transparency volume.

TriggerTransparencyVolume(const Enlighten::SphereVolume &)

Triggers a transparency volume.

TriggerTransparencyVolume(const Enlighten::SphereVolume &)

Triggers a transparency volume.

TriggerTransparencyVolume(const Enlighten::SphereVolume &)

Triggers a transparency volume.

TriggerTransparencyVolume(const Enlighten::BoxVolume &)

Triggers a transparency volume.

TriggerTransparencyVolumeGeneric(const VolumeType &)

Triggers a transparency volume.

UpdateCubeMapDependencyList(BaseCubeMap *)

Creates the cached dependency list for the given cube map.

UpdateEmissiveEnvironment(UpdateEnvironmentInfo const &)

Update (or add) the environment with the given id.

UpdateEmissiveEnvironment(UpdateEnvironmentInfo const &)

Update (or add) the environment with the given id.

UpdateLight(UpdateLightInfo const &)

Update (or add) the light with the given id.

UpdateLight(UpdateLightInfo const &)

Update (or add) the light with the given id.

UpdateLightmapBounceBufferData(BaseSystem *)

Update the lightmap bounce buffer data.

UpdateLightmapBounceBufferData(BaseSystem *)

Update the lightmap bounce buffer data.

UpdateProbeDependencyList(BaseProbeSet *)

Creates the cached dependency list for the given probe set.

UpdateRadiosity(const Geo::v128 &)

The main radiosity update function.

UpdateRadiosity(const Geo::v128 &)

The main radiosity update function.

UpdateRadiosity(const Geo::v128 &)

The main radiosity update function.

UpdateSystemDependencyLists(BaseSystem *)

Creates the cached dependency list for the given system, and updates all other lists with the new system.

WriteVisibilityPointers(void **, BaseSystem *, Geo::s32)

Write ordered list of visibility data pointers for the given system and light bank Returns TRUE if any of the light inputs have changed.

Variables

NameDescription
Geo::RingBuffer m_CommandBuffer

Buffer of enqueued commands.

Geo::s64 m_CommandThreadTicks

Time taken to execute commands on the command thread.

Geo::GeoKeyValueArray< Geo::GeoGuid, BaseCubeMap > m_CubeMapArray

Cube map GUID to data mapping.

eOutputFormat m_CubemapOutputFormat

Cubemap output format (immutable)

ProcessingStage m_CurrentStage

The current processing stage in the Enlighten update loop.

Geo::GeoCriticalSection m_DestroyArrayCriticalSection

Critical section for modifying the to-be-destroyed array.

Geo::GeoKeyValueArray< Geo::GeoGuid, UpdateManagerLight > m_DirectionalLights

Array of directional lights.

Geo::GeoMap< Geo::u32, DirectionPalette * > m_DirectionPalettes

Map of DirectionPalettes for use with EPSS.

Geo::GeoKeyValueArray< Geo::GeoGuid, BaseDynamicObject > m_DynamicObjectArray

Dynamic object GUID to data mapping.

Geo::GeoAtomic< Geo::u32 > m_EnlightenTaskIndex

Index of next task in the Enlighten task queue.

Geo::GeoArray< EnlightenTask > m_EnlightenTasks

List of low-level Enlighten tasks to do.

Geo::GeoKeyValueArray< Geo::GeoGuid, BaseEnvironment > m_EnvironmentArray

Environment GUID to data mapping.

Geo::GeoEvent m_ExecuteCommandEvent

Handle to event trigger to execute commands.

UpdateManagerWorkerProperties m_GlobalState

Global solver parameters.

bool m_InputLightingListDirty

Regenerate the hash of the InputLightingList.

Geo::u32 m_InputLightingListHash

Hash of the list of InputLightingBuffers.

PrecisionHint::Value m_InputLightingPrecisionHint

Input lighting precision hint.

Geo::u32 m_InterpolationInputChangeId

Counter incremented when the list of probe inputs is recreated.

bool m_InterpolationInputListRecreated

Flag set when the list of probe inputs was recreated.

Geo::GeoArray< InterpolationInputSet > m_InterpolationInputSets

List of interpolation inputs (ie probe sets with their output)

Geo::GeoAtomic< Geo::u32 > m_InterpolationTimeUs

Interpolation times in microseconds.

eOutputFormat m_IrradianceOutputFormat

Irradiance output format (immutable)

Geo::s64 m_LastUpdateTick

The last time we started to update (used for stats computation).

Geo::GeoMap< Geo::s32, Geo::s32 > m_LightBankMap

Light bank id to number of updates counter.

LightMethodSelector * m_LightMethodSelector

Light method selector.

Geo::GeoKeyValueArray< Geo::GeoGuid, UpdateManagerLight > m_LightsWithoutVisibility

Array of non-directional lights without visibility data.

Geo::GeoKeyValueArray< Geo::GeoGuid, UpdateManagerLight > m_LightsWithVisibility

Array of non-directional lights with visibility data.

ILimiter * m_Limiter

Interface to limit amount of Enlighten work performed.

Geo::GeoAtomic< Geo::u32 > m_NumEnqueuedUpdates

Number of update calls currently in the command queue.

Geo::GeoArray< Geo::IGeoReleasable * > m_ObjectsToDestroy

Array of objects which need to be destroyed by update manager.

eOutputFormatByteOrder m_OutputFormatByteOrder

Byte order to output 8-bit textures (immutable)

eProbeOutputFormat m_ProbeOutputFormat

Probe output format (immutable)

Geo::GeoKeyValueArray< Geo::GeoGuid, BaseProbeSet > m_ProbeSetArray

ProbeSet GUID to data mapping.

Enlighten::IProbeSetManager * m_ProbeSetManager

Probe Sets Manager object that can provide probe weights for interpolation.

Geo::u32 m_PropertiesHash

Hash of the worker properties.

bool m_QuitThread

Flag which tells the worker thread to quit the update loop.

bool m_RecreateInterpolationInputList

Flag set when we need to regenerate the list of probe inputs.

bool m_RegisterWithProfiler

Flag to indicate that all objects need to be registered with the profiler.

bool m_SolvedRadiosity

Whether we have completed a solve since the last stats update.

Geo::s32 m_SolverLightArraySize

Size of the solver light array allocation.

InputLightBase ** m_SolverLights

Array of lights to pass to the Enlighten tasks.

SolveType m_SolveType

Whether to solve directional irradiance, directional irradiance separately for each colour channel or irradiance only)

EnlightenProfile * m_StatsProfile

Optional pointer to a statistics profiler.

Geo::GeoKeyValueArray< Geo::GeoGuid, BaseSystem > m_SystemArray

System GUID to data mapping.

TaskProcessor * m_TaskProcessors

Multithreaded tasks to execute through the interface.

Command * m_ThreadCreationCommand

Command to execute on the worker thread on creation.

IThreadGroup * m_ThreadGroup

Interface to execute asynchronous multithreaded tasks.

bool m_ThreadRunning

Is the command thread running.

Geo::s32 m_TotalNumLights

Total number of lights in the current solver array.

bool m_UseEntireProbeSetSolver

Should we use the EPSS?

bool m_UseProbeSetLod

Use or not Probe Set LOD.

Geo::v128 m_ViewOrigin

The position in world units used to determine which lights affect distant systems. This is usually the camera position.

Geo::GeoArray< WorkerThreadData * > m_WorkerThreadData

Internal array of working data for each worker thread.

Enums

NameDescription
ProcessingStage

Internal enumeration for keeping track of the update loop.


Anchor
afacbe12e1e895806df89b8eb5baa1f7d
afacbe12e1e895806df89b8eb5baa1f7d

virtual void Enlighten::BaseWorker::AddCubeMap

...

public: virtual void AddCubeMap
(
    BaseCubeMap *const & cubeMap
)

...

Add a cube map to the worker.


Anchor
a342643c1e5a8f6bbfb104d45a5f00a36
a342643c1e5a8f6bbfb104d45a5f00a36

virtual void Enlighten::CpuWorker::AddCubeMap

...

public: virtual void AddCubeMap
(
    BaseCubeMap *const & cubeMap
)

...

Add a cube map to the worker.


Anchor
aa34f7911df392f4f7f39fa85bdb8481d
aa34f7911df392f4f7f39fa85bdb8481d

virtual void Enlighten::IUpdateManagerWorker::AddCubeMap

...

public: void AddCubeMap
(
    BaseCubeMap *const & cubeMap
)

...

Add a cube map to the worker.


Anchor
a6b25fd33790bf3e91b4456305a9380ee
a6b25fd33790bf3e91b4456305a9380ee

virtual void Enlighten::IUpdateManagerWorker::AddDynamicObject

...

public: void AddDynamicObject
(
    BaseDynamicObject *const & dynamicObject
)

...

Add a dynamic object to the worker.


Anchor
aada66ec737bef463bed33f9b5335b4f4
aada66ec737bef463bed33f9b5335b4f4

virtual void Enlighten::BaseWorker::AddDynamicObject

...

public: virtual void AddDynamicObject
(
    BaseDynamicObject *const & dynamicObject
)

...

Add a dynamic object to the worker.


Anchor
a1f40719075f586b67ec72c284f541298
a1f40719075f586b67ec72c284f541298

virtual void Enlighten::CpuWorker::AddProbeSet

...

public: virtual void AddProbeSet
(
    BaseProbeSet *const & probeSet
)

...

Add a probe set to the worker.


Anchor
ababf6903a07df3ec26c7c612a4f191e7
ababf6903a07df3ec26c7c612a4f191e7

virtual void Enlighten::IUpdateManagerWorker::AddProbeSet

...

public: void AddProbeSet
(
    BaseProbeSet *const & probeSet
)

...

Add a probe set to the worker.


Anchor
ad71443e8ae46dc5681f7613dec2787c3
ad71443e8ae46dc5681f7613dec2787c3

virtual void Enlighten::BaseWorker::AddProbeSet

...

public: virtual void AddProbeSet
(
    BaseProbeSet *const & probeSet
)

...

Add a probe set to the worker.


Anchor
a622753639f15ef3da2f9b3e82bb9997f
a622753639f15ef3da2f9b3e82bb9997f

virtual void Enlighten::BaseWorker::AddSystem

...

public: virtual void AddSystem
(
    BaseSystem *const & system
)

...

Add a system to the worker, and allocate any required auxiliary resources.


Anchor
adc9b51c8e64d88124db05011d5cd6fb2
adc9b51c8e64d88124db05011d5cd6fb2

virtual void Enlighten::MultithreadCpuWorker::AddSystem

...

public: virtual void AddSystem
(
    BaseSystem *const & system
)

...

Add a system to the worker, and allocate any required auxiliary resources.


Anchor
a1f4ba04e924e3c75bcb9490b137ce7d9
a1f4ba04e924e3c75bcb9490b137ce7d9

virtual void Enlighten::IUpdateManagerWorker::AddSystem

...

public: void AddSystem
(
    BaseSystem *const & system
)

...

Add a system to the worker, and allocate any required auxiliary resources.


Anchor
a4505a34a7875203dae59a0cba80b9b26
a4505a34a7875203dae59a0cba80b9b26

virtual void Enlighten::CpuWorker::AddSystem

...

public: virtual void AddSystem
(
    BaseSystem *const & system
)

...

Add a system to the worker, and allocate any required auxiliary resources.


Anchor
a2df4dcc44dfce74cf080088cf0c2c936
a2df4dcc44dfce74cf080088cf0c2c936

virtual void Enlighten::BaseWorker::AllocateVisibilityData

...

protected: virtual void AllocateVisibilityData
(
    Geo::s32 lightIndex,
    Enlighten::eLightType lightType
)

...

Allocates/Frees memory for visibility data.


Anchor
ad4c6395bd84b366849913458ee1da805
ad4c6395bd84b366849913458ee1da805

virtual void Enlighten::MultithreadCpuWorker::AllocateVisibilityData

...

protected: virtual void AllocateVisibilityData
(
    Geo::s32 lightIndex,
    Enlighten::eLightType lightType
)

...

Allocates/Frees memory for visibility data.


Anchor
ac144e16707ffcfba8b267e39630855a6
ac144e16707ffcfba8b267e39630855a6

Enlighten::BaseWorker::BaseWorker

...

public: BaseWorker
(
    SolveType solveType,
    eOutputFormat irradianceOutputFormat,
    eOutputFormat cubemapOutputFormat,
    eOutputFormatByteOrder byteOrder,
    eProbeOutputFormat probeOutputFormat,
    PrecisionHint::Value inputLightingPrecisionHint,
    bool useEntireProbeSetSolver,
    bool useProbeSetLod,
    EnlightenProfile * profile
)

...

Base class constructor.

Irradiance output format and optional stats profile are common to all worker implementations.


Anchor
af9c96efef7d1e9892f0c6e461ddbd612
af9c96efef7d1e9892f0c6e461ddbd612

virtual void Enlighten::IUpdateManagerWorker::ClearCubeMapVolumeTransparency

...

public: void ClearCubeMapVolumeTransparency
(
    Geo::GeoGuid const & cubeMapId
)

...

Clears the cube map volume transparency.


Anchor
aaacdd6d80cf4ad51d31d7f8777bf7dfa
aaacdd6d80cf4ad51d31d7f8777bf7dfa

virtual void Enlighten::BaseWorker::ClearCubeMapVolumeTransparency

...

public: virtual void ClearCubeMapVolumeTransparency
(
    Geo::GeoGuid const & cubeMapId
)

...

Clears the cube map volume transparency.


Anchor
af1e022dc7a6615b797a72e88f5ec38f9
af1e022dc7a6615b797a72e88f5ec38f9

virtual void Enlighten::MultithreadCpuWorker::ClearSystemVolumeTransparency

...

public: virtual void ClearSystemVolumeTransparency
(
    Geo::GeoGuid const & systemId
)

...

Clears the system volume transparency.


Anchor
acb89dbfc436299b2763e7a195ed8be4d
acb89dbfc436299b2763e7a195ed8be4d

virtual void Enlighten::BaseWorker::ClearSystemVolumeTransparency

...

public: virtual void ClearSystemVolumeTransparency
(
    Geo::GeoGuid const & systemId
)

...

Clears the system volume transparency.


Anchor
a814b039258fa2c968d3232abf08819df
a814b039258fa2c968d3232abf08819df

virtual void Enlighten::IUpdateManagerWorker::ClearSystemVolumeTransparency

...

public: void ClearSystemVolumeTransparency
(
    Geo::GeoGuid const & systemId
)

...

Clears the system volume transparency.


Anchor
ab8e422a74dd1dde6fc808c2b49132b70
ab8e422a74dd1dde6fc808c2b49132b70

void Enlighten::MultithreadCpuWorkerCommon::ComputeDirectionalVisibility

...

protected: void ComputeDirectionalVisibility
(
    CpuSystem * system
)

...

Compute directional light visibility for the given system.


Anchor
abdef5384e918613ca735effc8ae2d647
abdef5384e918613ca735effc8ae2d647

virtual void Enlighten::CpuWorker::CopyAlbedoBuffer

...

public: virtual void CopyAlbedoBuffer
(
    CopyAlbedoBufferInfo const & copyInfo
)

...

Allocate and make a copy of an albedo buffer.


Anchor
aa5c31f416c1b801962df076676277ad2
aa5c31f416c1b801962df076676277ad2

virtual void Enlighten::IUpdateManagerWorker::CopyAlbedoBuffer

...

public: void CopyAlbedoBuffer
(
    CopyAlbedoBufferInfo const & copyInfo
)

...

Allocate and make a copy of an albedo buffer.


Anchor
a843aa2cb9582568a1d7eb3d9d4f9dd50
a843aa2cb9582568a1d7eb3d9d4f9dd50

virtual void Enlighten::CpuWorker::CopyBounceBuffer

...

public: virtual void CopyBounceBuffer
(
    CopyBounceBufferInfo const & copyInfo
)

...

Allocate and make a copy of an emissive buffer.


Anchor
a11175ead34ad43733502338edff7892b
a11175ead34ad43733502338edff7892b

virtual void Enlighten::IUpdateManagerWorker::CopyBounceBuffer

...

public: void CopyBounceBuffer
(
    CopyBounceBufferInfo const & copyInfo
)

...

Allocate and make a copy of an emissive buffer.


Anchor
ad08117f4a6252cea83ed9a592e662d6a
ad08117f4a6252cea83ed9a592e662d6a

virtual void Enlighten::CpuWorker::CopyEmissiveBuffer

...

public: virtual void CopyEmissiveBuffer
(
    CopyEmissiveBufferInfo const & copyInfo
)

...

Allocate and make a copy of an emissive buffer.


Anchor
a00a19e776a68241e77bd73f6a0e3f48a
a00a19e776a68241e77bd73f6a0e3f48a

virtual void Enlighten::IUpdateManagerWorker::CopyEmissiveBuffer

...

public: void CopyEmissiveBuffer
(
    CopyEmissiveBufferInfo const & copyInfo
)

...

Allocate and make a copy of an emissive buffer.


Anchor
a82aeef0d54079c6c23ba62b2f90bfc80
a82aeef0d54079c6c23ba62b2f90bfc80

virtual void Enlighten::IUpdateManagerWorker::CopyEmissiveEnvironment

...

public: void CopyEmissiveEnvironment
(
    CopyEmissiveEnvironmentInfo const & copyEnvironmentInfo
)

...

Allocate and make a copy of an emissive environment.


Anchor
a5d1e8559d88f6bf126c43642298e96ce
a5d1e8559d88f6bf126c43642298e96ce

virtual void Enlighten::BaseWorker::CopyEmissiveEnvironment

...

public: virtual void CopyEmissiveEnvironment
(
    CopyEmissiveEnvironmentInfo const & copyEnvironmentInfo
)

...

Allocate and make a copy of an emissive environment.


Anchor
a0cb7c04ee6200dcba0acc2d781c66f12
a0cb7c04ee6200dcba0acc2d781c66f12

virtual void Enlighten::IUpdateManagerWorker::CopyGeometryTransparencyBuffer

...

public: void CopyGeometryTransparencyBuffer
(
    CopyTransparencyBufferInfo const & copyInfo
)

...

Allocate and make a copy of a geoemtry transparency buffer.


Anchor
a75d1b8eec1019294096f633e3dfe287f
a75d1b8eec1019294096f633e3dfe287f

virtual void Enlighten::MultithreadCpuWorker::CopyGeometryTransparencyBuffer

...

protected: virtual void CopyGeometryTransparencyBuffer
(
    CopyTransparencyBufferInfo const & copyInfo
)

...

Copies the geometry transparency buffer.


Anchor
ad624f5525eb1c9b765ff56f82d84d2f4
ad624f5525eb1c9b765ff56f82d84d2f4

virtual void Enlighten::BaseWorker::CopyGeometryTransparencyBuffer

...

public: virtual void CopyGeometryTransparencyBuffer
(
    CopyTransparencyBufferInfo const & copyInfo
)

...

Copies the geometry transparency buffer.


Anchor
a675fe9ed198f2afc61329e813d645813
a675fe9ed198f2afc61329e813d645813

virtual void Enlighten::CpuWorker::CopyInputLightingBuffer

...

public: virtual void CopyInputLightingBuffer
(
    CopyInputLightingBufferInfo const & copyInputLightingBufferInfo
)

...

Allocate and make a copy of an input lighting buffer.


Anchor
aeb95b3b6f45bc72b98839470246039c7
aeb95b3b6f45bc72b98839470246039c7

virtual void Enlighten::IUpdateManagerWorker::CopyInputLightingBuffer

...

public: void CopyInputLightingBuffer
(
    CopyInputLightingBufferInfo const & copyInputLightingBufferInfo
)

...

Allocate and make a copy of an input lighting buffer.


Anchor
ac23c5effb6bbfe1ffe155577e097cb87
ac23c5effb6bbfe1ffe155577e097cb87

virtual void Enlighten::MultithreadCpuWorkerCommon::CopyLightsToSolverArray

...

protected: void CopyLightsToSolverArray()

...

Convert UpdateManagerLights to Enlighten::InputLights in preparation for Enlighten work.


Anchor
a53cfcd564509c14f3f28a3658c3020f6
a53cfcd564509c14f3f28a3658c3020f6

virtual void Enlighten::MultithreadCpuWorker::CopyLightsToSolverArray

...

protected: virtual void CopyLightsToSolverArray()

...

Convert UpdateManagerLights to Enlighten::InputLights in preparation for Enlighten work.


Anchor
a1b9beee34e1e9b4c5c089a6c2e148f46
a1b9beee34e1e9b4c5c089a6c2e148f46

virtual void Enlighten::CpuWorker::CopyMaterialTransparencyBuffer

...

public: virtual void CopyMaterialTransparencyBuffer
(
    CopyTransparencyBufferInfo const & copyInfo
)

...

Allocate and make a copy of a material transparency buffer.


Anchor
a33fd93dfb47e8cc1c875df4556230ddd
a33fd93dfb47e8cc1c875df4556230ddd

virtual void Enlighten::IUpdateManagerWorker::CopyMaterialTransparencyBuffer

...

public: void CopyMaterialTransparencyBuffer
(
    CopyTransparencyBufferInfo const & copyInfo
)

...

Allocate and make a copy of a material transparency buffer.


Anchor
adc09ae68c8f0915a5dc57ebe6a99a593
adc09ae68c8f0915a5dc57ebe6a99a593

virtual void Enlighten::IUpdateManagerWorker::CopyProbeOutput

...

public: void CopyProbeOutput
(
    CopyProbeOutputInfo const & copyProbeOutputInfo
)

...

Allocate and make a copy of Enlighten probe set output.


Anchor
a2500e9d444db7d8edae9c0ffce9bc997
a2500e9d444db7d8edae9c0ffce9bc997

virtual void Enlighten::BaseWorker::CopyProbeOutput

...

public: virtual void CopyProbeOutput
(
    CopyProbeOutputInfo const & copyProbeOutputInfo
)

...

Allocate and make a copy of Enlighten probe set output.


Anchor
a1081da4cdee7d46c78281776cbfe655e
a1081da4cdee7d46c78281776cbfe655e

virtual void Enlighten::IUpdateManagerWorker::CopyRawOutput

...

public: void CopyRawOutput
(
    CopyRawOutputInfo const & copyRawOutputInfo
)

...

Allocate and make a copy of raw Enlighten texture output.


Anchor
add3c71ec71abb4569a732b686f2a109b
add3c71ec71abb4569a732b686f2a109b

virtual void Enlighten::CpuWorker::CopyRawOutput

...

public: virtual void CopyRawOutput
(
    CopyRawOutputInfo const & copyRawOutputInfo
)

...

Allocate and make a copy of raw Enlighten texture output.


Anchor
a8ae6600d4dd5a4fc1c0933324bde69af
a8ae6600d4dd5a4fc1c0933324bde69af

virtual void Enlighten::CpuWorker::CopyVisibilityBuffer

...

public: virtual void CopyVisibilityBuffer
(
    CopyVisibilityBufferInfo const & copyVisibilityBufferInfo
)

...

Allocate and make a copy of a visibility data block.


Anchor
ae525723131a9a563e06f70132501619d
ae525723131a9a563e06f70132501619d

virtual void Enlighten::IUpdateManagerWorker::CopyVisibilityBuffer

...

public: void CopyVisibilityBuffer
(
    CopyVisibilityBufferInfo const & copyVisibilityBufferInfo
)

...

Allocate and make a copy of a visibility data block.


Anchor
ace1f22bfbc99b8ec2d1546fa8475192b
ace1f22bfbc99b8ec2d1546fa8475192b

Enlighten::CpuWorker::CpuWorker

...

public: CpuWorker
(
    SolveType solveType,
    eOutputFormat irradianceOutputFormat,
    eOutputFormat cubemapOutputFormat,
    eOutputFormatByteOrder byteOrder,
    eProbeOutputFormat probeOutputFormat,
    PrecisionHint::Value inputLightingPrecisionHint,
    bool useEntireProbeSetSolver,
    bool useProbeSetLod,
    EnlightenProfile * profile,
    Command * threadCreationCommand
)

...

Constructor, taking properties which are fixed at creation time.


Anchor
aaec2f449b2f0b0f016eb60224f254cfd
aaec2f449b2f0b0f016eb60224f254cfd

void Enlighten::BaseWorker::DecrementUpdateCounters

...

protected: void DecrementUpdateCounters()

...

Decrements the update counters for all systems, probe sets, cube maps and light banks.


Anchor
a17f687dba8b02d63b7c05850898911b1
a17f687dba8b02d63b7c05850898911b1

void Enlighten::BaseWorker::DestroyAllWorkerObjects

...

protected: void DestroyAllWorkerObjects()

...

Release all the objects this worker constructed.


Anchor
a9badc433afbd303a62e04c4b94e08729
a9badc433afbd303a62e04c4b94e08729

void Enlighten::MultithreadCpuWorkerCommon::DoBounceSolverTask

...

protected: void DoBounceSolverTask
(
    Enlighten::SolveBounceTask bounceSolverTask,
    void * threadWorkingMemory,
    Geo::u32 & numSolvedPixels,
    Geo::u32 & solveTimeUs,
    CpuSystem * system
)

...

Call the bounce solver and trigger feedback updates if required.


Anchor
a95221eb3c0b05219e20747e283298b37
a95221eb3c0b05219e20747e283298b37

virtual void Enlighten::MultithreadCpuWorker::DoCubeMapSolve

...

protected: virtual void DoCubeMapSolve
(
    BaseCubeMap * cubeMap,
    WorkerThreadData * wtd
)

...

Do the solve task for a cube map using the working memory of the given thread index.


Anchor
a20caad2e5181c2f7e2e78287300fac17
a20caad2e5181c2f7e2e78287300fac17

virtual void Enlighten::MultithreadCpuWorkerCommon::DoCubeMapSolve

...

protected: virtual void DoCubeMapSolve
(
    BaseCubeMap * cubeMap,
    WorkerThreadData * wtd
)

...

Do the solve task for a cube map using the working memory of the given thread index.


Anchor
a9b074239278dfa115222f1a2768256bb
a9b074239278dfa115222f1a2768256bb

void Enlighten::BaseWorker::DoDynamicObjectInterpolation

...

protected: void DoDynamicObjectInterpolation
(
    BaseDynamicObject * object
)

...

Do the interpolation for a single dynamic object, to allow multithreading.


Anchor
a9e8498dab481b869b92be94ed43e4bc3
a9e8498dab481b869b92be94ed43e4bc3

void Enlighten::CpuWorker::DoDynamicObjectUpdate

...

protected: void DoDynamicObjectUpdate()

...

Runs the probe interpolation tasks for all dynamic objects, non-multithreaded.


Anchor
af41135a0f32a73376ca160ec479b7c83
af41135a0f32a73376ca160ec479b7c83

void Enlighten::CpuWorker::DoEnvironmentUpdate

...

protected: void DoEnvironmentUpdate()

...

Copies the environment values from the application-settable copy to the internal copy.


Anchor
a1bb34cb820a86b671417ac716c945cd7
a1bb34cb820a86b671417ac716c945cd7

bool Enlighten::MultithreadCpuWorkerCommon::DoNextTask

...

public: bool DoNextTask
(
    Geo::s32 threadIdx
)

...

Do the next task on the queue using the working memory of the given thread index.


Anchor
a50b3b8aacace6301144c6d91e0b469a3
a50b3b8aacace6301144c6d91e0b469a3

virtual void Enlighten::MultithreadCpuWorkerCommon::DoSystemInputLighting

...

protected: void DoSystemInputLighting
(
    BaseSystem * system,
    const Geo::v128 & viewOrigin,
    WorkerThreadData * wtd
)

...

Do the input lighting task for a system using the working memory of the given thread index.


Anchor
a47c6b960debcd7869def4472d9babc87
a47c6b960debcd7869def4472d9babc87

virtual void Enlighten::MultithreadCpuWorker::DoSystemInputLighting

...

protected: virtual void DoSystemInputLighting
(
    BaseSystem * system,
    const Geo::v128 & viewOrigin,
    WorkerThreadData * wtd
)

...

Do the input lighting task for a system using the working memory of the given thread index.


Anchor
af6015d461c17cebd5d02e1b25f5ba64e
af6015d461c17cebd5d02e1b25f5ba64e

void Enlighten::MultithreadCpuWorkerCommon::DoSystemSolutionSpaceFreeze

...

protected: void DoSystemSolutionSpaceFreeze
(
    CpuSystemSolutionSpace * solutionSpace,
    Enlighten::InputLightingBuffer * envBuffer,
    CpuSystem * system,
    WorkerThreadData * wtd,
    Geo::u32 & freezeTimeUs,
    bool isBounceLod
)

...

Do a freeze of the solution space data.


Anchor
a7255a7317b62daf83c80c623464d2ab8
a7255a7317b62daf83c80c623464d2ab8

void Enlighten::MultithreadCpuWorkerCommon::DoSystemSolutionSpaceSolve

...

protected: void DoSystemSolutionSpaceSolve
(
    CpuSystem * system,
    CpuSystemSolutionSpace * systemSolutionSpace,
    void * threadWorkingMemory,
    const Enlighten::InputLightingBuffer * environment,
    float temporalCoherenceThreshold,
    bool updateAllBuckets,
    bool isBounceLod,
    Geo::u32 & numSolvedPixels,
    Geo::u32 & solveTimeUs
)

...

Do a solve of a particular system solution space for a given system and update bounce buffers.


Anchor
ae76228f2d1e67b1c79e584777f2d4546
ae76228f2d1e67b1c79e584777f2d4546

void Enlighten::BaseWorker::EnqueueCommand

...

public: void EnqueueCommand
(
    CommandType && newCommand
)

...

Enqueues a command for later execution by the worker thread, if it is running.

If the worker thread isn't running, the command is executed immediately on the calling thread.


Anchor
a410af27a72bf31b5837b639ff0c748e4
a410af27a72bf31b5837b639ff0c748e4

void Enlighten::CpuWorker::EnqueueQuitCommand

...

protected: void EnqueueQuitCommand()

...

Tell the update thread to quit.


Anchor
a926688f64ffac9e1898aa2ef1b500898
a926688f64ffac9e1898aa2ef1b500898

void Enlighten::BaseWorker::EnqueueRadiosityUpdate

...

public: void EnqueueRadiosityUpdate
(
    const Geo::v128 & viewOrigin
)

...

Enqueue a radiosity update on the worker thread.


Anchor
a3e9621a75185cd287117fa9208628cce
a3e9621a75185cd287117fa9208628cce

virtual void Enlighten::MultithreadCpuWorker::EnsureSolverLightBufferSize

...

protected: virtual void EnsureSolverLightBufferSize()

...

Ensure the solver light buffer is large enough to store all the lights.


Anchor
ac7ce9e69ed41f75979b9f17a255e2f0f
ac7ce9e69ed41f75979b9f17a255e2f0f

virtual void Enlighten::MultithreadCpuWorkerCommon::EnsureSolverLightBufferSize

...

protected: void EnsureSolverLightBufferSize()

...

Ensure the solver light buffer is large enough to store all the lights.


Anchor
aff1365a43901bbc901a705ff71e475ec
aff1365a43901bbc901a705ff71e475ec

virtual bool Enlighten::IUpdateManagerWorker::ExcludesEnvironmentInPrimaryBounce

...

public: bool ExcludesEnvironmentInPrimaryBounce() const

...

Returns the value of the worker property m_ExcludeEnvrionmentInPrimaryBounce.


Anchor
a54a3a56803d396c714f9eb7c29e38db2
a54a3a56803d396c714f9eb7c29e38db2

bool Enlighten::BaseWorker::ExcludesEnvironmentInPrimaryBounce

...

protected: virtual bool ExcludesEnvironmentInPrimaryBounce() const

...

Have we requested to solve the environment in secondary bounce only. (ie skip primary bounce)


Anchor
ae35315a9a367b0c2ece746feaffb78c5
ae35315a9a367b0c2ece746feaffb78c5

void Enlighten::BaseWorker::ExecuteCommands

...

public: void ExecuteCommands()

...

Executes and destroys commands in the command ring buffer until the buffer is empty.


Anchor
a5f10da8b5e6afa01e5623d179e786a84
a5f10da8b5e6afa01e5623d179e786a84

bool Enlighten::BaseWorker::FindObject

...

public: bool FindObject
(
    const Geo::GeoGuid & id,
    BaseDynamicObject *& dynamicObjectPtr
)

...

Finds the object with the given GUID.


Anchor
a01ac005fdc0b087ab8ea37d45c30b790
a01ac005fdc0b087ab8ea37d45c30b790

bool Enlighten::BaseWorker::FindObject

...

public: bool FindObject
(
    const Geo::GeoGuid & id,
    BaseCubeMap *& cubeMapPtr
)

...

Finds the object with the given GUID.


Anchor
addb24bd0857eac31618e5647bdd6b4c4
addb24bd0857eac31618e5647bdd6b4c4

bool Enlighten::BaseWorker::FindObject

...

public: bool FindObject
(
    const Geo::GeoGuid & id,
    BaseProbeSet *& probeSetPtr
)

...

Finds the object with the given GUID.


Anchor
aef05d84ceb1255af0cc20fb7c6d00066
aef05d84ceb1255af0cc20fb7c6d00066

bool Enlighten::BaseWorker::FindObject

...

public: bool FindObject
(
    const Geo::GeoGuid & id,
    BaseSystem *& systemPtr
)

...

Finds the object with the given GUID.


Anchor
a069b323c83ef6a47ab2b1a9ee486df93
a069b323c83ef6a47ab2b1a9ee486df93

bool Enlighten::BaseWorker::FindObject

...

public: bool FindObject
(
    ObjectType * object,
    ObjectType *& result
)

...

Finds the object with the given address.


Anchor
a385afe0be4a2782c9a51a85d4e06f94e
a385afe0be4a2782c9a51a85d4e06f94e

bool Enlighten::BaseWorker::FindObject

...

public: bool FindObject
(
    const Geo::GeoGuid & id,
    ObjectType *& dynamicObjectPtr
)

...

Finds the object with the given GUID.


Anchor
a809c71fa2a83db2da531cfc2c8a94ea0
a809c71fa2a83db2da531cfc2c8a94ea0

bool Enlighten::BaseWorker::FindObject

...

public: bool FindObject
(
    const Geo::GeoGuid & id,
    CpuSystem *& systemObjectPtr
)

...

Specialise the BaseWorker::FindObject to deal with a concrete type here.


Anchor
aab9391e3b421fd0f053cafc96f8af78a
aab9391e3b421fd0f053cafc96f8af78a

virtual void Enlighten::BaseWorker::FreeVisibilityData

...

protected: virtual void FreeVisibilityData
(
    Geo::s32 lightIndex,
    bool isDirectional
)

...

Allocates/Frees memory for visibility data.


Anchor
ab1d02acd17e8eb6d7191df07830bca1f
ab1d02acd17e8eb6d7191df07830bca1f

PrecisionHint::Value Enlighten::BaseWorker::GetInputLightingPrecisionHint

...

public: PrecisionHint::Value GetInputLightingPrecisionHint()

...

Gets the precision hint for the input lighting buffer,.


Anchor
a178e10a1b2e0a2b6b7e9e4eb89c24583
a178e10a1b2e0a2b6b7e9e4eb89c24583

virtual LightMethodSelector* Enlighten::IUpdateManagerWorker::GetLightMethodSelector

...

public: LightMethodSelector * GetLightMethodSelector()

...

Gets the light method selector.


Anchor
adf4c8d6df5d46086e2f7b50288b02e5e
adf4c8d6df5d46086e2f7b50288b02e5e

virtual LightMethodSelector* Enlighten::BaseWorker::GetLightMethodSelector

...

public: virtual LightMethodSelector * GetLightMethodSelector()

...

Gets the light method selector.


Anchor
a6a305027cf03efa4dad4a06ecc5d31a4
a6a305027cf03efa4dad4a06ecc5d31a4

virtual Geo::u32 Enlighten::IUpdateManagerWorker::GetSizeOfProbeInputWorkspaceMemory

...

public: Geo::u32 GetSizeOfProbeInputWorkspaceMemory() const

...

Get the total size of probe set output workspaces.


Anchor
aba372c6485f8926e89ac22d6d9ccdf81
aba372c6485f8926e89ac22d6d9ccdf81

virtual Geo::u32 Enlighten::BaseWorker::GetSizeOfProbeInputWorkspaceMemory

...

public: virtual Geo::u32 GetSizeOfProbeInputWorkspaceMemory() const

...

Get the total size of probe set output workspaces.


Anchor
adb3605007b7789a012d3684377f8007e
adb3605007b7789a012d3684377f8007e

virtual Geo::u32 Enlighten::IUpdateManagerWorker::GetSizeOfProbeOutputWorkspaceMemory

...

public: Geo::u32 GetSizeOfProbeOutputWorkspaceMemory() const

...

Get the total size of probe set input workspaces.


Anchor
abcad879a6eb80b0b730295d839266154
abcad879a6eb80b0b730295d839266154

virtual Geo::u32 Enlighten::BaseWorker::GetSizeOfProbeOutputWorkspaceMemory

...

public: virtual Geo::u32 GetSizeOfProbeOutputWorkspaceMemory() const

...

Get the total size of probe set input workspaces.


Anchor
a527dca41ad692dc6858ac5dc98cfbcc6
a527dca41ad692dc6858ac5dc98cfbcc6

virtual Geo::u32 Enlighten::IUpdateManagerWorker::GetSizeOfWorkingMemory

...

public: Geo::u32 GetSizeOfWorkingMemory() const

...

Get the size of the working memory required for solving.


Anchor
af9200e6fbd9fa756a7f45f8fb43ddcd9
af9200e6fbd9fa756a7f45f8fb43ddcd9

virtual Geo::u32 Enlighten::BaseWorker::GetSizeOfWorkingMemory

...

public: virtual Geo::u32 GetSizeOfWorkingMemory() const

...

Get the size of the working memory required for solving.


Anchor
a129db44ad492082b4ed7d0cffa016619
a129db44ad492082b4ed7d0cffa016619

virtual Geo::u32 Enlighten::MultithreadCpuWorkerCommon::GetSizeOfWorkingMemory

...

public: virtual Geo::u32 GetSizeOfWorkingMemory() const

...

Get the size of the working memory required for solving.


Anchor
a08cd6e412fa215d5bdb6491ecb4b1aee
a08cd6e412fa215d5bdb6491ecb4b1aee

Geo::GeoKeyValueArray<Geo::GeoGuid, BaseSystem>& Enlighten::BaseWorker::GetSystemArray

...

public: Geo::GeoKeyValueArray< Geo::GeoGuid, BaseSystem > & GetSystemArray()

...

Returns the array of systems. Used by the GeoMaya plug in to work out when to trigger refreshes.


Anchor
ac3997af6c76b54771ed3eb2b9d9f8e43
ac3997af6c76b54771ed3eb2b9d9f8e43

void Enlighten::MultithreadCpuWorkerCommon::InitThreadGroup

...

public: void InitThreadGroup()

...

One-time thread group initialisation.


Anchor
a7e69b03d99cb407741aaea141710b4a7
a7e69b03d99cb407741aaea141710b4a7

virtual bool Enlighten::MultithreadCpuWorkerCommon::IsCommandThreadSafe

...

protected: virtual bool IsCommandThreadSafe() const

...

Returns true if called on the worker thread, or if no worker thread is running.

Only used to assert thread safety in debug builds.


Anchor
af30060c9e1f85a1383327882c07b3e45
af30060c9e1f85a1383327882c07b3e45

virtual bool Enlighten::BaseWorker::IsCommandThreadSafe

...

protected: bool IsCommandThreadSafe() const

...

Returns true if called on the worker thread, or if no worker thread is running.

Only used to assert thread safety in debug builds.


Anchor
a1be75e7549a40260f0fd34ef48cb0113
a1be75e7549a40260f0fd34ef48cb0113

bool Enlighten::MultithreadCpuWorkerCommon::IsEnvOnlyUpdateRequired

...

protected: bool IsEnvOnlyUpdateRequired
(
    CpuSystemSolutionSpace * systemSolutionSpace,
    bool doFullSolve,
    const Enlighten::InputLightingBuffer * environment,
    Geo::s32 framesPerUpdate
) const

...

Returns true if the EnvOnly feature is enabled and an update is required.


Anchor
ada37b37b048e65394cea72bf6e2f1d7f
ada37b37b048e65394cea72bf6e2f1d7f

virtual bool Enlighten::IUpdateManagerWorker::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
a57e32e98338949968d69370fed1095ba
a57e32e98338949968d69370fed1095ba

virtual bool Enlighten::BaseWorker::IsUpdateLimited

...

public: virtual bool IsUpdateLimited() const

...

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


Anchor
a76a1eca87abe45e38a6e1cb7d1e41005
a76a1eca87abe45e38a6e1cb7d1e41005

virtual bool Enlighten::CpuWorker::IsWorkerThreadRunning

...

public: virtual bool IsWorkerThreadRunning()

...

Whether the worker thread is currently running.


Anchor
ade93d09f80b8109521c9150bb783ba0b
ade93d09f80b8109521c9150bb783ba0b

virtual bool Enlighten::BaseWorker::IsWorkerThreadRunning

...

public: bool IsWorkerThreadRunning()

...

Returns true if a separate worker thread is currently running, false if not.


Anchor
a762061d374c4e05280e6eb4cf5718972
a762061d374c4e05280e6eb4cf5718972

void Enlighten::MultithreadCpuWorkerCommon::LogProfiling

...

protected: void LogProfiling
(
    const ObjectType * object,
    F f
)

...

Log stats with the profiler using an enclosure.


Anchor
afe24141c8cd23c67d48ca15e1fd2be15
afe24141c8cd23c67d48ca15e1fd2be15

Enlighten::MultithreadCpuWorker::MultithreadCpuWorker

...

public: MultithreadCpuWorker
(
    SolveType solveType,
    eOutputFormat irradianceOutputFormat,
    eOutputFormat cubemapOutputFormat,
    eOutputFormatByteOrder byteOrder,
    eProbeOutputFormat probeOutputFormat,
    PrecisionHint::Value inputLightingPrecisionHint,
    bool useEntireProbeSetSolver,
    bool useProbeSetLod,
    EnlightenProfile * profile,
    Command * threadCreationCommand,
    IThreadGroup * threadGroup,
    ILimiter * limiter,
    Geo::u64 workerThreadAffinity
)

...

Constructor.


Anchor
a2277a24f674054906dddd4b194ef1678
a2277a24f674054906dddd4b194ef1678

Enlighten::MultithreadCpuWorkerCommon::MultithreadCpuWorkerCommon

...

public: MultithreadCpuWorkerCommon
(
    SolveType solveType,
    eOutputFormat irradianceOutputFormat,
    eOutputFormat cubemapOutputFormat,
    eOutputFormatByteOrder byteOrder,
    eProbeOutputFormat probeOutputFormat,
    PrecisionHint::Value inputLightingPrecisionHint,
    bool useEntireProbeSetSolver,
    bool useProbeSetLod,
    EnlightenProfile * profile,
    Command * threadCreationCommand,
    IThreadGroup * threadGroup,
    ILimiter * limiter,
    Geo::u64 workerThreadAffinity
)

...

Constructor.


Anchor
a338f0b0592a0b88c649980ee66303c74
a338f0b0592a0b88c649980ee66303c74

virtual void Enlighten::IUpdateManagerWorker::ProbeSetManagerSetMaxWeightForProbeSet

...

public: void ProbeSetManagerSetMaxWeightForProbeSet
(
    Geo::GeoGuid const & probeSetGuid,
    float maxWeight
)

...

Set max interpolation weight for a given probe set.


Anchor
a32052ba0d633cf98970eceaff1eb125e
a32052ba0d633cf98970eceaff1eb125e

virtual void Enlighten::BaseWorker::ProbeSetManagerSetMaxWeightForProbeSet

...

public: virtual void ProbeSetManagerSetMaxWeightForProbeSet
(
    Geo::GeoGuid const & probeSetGuid,
    float maxWeight
)

...

Set max interpolation weight for a given probe set.


Anchor
ac45d7659c1d72135a21dbeb4a38f5a9e
ac45d7659c1d72135a21dbeb4a38f5a9e

void Enlighten::BaseWorker::PushMultipleObjectsToDestroy

...

protected: void PushMultipleObjectsToDestroy
(
    Geo::IGeoReleasable *const * objects,
    Geo::s32 count
)

...

Push a list of objects which has been removed from the worker on to a list to be destroyed by the rendering thread.

This is required since the objects may contain graphics resources which can only be destroyed by the rendering thread.


Anchor
a48fd4cf83fbdc19e6ff90a1c63d94e13
a48fd4cf83fbdc19e6ff90a1c63d94e13

void Enlighten::BaseWorker::PushObjectToDestroy

...

protected: void PushObjectToDestroy
(
    Geo::IGeoReleasable * object
)

...

Push an object which has been removed from the worker on to a list to be destroyed by the rendering thread.

This is required since the object may contain graphics resources which can only be destroyed by the rendering thread.


Anchor
a35b22f8db7bc2d1267518d13678380ec
a35b22f8db7bc2d1267518d13678380ec

virtual void Enlighten::CpuWorker::ReadInputLightingBuffer

...

public: virtual void ReadInputLightingBuffer
(
    ReadInputLightingBufferInfo const & parameters
)

...

These functions are provided for debugging/visualisation purposes.

Read back the contents of an input lighting buffer.


Anchor
a728c1844f669f4b6bc1090220ee425f7
a728c1844f669f4b6bc1090220ee425f7

virtual void Enlighten::IUpdateManagerWorker::ReadInputLightingBuffer

...

public: void ReadInputLightingBuffer
(
    ReadInputLightingBufferInfo const & parameters
)

...

These functions are provided for debugging/visualisation purposes.

Read back the contents of an input lighting buffer.


Anchor
ab800de89bca77514f9b6a3d142d8bcc2
ab800de89bca77514f9b6a3d142d8bcc2

void Enlighten::BaseWorker::RecreateInterpolationInputList

...

protected: void RecreateInterpolationInputList()

...

Updates the probe interpolation inputs, if required.


Anchor
a01bf3229e6e76cf85679489e83224031
a01bf3229e6e76cf85679489e83224031

virtual void Enlighten::BaseWorker::ReleaseSystemSolutionSpaces

...

public: virtual void ReleaseSystemSolutionSpaces
(
    ReleaseSystemSolutionSpacesInfo const & releaseInfo
)

...

Release system solution spaces.


Anchor
ab3eb0e09be6b9c84e8cdc9058c9e28ba
ab3eb0e09be6b9c84e8cdc9058c9e28ba

virtual void Enlighten::IUpdateManagerWorker::ReleaseSystemSolutionSpaces

...

public: void ReleaseSystemSolutionSpaces
(
    ReleaseSystemSolutionSpacesInfo const & releaseInfo
)

...

Release the solution spaces.


Anchor
a8262688d0ef86c14daecfabff7962574
a8262688d0ef86c14daecfabff7962574

virtual void Enlighten::BaseWorker::RemoveAllLights

...

public: virtual void RemoveAllLights()

...

Remove all lights.


Anchor
aafab7f63cb6e18b54be7bb1c16d6b055
aafab7f63cb6e18b54be7bb1c16d6b055

virtual void Enlighten::IUpdateManagerWorker::RemoveAllLights

...

public: void RemoveAllLights()

...

Remove all lights.


Anchor
a1b10332baaadc48b573756601ae54deb
a1b10332baaadc48b573756601ae54deb

virtual void Enlighten::BaseWorker::RemoveCubeMap

...

public: virtual void RemoveCubeMap
(
    RemoveInfo const & removeInfo
)

...

Remove a cube map from the worker (either completely or partially)


Anchor
a044a309da73d4cf7cacccb50f11a8fa5
a044a309da73d4cf7cacccb50f11a8fa5

virtual void Enlighten::IUpdateManagerWorker::RemoveCubeMap

...

public: void RemoveCubeMap
(
    RemoveInfo const & removeInfo
)

...

Remove a cube map from the worker (either completely or partially)


Anchor
a82eb577cdfaf576c313f98a857b35376
a82eb577cdfaf576c313f98a857b35376

virtual void Enlighten::MultithreadCpuWorkerCommon::RemoveCubeMap

...

public: virtual void RemoveCubeMap
(
    RemoveInfo const & removeInfo
)

...

Remove a cube map from the worker (either completely or partially)


Anchor
a60d1207e3d48ff389f3f1f79189f3e65
a60d1207e3d48ff389f3f1f79189f3e65

void Enlighten::BaseWorker::RemoveDirectionalLight

...

protected: void RemoveDirectionalLight
(
    Geo::GeoGuid lightId
)

...

Removes a light with the given GUID from the list of directional lights (if one is found), and frees the associated memory.


Anchor
a9efd024fd99fa4f0583e625f412765c8
a9efd024fd99fa4f0583e625f412765c8

virtual void Enlighten::MultithreadCpuWorkerCommon::RemoveDynamicObject

...

public: virtual void RemoveDynamicObject
(
    RemoveInfo const & removeInfo
)

...

Remove a dynamic object from the worker.


Anchor
a479fe09975f696032c88ecc2f0f71ce6
a479fe09975f696032c88ecc2f0f71ce6

virtual void Enlighten::BaseWorker::RemoveDynamicObject

...

public: virtual void RemoveDynamicObject
(
    RemoveInfo const & removeInfo
)

...

Remove a dynamic object from the worker.


Anchor
ab3e91667387b16912fc7b1dd8a5ea595
ab3e91667387b16912fc7b1dd8a5ea595

virtual void Enlighten::IUpdateManagerWorker::RemoveDynamicObject

...

public: void RemoveDynamicObject
(
    RemoveInfo const & removeInfo
)

...

Remove a dynamic object from the worker.


Anchor
a65a6ef01c64ec152afa3f41dc1f2de2c
a65a6ef01c64ec152afa3f41dc1f2de2c

virtual void Enlighten::BaseWorker::RemoveEmissiveEnvironment

...

public: virtual void RemoveEmissiveEnvironment
(
    Geo::GeoGuid const & environmentId
)

...

Remove the environment with the given id.


Anchor
ab2440a8864790d4a9722032ba0a39880
ab2440a8864790d4a9722032ba0a39880

virtual void Enlighten::IUpdateManagerWorker::RemoveEmissiveEnvironment

...

public: void RemoveEmissiveEnvironment
(
    Geo::GeoGuid const & environmentId
)

...

Remove the environment with the given id.


Anchor
acd0c149fda68464c4b048c07f0ea5a67
acd0c149fda68464c4b048c07f0ea5a67

virtual void Enlighten::BaseWorker::RemoveLight

...

public: virtual void RemoveLight
(
    Geo::GeoGuid const & lightId
)

...

Remove the light with the given id.


Anchor
a0cae2f260ec8f8ef33894a4e33ea5904
a0cae2f260ec8f8ef33894a4e33ea5904

virtual void Enlighten::IUpdateManagerWorker::RemoveLight

...

public: void RemoveLight
(
    Geo::GeoGuid const & lightId
)

...

Remove the light with the given id.


Anchor
a8cbd024d4008e38e20c1901d35938de8
a8cbd024d4008e38e20c1901d35938de8

virtual void Enlighten::IUpdateManagerWorker::RemoveLightBank

...

public: void RemoveLightBank
(
    Geo::s32 const & bankId
)

...

Remove a light bank.


Anchor
ab35ea4b4a60fb4409024e02644240bc8
ab35ea4b4a60fb4409024e02644240bc8

virtual void Enlighten::BaseWorker::RemoveLightBank

...

public: virtual void RemoveLightBank
(
    Geo::s32 const & bankId
)

...

Remove a light bank.


Anchor
a69690315d5e2971c3c0371b37234f306
a69690315d5e2971c3c0371b37234f306

void Enlighten::BaseWorker::RemoveLightWithoutVisibility

...

protected: void RemoveLightWithoutVisibility
(
    Geo::GeoGuid lightId
)

...

Removes a light with the given GUID from the list of lights without visibility (if one is found), and frees the associated memory.


Anchor
ab34318aaae579f87d24240a20ff0b8b9
ab34318aaae579f87d24240a20ff0b8b9

void Enlighten::BaseWorker::RemoveLightWithVisibility

...

protected: void RemoveLightWithVisibility
(
    Geo::GeoGuid lightId
)

...

Removes a light with the given GUID from the list of lights with visibility (if one is found), and frees the associated memory.


Anchor
ae0721fb30052eb5786da8c7fba9c230a
ae0721fb30052eb5786da8c7fba9c230a

virtual void Enlighten::MultithreadCpuWorkerCommon::RemoveProbeSet

...

public: virtual void RemoveProbeSet
(
    RemoveInfo const & removeInfo
)

...

Remove a probe set from the worker (either completely or partially)


Anchor
abadc89cbb24796289997ef5d0b55b1c2
abadc89cbb24796289997ef5d0b55b1c2

virtual void Enlighten::IUpdateManagerWorker::RemoveProbeSet

...

public: void RemoveProbeSet
(
    RemoveInfo const & removeInfo
)

...

Remove a probe set from the worker (either completely or partially)


Anchor
a023404f326e81e4a0e0c05c51fed6d18
a023404f326e81e4a0e0c05c51fed6d18

virtual void Enlighten::BaseWorker::RemoveProbeSet

...

public: virtual void RemoveProbeSet
(
    RemoveInfo const & removeInfo
)

...

Remove a probe set from the worker (either completely or partially)


Anchor
ad70e2ed2103c06a7c15dfa06eea966e7
ad70e2ed2103c06a7c15dfa06eea966e7

virtual void Enlighten::MultithreadCpuWorker::RemoveSystem

...

public: virtual void RemoveSystem
(
    RemoveInfo const & removeInfo
)

...

Remove a system from the worker (either completely or partially)


Anchor
ae5fe03a7bf7a4a3735f2196d00c5f9d5
ae5fe03a7bf7a4a3735f2196d00c5f9d5

virtual void Enlighten::CpuWorker::RemoveSystem

...

public: virtual void RemoveSystem
(
    RemoveInfo const & removeInfo
)

...

Remove a system from the worker (either completely or partially)


Anchor
a3b83b11b4a75104db584f6407c83acee
a3b83b11b4a75104db584f6407c83acee

virtual void Enlighten::BaseWorker::RemoveSystem

...

public: virtual void RemoveSystem
(
    RemoveInfo const & removeInfo
)

...

Remove a system from the worker (either completely or partially)


Anchor
a7d6234af960037d1611fdc04033befd6
a7d6234af960037d1611fdc04033befd6

virtual void Enlighten::IUpdateManagerWorker::RemoveSystem

...

public: void RemoveSystem
(
    RemoveInfo const & removeInfo
)

...

Remove a system from the worker (either completely or partially)


Anchor
a91954a1106a1647c5eb37cad52272eaf
a91954a1106a1647c5eb37cad52272eaf

virtual void Enlighten::MultithreadCpuWorkerCommon::RemoveSystem

...

public: virtual void RemoveSystem
(
    RemoveInfo const & removeInfo
)

...

Remove a system from the worker (either completely or partially)


Anchor
a76dea5837c310f3d9a651cc99a1a2b28
a76dea5837c310f3d9a651cc99a1a2b28

void Enlighten::CpuWorker::RemoveSystemFromDependencyLists

...

protected: void RemoveSystemFromDependencyLists
(
    BaseSystem * system
)

...

Removes the given system from all cached dependency lists.


Anchor
a8506b557e9d18d0c96853aa091e6abdd
a8506b557e9d18d0c96853aa091e6abdd

virtual void Enlighten::IUpdateManagerWorker::RemoveSystemSolutionSpaces

...

public: void RemoveSystemSolutionSpaces
(
    Geo::GeoGuid const & systemId
)

...

Removes the solution spaces from the system. This function will not release the solution spaces.


Anchor
a731c53e4a258e5292bbd8e6af681ea9d
a731c53e4a258e5292bbd8e6af681ea9d

virtual void Enlighten::BaseWorker::RemoveSystemSolutionSpaces

...

public: virtual void RemoveSystemSolutionSpaces
(
    Geo::GeoGuid const & systemId
)

...

Removes the solution spaces from the system. This function will not release the solution spaces.


Anchor
a1e93823e09a1b82b93ebf12354821818
a1e93823e09a1b82b93ebf12354821818

void Enlighten::BaseWorker::ReRegisterObjectsWithProfiler

...

public: void ReRegisterObjectsWithProfiler()

...

Re-register all objects with the profiler.


Anchor
a93e84f154bc5586ec8e05e43a8813625
a93e84f154bc5586ec8e05e43a8813625

virtual void Enlighten::CpuWorker::RunWorkerThread

...

public: void RunWorkerThread()

...

Start the worker thread if it is not already running.


Anchor
af86b218a4a6e2859303ea106be830343
af86b218a4a6e2859303ea106be830343

virtual void Enlighten::MultithreadCpuWorkerCommon::RunWorkerThread

...

public: virtual void RunWorkerThread()

...

Start the worker thread if it is not already running.


Anchor
a06622d152ac8c7c61266422cd6b31416
a06622d152ac8c7c61266422cd6b31416

virtual void Enlighten::IUpdateManagerWorker::SetAllUpdateCounters

...

public: void SetAllUpdateCounters
(
    Geo::s32 const & count
)

...

Set all system and probe update counters to count.


Anchor
a8a25c144494bc20ab1f3d6eedcd46f2b
a8a25c144494bc20ab1f3d6eedcd46f2b

virtual void Enlighten::BaseWorker::SetAllUpdateCounters

...

public: virtual void SetAllUpdateCounters
(
    Geo::s32 const & count
)

...

Set all system and probe update counters to count.


Anchor
abd49cca9aef6b5d0ea2a2ee29dccb462
abd49cca9aef6b5d0ea2a2ee29dccb462

virtual void Enlighten::IUpdateManagerWorker::SetDoFullSolveNextFrame

...

public: void SetDoFullSolveNextFrame()

...

Disable temporal coherence so a full solve is performed next frame.


Anchor
aef648f66210ddbdbf5ec1d7d10b683b8
aef648f66210ddbdbf5ec1d7d10b683b8

virtual void Enlighten::BaseWorker::SetDoFullSolveNextFrame

...

public: virtual void SetDoFullSolveNextFrame()

...

Disable temporal coherence so a full solve is performed next frame.


Anchor
adcf18654f8fca150cfe5e083b6aec563
adcf18654f8fca150cfe5e083b6aec563

virtual void Enlighten::BaseWorker::SetDoIndirectInputLightingNextFrame

...

public: virtual void SetDoIndirectInputLightingNextFrame
(
    Geo::GeoGuid const & systemId
)

...

Sets a flag to run indirect input lighting on the next frame.


Anchor
a932dcefa56cefd011042fd6fff642435
a932dcefa56cefd011042fd6fff642435

virtual void Enlighten::IUpdateManagerWorker::SetDoIndirectInputLightingNextFrame

...

public: void SetDoIndirectInputLightingNextFrame
(
    Geo::GeoGuid const & systemId
)

...

Sets a flag to run indirect input lighting on the next frame.


Anchor
a1a66a3943ab89b69ce6268f8cc1246d7
a1a66a3943ab89b69ce6268f8cc1246d7

virtual void Enlighten::MultithreadCpuWorker::SetDoIndirectInputLightingNextFrame

...

public: virtual void SetDoIndirectInputLightingNextFrame
(
    Geo::GeoGuid const & systemId
)

...

Sets a flag to run indirect input lighting on the next frame.


Anchor
a39809d3401e9d95f90f7fe8907ab503a
a39809d3401e9d95f90f7fe8907ab503a

virtual void Enlighten::IUpdateManagerWorker::SetLightBankUpdateCounter

...

public: void SetLightBankUpdateCounter
(
    SetLightBankUpdateCounterInfo const & updateCounterInfo
)

...

Set a light bank update counter.


Anchor
a16e93d3f79b6f7d40caa98cf137d2857
a16e93d3f79b6f7d40caa98cf137d2857

virtual void Enlighten::MultithreadCpuWorker::SetLightBankUpdateCounter

...

public: virtual void SetLightBankUpdateCounter
(
    SetLightBankUpdateCounterInfo const & updateCounterInfo
)

...

Set a light bank update counter.


Anchor
ad5f207b7794a433fc83b0639fa9c9ba0
ad5f207b7794a433fc83b0639fa9c9ba0

virtual void Enlighten::BaseWorker::SetLightBankUpdateCounter

...

public: virtual void SetLightBankUpdateCounter
(
    SetLightBankUpdateCounterInfo const & updateCounterInfo
)

...

Set a light bank update counter.


Anchor
a1fb3606403645d984706e8274d7b52bf
a1fb3606403645d984706e8274d7b52bf

virtual void Enlighten::BaseWorker::SetProbeSetManager

...

public: virtual void SetProbeSetManager
(
    IProbeSetManager *const & probeSetManager
)

...

Set a probe set manager.


Anchor
a795361731836420bea02f4b46fad9180
a795361731836420bea02f4b46fad9180

virtual void Enlighten::BaseWorker::SetProbeSetTransform

...

public: virtual void SetProbeSetTransform
(
    SetProbeSetTransformInfo const & probeSetTransformInfo
)

...

Set a probe set world-to-local-space transform.


Anchor
a9ab9b34a4a485f2e50ddb3bf243f91ec
a9ab9b34a4a485f2e50ddb3bf243f91ec

virtual void Enlighten::IUpdateManagerWorker::SetProbeSetTransform

...

public: void SetProbeSetTransform
(
    SetProbeSetTransformInfo const & probeSetTransformInfo
)

...

Set a probe set world-to-local-space transform.


Anchor
a52b165dc40049c265a6bae7f4ef7f2cf
a52b165dc40049c265a6bae7f4ef7f2cf

virtual void Enlighten::IUpdateManagerWorker::SetSystemSolutionSpaces

...

public: void SetSystemSolutionSpaces
(
    ISystemSolutionSpace *const * solutionSpaces,
    const Geo::s32 solutionSpacesCount,
    const Geo::s32 indexForBounceResampling
)

...

Set the solution spaces used by a system.

Note that a system with a matching guid needs to already be added to the worker. This will only set the solution spaces if they all belong to the same system.

Parameters
solutionSpaces

Raw array of ISystemSolutionSpace pointers

solutionSpacesCount

Number of elements in the solutionSpaces array.

indexForBounceResampling

The index for the solution space to use for bounce resampling. Should be the index of the solution space with the smallest output pixel size.


Anchor
aeedb68167cd72343ba253f968617a376
aeedb68167cd72343ba253f968617a376

virtual void Enlighten::BaseWorker::SetSystemSolutionSpaces

...

public: virtual void SetSystemSolutionSpaces
(
    ISystemSolutionSpace *const * solutionSpaces,
    const Geo::s32 solutionSpacesCount,
    const Geo::s32 indexForBounceResampling
)

...

Set the solution spaces used by a system.

Note that a system with a matching guid needs to already be added to the worker. This will only set the solution spaces if they all belong to the same system.


Anchor
acd0a0fccabe425abab9b1f44eb01a282
acd0a0fccabe425abab9b1f44eb01a282

virtual void Enlighten::MultithreadCpuWorker::SetTransparencySamplePositionOffset

...

public: virtual void SetTransparencySamplePositionOffset
(
    SetTransparencySamplePositionOffsetInfo const & offsetInfo
)

...

Sets the transparency sample position offset.


Anchor
acf24d852304362ca5ec7c027ff9879e2
acf24d852304362ca5ec7c027ff9879e2

virtual void Enlighten::BaseWorker::SetTransparencySamplePositionOffset

...

public: virtual void SetTransparencySamplePositionOffset
(
    SetTransparencySamplePositionOffsetInfo const & offsetInfo
)

...

Sets the transparency sample position offset.


Anchor
ae4181e52b5562e10a29c389e01067da1
ae4181e52b5562e10a29c389e01067da1

virtual void Enlighten::IUpdateManagerWorker::SetTransparencySamplePositionOffset

...

public: void SetTransparencySamplePositionOffset
(
    SetTransparencySamplePositionOffsetInfo const & offsetInfo
)

...

Sets the transparency sample position offset.


Anchor
a63151a3f82bf0d3de29566715edb89b9
a63151a3f82bf0d3de29566715edb89b9

virtual void Enlighten::CpuWorker::SetVisibilityBits

...

public: virtual void SetVisibilityBits
(
    SetVisibilityBitsInfo const & visibilityBitsInfo
)

...

Sets the visibility block for a (system, light) pair.


Anchor
a78afb3d77a60f90c09a08763690c1695
a78afb3d77a60f90c09a08763690c1695

virtual void Enlighten::IUpdateManagerWorker::SetVisibilityBits

...

public: void SetVisibilityBits
(
    SetVisibilityBitsInfo const & visibilityBitsInfo
)

...

Sets the visibility block for a (system, light) pair.


Anchor
a95b13bddf6c4c4e2ffe01cbf6e382345
a95b13bddf6c4c4e2ffe01cbf6e382345

virtual void Enlighten::MultithreadCpuWorker::SetVisibilityBits

...

protected: virtual void SetVisibilityBits
(
    SetVisibilityBitsInfo const & visibilityBitsInfo
)

...

Sets the visibility block for a (system, light) pair.


Anchor
aec0b347bad59266ddb903f0232658212
aec0b347bad59266ddb903f0232658212

void Enlighten::BaseWorker::SetWorkerProperties

...

public: virtual void SetWorkerProperties
(
    const UpdateManagerWorkerProperties & properties
)

...

Set the worker global state.


Anchor
a8a5d46efb2efa8030b08324d2aaa0099
a8a5d46efb2efa8030b08324d2aaa0099

virtual void Enlighten::IUpdateManagerWorker::SetWorkerProperties

...

public: void SetWorkerProperties
(
    UpdateManagerWorkerProperties const & properties
)

...

Set the worker global state.


Anchor
a5993348138759db26a9f67592d1d2b03
a5993348138759db26a9f67592d1d2b03

virtual void Enlighten::MultithreadCpuWorkerCommon::SetWorkerProperties

...

public: virtual void SetWorkerProperties
(
    const UpdateManagerWorkerProperties & properties
)

...

Set the worker global state.


Anchor
ab5c2902b248403f7ffdeb39d3b5535fb
ab5c2902b248403f7ffdeb39d3b5535fb

void Enlighten::MultithreadCpuWorkerCommon::ShutdownThreadGroup

...

public: void ShutdownThreadGroup()

...

One-time therad group shut down.


Anchor
a2175a759e5c3002ee5d875f844fcc946
a2175a759e5c3002ee5d875f844fcc946

virtual void Enlighten::MultithreadCpuWorkerCommon::StopWorkerThread

...

public: virtual void StopWorkerThread()

...

Signal the worker thread to stop and wait until it quits.


Anchor
ac222d0a7b05f9adaa24cccea1d353032
ac222d0a7b05f9adaa24cccea1d353032

virtual void Enlighten::CpuWorker::StopWorkerThread

...

public: void StopWorkerThread()

...

Signal the worker thread to stop and wait until it quits.


Anchor
a50cb71d134f9f84bdbdaca2de6c9445a
a50cb71d134f9f84bdbdaca2de6c9445a

virtual void Enlighten::MultithreadCpuWorker::TriggerTransparencyVolume

...

public: virtual void TriggerTransparencyVolume
(
    const Enlighten::BoxVolume & volume
)

...

Triggers a transparency volume.


Anchor
a6f5c6c96c631f9104e4ceb1849f2663a
a6f5c6c96c631f9104e4ceb1849f2663a

virtual void Enlighten::IUpdateManagerWorker::TriggerTransparencyVolume

...

public: void TriggerTransparencyVolume
(
    const Enlighten::BoxVolume & volume
)

...

Triggers a transparency volume.


Anchor
a10320c882f317e2f2ac4632ff55b1633
a10320c882f317e2f2ac4632ff55b1633

virtual void Enlighten::IUpdateManagerWorker::TriggerTransparencyVolume

...

public: void TriggerTransparencyVolume
(
    const Enlighten::SphereVolume & volume
)

...

Triggers a transparency volume.


Anchor
a8a092d9ba38a518b396c1edfb268e86d
a8a092d9ba38a518b396c1edfb268e86d

virtual void Enlighten::BaseWorker::TriggerTransparencyVolume

...

public: virtual void TriggerTransparencyVolume
(
    const Enlighten::SphereVolume & volume
)

...

Triggers a transparency volume.


Anchor
aa41887cf8cf2e7f159943256a7233df1
aa41887cf8cf2e7f159943256a7233df1

virtual void Enlighten::MultithreadCpuWorker::TriggerTransparencyVolume

...

public: virtual void TriggerTransparencyVolume
(
    const Enlighten::SphereVolume & volume
)

...

Triggers a transparency volume.


Anchor
aded4681b17a95da8be2e0778f361a2e1
aded4681b17a95da8be2e0778f361a2e1

virtual void Enlighten::BaseWorker::TriggerTransparencyVolume

...

public: virtual void TriggerTransparencyVolume
(
    const Enlighten::BoxVolume & volume
)

...

Triggers a transparency volume.


Anchor
aa5406a401fc39bd736e4b7cc6fea6036
aa5406a401fc39bd736e4b7cc6fea6036

void Enlighten::MultithreadCpuWorker::TriggerTransparencyVolumeGeneric

...

public: void TriggerTransparencyVolumeGeneric
(
    const VolumeType & volume
)

...

Triggers a transparency volume.


Anchor
ac8498c94f5ce7560494e53ee2bf3fcf7
ac8498c94f5ce7560494e53ee2bf3fcf7

void Enlighten::CpuWorker::UpdateCubeMapDependencyList

...

protected: void UpdateCubeMapDependencyList
(
    BaseCubeMap * cubeMap
)

...

Creates the cached dependency list for the given cube map.


Anchor
acaac21d2c5095a62fbe2ec21a0b84e54
acaac21d2c5095a62fbe2ec21a0b84e54

virtual void Enlighten::CpuWorker::UpdateEmissiveEnvironment

...

public: virtual void UpdateEmissiveEnvironment
(
    UpdateEnvironmentInfo const & updateEnvironmentInfo
)

...

Update (or add) the environment with the given id.


Anchor
a76cc66c7a110a0bee0ebe2c82f8381f5
a76cc66c7a110a0bee0ebe2c82f8381f5

virtual void Enlighten::IUpdateManagerWorker::UpdateEmissiveEnvironment

...

public: void UpdateEmissiveEnvironment
(
    UpdateEnvironmentInfo const & updateEnvironmentInfo
)

...

Update (or add) the environment with the given id.


Anchor
af29087fab452867bde91f16136eefbbf
af29087fab452867bde91f16136eefbbf

virtual void Enlighten::BaseWorker::UpdateLight

...

public: virtual void UpdateLight
(
    UpdateLightInfo const & updateLightInfo
)

...

Update (or add) the light with the given id.


Anchor
a93cf5af94534db3ddc03bc1d3837539b
a93cf5af94534db3ddc03bc1d3837539b

virtual void Enlighten::IUpdateManagerWorker::UpdateLight

...

public: void UpdateLight
(
    UpdateLightInfo const & updateLightInfo
)

...

Update (or add) the light with the given id.


Anchor
a5c709e7b224156cb898a8f05f0a41d32
a5c709e7b224156cb898a8f05f0a41d32

virtual void Enlighten::MultithreadCpuWorkerCommon::UpdateLightmapBounceBufferData

...

protected: virtual void UpdateLightmapBounceBufferData
(
    BaseSystem * system
)

...

Update the lightmap bounce buffer data.


Anchor
a88609454a50a35c8870a7464c09468b0
a88609454a50a35c8870a7464c09468b0

virtual void Enlighten::MultithreadCpuWorker::UpdateLightmapBounceBufferData

...

protected: virtual void UpdateLightmapBounceBufferData
(
    BaseSystem * system
)

...

Update the lightmap bounce buffer data.


Anchor
a6ca1ff3e480e04c0202d7bbb1fd6791b
a6ca1ff3e480e04c0202d7bbb1fd6791b

void Enlighten::CpuWorker::UpdateProbeDependencyList

...

protected: void UpdateProbeDependencyList
(
    BaseProbeSet * probeSet
)

...

Creates the cached dependency list for the given probe set.


Anchor
a642a67b0bea1cd3ac657f3a01d7302b7
a642a67b0bea1cd3ac657f3a01d7302b7

GEO_POP_IGNORE_DEPRECATION_WARNING void Enlighten::BaseWorker::UpdateRadiosity

...

public: virtual void UpdateRadiosity
(
    const Geo::v128 & viewOrigin
)

...

The main radiosity update function.


Anchor
a351fff4aa7b6da84b5ef0366d7d534c2
a351fff4aa7b6da84b5ef0366d7d534c2

virtual void Enlighten::MultithreadCpuWorkerCommon::UpdateRadiosity

...

public: virtual void UpdateRadiosity
(
    const Geo::v128 & viewOrigin
)

...

The main radiosity update function.


Anchor
ab3e7a50c8655c3869346d73b766ad542
ab3e7a50c8655c3869346d73b766ad542

virtual void Enlighten::IUpdateManagerWorker::UpdateRadiosity

...

public: void UpdateRadiosity
(
    const Geo::v128 & viewOrigin
)

...

The main radiosity update function.


Anchor
a58e7f2295edbaaea6a7aafb601faaa7b
a58e7f2295edbaaea6a7aafb601faaa7b

void Enlighten::CpuWorker::UpdateSystemDependencyLists

...

protected: void UpdateSystemDependencyLists
(
    BaseSystem * newSystem
)

...

Creates the cached dependency list for the given system, and updates all other lists with the new system.


Anchor
a8a5c0b67852068014489ce59b8cdb8b0
a8a5c0b67852068014489ce59b8cdb8b0

bool Enlighten::BaseWorker::WriteVisibilityPointers

...

protected: bool WriteVisibilityPointers
(
    void ** writeAt,
    BaseSystem * system,
    Geo::s32 lightBank
)

...

Write ordered list of visibility data pointers for the given system and light bank Returns TRUE if any of the light inputs have changed.


Anchor
a9ec09e829c5aa8dc0bcc9eefd7152118
a9ec09e829c5aa8dc0bcc9eefd7152118

ProcessingStage

...

protected: enum ProcessingStage
{
    STAGE_SETUP,
    STAGE_QUEUE_INPUT_LIGHTING,
    STAGE_INPUT_LIGHTING,
    STAGE_QUEUE_SOLVING,
    STAGE_SOLVING,
    STAGE_QUEUE_INTERPOLATION,
    STAGE_INTERPOLATION,
    STAGE_HOUSEKEEPING
}

...

Internal enumeration for keeping track of the update loop.

enumerators
STAGE_SETUP
STAGE_QUEUE_INPUT_LIGHTING
STAGE_INPUT_LIGHTING
STAGE_QUEUE_SOLVING
STAGE_SOLVING
STAGE_QUEUE_INTERPOLATION
STAGE_INTERPOLATION
STAGE_HOUSEKEEPING