This is the documentation for Enlighten.
class Enlighten CpuSystemSolutionSpace
class Enlighten::CpuSystemSolutionSpace
└>Enlighten::BaseSystemSolutionSpace
└>Enlighten::ISystemSolutionSpace
└>Geo::IGeoReleasable
System solution space for the CPU solver.
Variables
Name | Description |
---|---|
void * m_EnvBouncePersistentDataBuffer | Persistent data between environment Bounce solves. |
bool m_IsReadyForRendering | Has the output been solved at least once and is ready for rendering. |
void * m_PersistentDataBuffer | Bounce data to feed to the input lighting next frame. |
Functions
Name | Description |
---|---|
AllocatePersistentSolverData(bool) | Allocate the buffers for persistent data (bounce, temporal coherence) |
AnyTextureUpdatesPending() | Returns true if the system is static. |
BaseSystemSolutionSpace(const Enlighten::RadSystemCore *, IGpuTexture *, eOutputFormat) | Constructor. |
CacheSystemOutputInfo() | Function to cache the pointers and strides for output textures. |
CpuSystemSolutionSpace(const Enlighten::RadSystemCore *, IGpuTexture *, SolveType, eOutputFormat) | Constructor. |
DisableUpdatesAndFreeMemory() | Disable Updates and Free memory. |
DisableUpdatesAndFreeMemory() | Disable Updates and Free memory. |
ForgetTextureUpdates() | Clear the flags indicating that texture updates are pending. |
GetDeviceTextureFormat(OutputTextureType, eOutputFormat) | Helper function to convert the Enlighten format specifier to a device-specific format. |
GetDirectionalOutputStride() | Returns the row stride of the directional output cpu data. |
GetDoFullSolutionSolveNextFrame() | Gets/sets a flag which determines if we should do a full solve next frame. |
GetEnvBouncePersistentSolverData() | Gets the env persistent data (bounce, temporal coherence). |
GetIrradianceOutputFormat() | Get the output format if the irradiance texture. |
GetIrradianceOutputStride() | Returns the row stride of the irradiance output cpu data. |
GetOutputPitchInBytes(OutputTextureType) | Returns the pitch that Enlighten should use when writing the output buffer (texture) |
GetOutputPointer(OutputTextureType) | Returns the memory location where Enlighten should write the output data. |
GetOutputTexture(OutputTextureType, bool) | Get the output textures. |
GetOutputTexture(OutputTextureType, bool) | Get the output texture from the solution space. Useful when you use IGpuTextureAllocator to allocate the textures. |
GetPersistentSolverData() | Gets the persistent data (bounce, temporal coherence). |
GetRadiosityCore() | Get the RadSystemCore object which this solution space represents. |
GetRadiosityCore() | Get the immutable Radiosity System core. |
GetStale() | Gets/sets a flag which when true indicates that a solution space should have been solved but was not for some reason (e.g. |
HasEnvironmentOnlyBounceData() | Determine if the environment only bounce data is present. Requires excludeEnvironmentInPrimaryBounce="true" in paramset. |
IsReadyForRendering(OutputTextureType) | Returns true if the texture has been solved at least once and is ready for rendering. |
IsReadyForRendering(OutputTextureType) | Returns true if the texture has been solved at least once and is ready for rendering. |
MarkUpdate(Geo::u32) | Mark a particular texture as having been updated on the worker thread. The render thread will update these textures when UpdateGpuTextures() is called. |
MarkUpdate(Geo::u32) | Sets or clears the update status flag of the given output texture. |
NonCopyable(NonCopyable &&) | Defaulted to allow move. |
operator=(NonCopyable &&) | Defaulted to allow move. |
Release() | Free this object that was created within the Enlighten libraries. |
Release() | Release the resources which are owned by this object. |
ReleaseOwnResources() | Releases owned resources. |
ReleaseOwnResources() | Releases owned resources. |
SetDoFullSolutionSolveNextFrame(bool) | Gets/sets a flag which determines if we should do a full solve next frame. |
SetGpuTexture(OutputTextureType, IGpuTexture *) | Set the GPU textures on SystemSolutionSpace objects. This should be called via the command processor. |
SetIsReadyForRendering(bool) | Set is ready for rendering textures flag. |
SetStale(bool) | Gets/sets a flag which when true indicates that a solution space should have been solved but was not for some reason (e.g. |
UpdateGpuTextures() | Update the Gpu textures. This should be called on the render thread. |
UpdateGpuTextures() | Update the Gpu textures. This should be called on the render thread. Returns true if any work was done. |
virtual void Enlighten::CpuSystemSolutionSpace::AllocatePersistentSolverData
public: virtual void AllocatePersistentSolverData
(
bool allocateEnvironmentBounceBuffer
)
Allocate the buffers for persistent data (bounce, temporal coherence)
virtual bool Enlighten::CpuSystemSolutionSpace::AnyTextureUpdatesPending
public: virtual bool AnyTextureUpdatesPending() const
Returns true if the system is static.
Enlighten::BaseSystemSolutionSpace::BaseSystemSolutionSpace
protected: BaseSystemSolutionSpace
(
const Enlighten::RadSystemCore * core,
IGpuTexture * outputTextures,
eOutputFormat irradianceTextureFormat
)
Constructor.
virtual void Enlighten::BaseSystemSolutionSpace::CacheSystemOutputInfo
protected: virtual void CacheSystemOutputInfo()
Function to cache the pointers and strides for output textures.
Enlighten::CpuSystemSolutionSpace::CpuSystemSolutionSpace
protected: CpuSystemSolutionSpace
(
const Enlighten::RadSystemCore * core,
IGpuTexture * outputTextures,
SolveType solveType,
eOutputFormat irradianceTextureFormat
)
Constructor.
virtual void Enlighten::CpuSystemSolutionSpace::DisableUpdatesAndFreeMemory
public: virtual void DisableUpdatesAndFreeMemory()
Disable Updates and Free memory.
virtual void Enlighten::BaseSystemSolutionSpace::DisableUpdatesAndFreeMemory
public: virtual void DisableUpdatesAndFreeMemory()
Disable Updates and Free memory.
virtual void Enlighten::CpuSystemSolutionSpace::ForgetTextureUpdates
public: virtual void ForgetTextureUpdates()
Clear the flags indicating that texture updates are pending.
static TextureFormat Enlighten::BaseSystemSolutionSpace::GetDeviceTextureFormat
public: TextureFormat GetDeviceTextureFormat
(
OutputTextureType type,
eOutputFormat irradianceOutputFormat
)
Helper function to convert the Enlighten format specifier to a device-specific format.
Geo::s32 Enlighten::BaseSystemSolutionSpace::GetDirectionalOutputStride
public: Geo::s32 GetDirectionalOutputStride() const
Returns the row stride of the directional output cpu data.
bool Enlighten::BaseSystemSolutionSpace::GetDoFullSolutionSolveNextFrame
public: bool GetDoFullSolutionSolveNextFrame() const
Gets/sets a flag which determines if we should do a full solve next frame.
void* Enlighten::CpuSystemSolutionSpace::GetEnvBouncePersistentSolverData
public: void * GetEnvBouncePersistentSolverData()
Gets the env persistent data (bounce, temporal coherence).
eOutputFormat Enlighten::BaseSystemSolutionSpace::GetIrradianceOutputFormat
public: eOutputFormat GetIrradianceOutputFormat() const
Get the output format if the irradiance texture.
Geo::s32 Enlighten::BaseSystemSolutionSpace::GetIrradianceOutputStride
public: Geo::s32 GetIrradianceOutputStride() const
Returns the row stride of the irradiance output cpu data.
virtual Geo::s32 Enlighten::BaseSystemSolutionSpace::GetOutputPitchInBytes
public: virtual Geo::s32 GetOutputPitchInBytes
(
OutputTextureType textureType
)
Returns the pitch that Enlighten should use when writing the output buffer (texture)
virtual void* Enlighten::BaseSystemSolutionSpace::GetOutputPointer
public: virtual void * GetOutputPointer
(
OutputTextureType textureType
)
Returns the memory location where Enlighten should write the output data.
virtual IGpuTexture* Enlighten::BaseSystemSolutionSpace::GetOutputTexture
public: virtual IGpuTexture * GetOutputTexture
(
OutputTextureType textureType,
bool forceGet
) const
Get the output textures.
virtual IGpuTexture* Enlighten::ISystemSolutionSpace::GetOutputTexture
public: IGpuTexture * GetOutputTexture
(
OutputTextureType textureType,
bool forceGet
) const
Get the output texture from the solution space. Useful when you use IGpuTextureAllocator to allocate the textures.
void* Enlighten::CpuSystemSolutionSpace::GetPersistentSolverData
public: void * GetPersistentSolverData()
Gets the persistent data (bounce, temporal coherence).
virtual const RadSystemCore* Enlighten::ISystemSolutionSpace::GetRadiosityCore
public: const RadSystemCore * GetRadiosityCore() const
Get the RadSystemCore object which this solution space represents.
virtual const RadSystemCore* Enlighten::BaseSystemSolutionSpace::GetRadiosityCore
public: virtual const RadSystemCore * GetRadiosityCore() const
Get the immutable Radiosity System core.
bool Enlighten::BaseSystemSolutionSpace::GetStale
public: bool GetStale() const
Gets/sets a flag which when true indicates that a solution space should have been solved but was not for some reason (e.g.
update rate), and thus a solve must happen eventually in the future.
bool Enlighten::BaseSystemSolutionSpace::HasEnvironmentOnlyBounceData
public: bool HasEnvironmentOnlyBounceData()
Determine if the environment only bounce data is present. Requires excludeEnvironmentInPrimaryBounce="true" in paramset.
virtual bool Enlighten::BaseSystemSolutionSpace::IsReadyForRendering
public: virtual bool IsReadyForRendering
(
OutputTextureType textureType
) const
Returns true if the texture has been solved at least once and is ready for rendering.
virtual bool Enlighten::ISystemSolutionSpace::IsReadyForRendering
public: bool IsReadyForRendering
(
OutputTextureType textureType
) const
Returns true if the texture has been solved at least once and is ready for rendering.
virtual void Enlighten::CpuSystemSolutionSpace::MarkUpdate
public: virtual void MarkUpdate
(
Geo::u32 value
)
Mark a particular texture as having been updated on the worker thread. The render thread will update these textures when UpdateGpuTextures() is called.
virtual void Enlighten::BaseSystemSolutionSpace::MarkUpdate
public: void MarkUpdate
(
Geo::u32 value
)
Sets or clears the update status flag of the given output texture.
TRUE means that the internal solution for that texture has finished, but the GPU resource has not yet been updated.
Geo::NonCopyable::NonCopyable
public: NonCopyable
(
NonCopyable &&
)
Defaulted to allow move.
NonCopyable& Geo::NonCopyable::operator=
public: NonCopyable & operator=
(
NonCopyable &&
)
Defaulted to allow move.
virtual void Geo::IGeoReleasable::Release
public: void Release()
Free this object that was created within the Enlighten libraries.
Expect this to behave in a similar way to calling 'delete(this)'
virtual void Enlighten::BaseSystemSolutionSpace::Release
public: virtual void Release()
Release the resources which are owned by this object.
void Enlighten::CpuSystemSolutionSpace::ReleaseOwnResources
protected: void ReleaseOwnResources()
Releases owned resources.
void Enlighten::BaseSystemSolutionSpace::ReleaseOwnResources
protected: void ReleaseOwnResources()
Releases owned resources.
void Enlighten::BaseSystemSolutionSpace::SetDoFullSolutionSolveNextFrame
public: void SetDoFullSolutionSolveNextFrame
(
bool value
)
Gets/sets a flag which determines if we should do a full solve next frame.
virtual void Enlighten::BaseSystemSolutionSpace::SetGpuTexture
public: virtual void SetGpuTexture
(
OutputTextureType textureType,
IGpuTexture * gpuTexture
)
Set the GPU textures on SystemSolutionSpace objects. This should be called via the command processor.
void Enlighten::BaseSystemSolutionSpace::SetIsReadyForRendering
public: void SetIsReadyForRendering
(
bool value
)
Set is ready for rendering textures flag.
void Enlighten::BaseSystemSolutionSpace::SetStale
public: void SetStale
(
bool value
)
Gets/sets a flag which when true indicates that a solution space should have been solved but was not for some reason (e.g.
update rate), and thus a solve must happen eventually in the future.
virtual bool Enlighten::CpuSystemSolutionSpace::UpdateGpuTextures
public: virtual bool UpdateGpuTextures()
Update the Gpu textures. This should be called on the render thread.
virtual bool Enlighten::BaseSystemSolutionSpace::UpdateGpuTextures
public: bool UpdateGpuTextures()
Update the Gpu textures. This should be called on the render thread. Returns true if any work was done.