Versions Compared

Key

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

class Enlighten::GlTextureUpdater

    └>Enlighten::IGpuTextureUpdater
        └>Geo::IGeoReleasable

Implementation for managing solver output and OpenGL GPU textures.

Functions

NameDescription
Create(GLuint, GLint, GLint, GLint, GLint, GLenum)

Create an updater for an OpenGL/OpenGL ES 2D texture for irradiance solver output.

Create3D(GLuint, GLint, GLint, GLint, GLint, GLint, GLenum)

Create an updater for an OpenGL/OpenGL ES 3.0 volume texture for interpolated probe output (not supported by OpenGL ES 2.0)

CreateCubeMap(GLuint, GLint, GLint, GLint, GLint, GLenum)

Create an updater for an OpenGL/OpenGL ES cubemap texture for cubemap solver output.

GetCpuAccessiblePointer(Geo::s32)

Returns a CPU pointer to the memory used to update the GPU texture.

GetCpuAccessiblePointer(Geo::s32)

Returns a CPU pointer to the memory used to update the GPU texture.

GetNumMipLevels()

Returns the number of mip levels in the GPU texture - will only be bigger than 1 for cube maps.

GetNumMipLevels()

Returns the number of mip levels in the GPU texture - will only be bigger than 1 for cube maps.

GetRowPitch()

Returns the row pitch of the CPU memory associated with this GPU texture.

GetRowPitch()

Returns the row pitch of the CPU memory associated with this GPU texture.

GetSlicePitch()

Returns the slice pitch of the CPU memory associated with this GPU texture, for 3D textures.

GetSlicePitch()

Returns the slice pitch of the CPU memory associated with this GPU texture, for 3D textures.

IsFormat(TextureFormat)

Returns true if the format of the GPU texture matches the given Enlighten format.

IsFormat(TextureFormat)

Returns true if the specified format matches the updater's current configuration.

NonCopyable(NonCopyable &&)

Defaulted to allow move.

operator=(NonCopyable &&)

Defaulted to allow move.

Release()

Free this object that was created within the Enlighten libraries.

Release()

Free this object that was created within the Enlighten libraries.

Update()

Update the GPU copy of the texture on the render thread.

Update(const TextureSubSection &)

Update the GPU copy of the specified sub-region on the render thread.

Update()

Update the GPU copy of the texture on the render thread.

Update(const TextureSubSection &)

Update the GPU copy of the specified sub-region on the render thread.

UpdateOnWorkerThread()

Potentially update the GPU copy of the texture on the worker thread.

UpdateOnWorkerThread(const TextureSubSection &)

Equivalent to parameter-less overload, but only update a sub-region of the texture.


Anchor
ac16421f589f1f466a78699257e44e588
ac16421f589f1f466a78699257e44e588

GlTextureUpdater * Enlighten::GlTextureUpdater::Create

...

public: GlTextureUpdater * Create
(
    GLuint gpuTexture,
    GLint width,
    GLint height,
    GLint internalFormat,
    GLint format,
    GLenum type
)

...

Create an updater for an OpenGL/OpenGL ES 2D texture for irradiance solver output.


Anchor
a08438a944f9eaaf941df447da87f5437
a08438a944f9eaaf941df447da87f5437

GlTextureUpdater * Enlighten::GlTextureUpdater::Create3D

...

public: GlTextureUpdater * Create3D
(
    GLuint gpuTexture,
    GLint width,
    GLint height,
    GLint depth,
    GLint internalFormat,
    GLint format,
    GLenum type
)

...

Create an updater for an OpenGL/OpenGL ES 3.0 volume texture for interpolated probe output (not supported by OpenGL ES 2.0)


Anchor
ac688ae1f2b4161a166726f20d73398bd
ac688ae1f2b4161a166726f20d73398bd

GlTextureUpdater * Enlighten::GlTextureUpdater::CreateCubeMap

...

public: GlTextureUpdater * CreateCubeMap
(
    GLuint gpuTexture,
    GLint faceWidth,
    GLint numMipLevels,
    GLint internalFormat,
    GLint format,
    GLenum type
)

...

Create an updater for an OpenGL/OpenGL ES cubemap texture for cubemap solver output.


Anchor
a18715dd9ec994ec4d18043feefb2e574
a18715dd9ec994ec4d18043feefb2e574

virtual void* Enlighten::IGpuTextureUpdater::GetCpuAccessiblePointer

...

public: void * GetCpuAccessiblePointer
(
    Geo::s32 faceIdx
)

...

Returns a CPU pointer to the memory used to update the GPU texture.

This may point directly to the GPU texture in unified memory architectures. The face index parameter is only relevant to cube maps.


Anchor
a859f2509875e41675a850c39b6a7123a
a859f2509875e41675a850c39b6a7123a

virtual void* Enlighten::GlTextureUpdater::GetCpuAccessiblePointer

...

public: virtual void * GetCpuAccessiblePointer
(
    Geo::s32 faceIdx
)

...

Returns a CPU pointer to the memory used to update the GPU texture.

This may point directly to the GPU texture in unified memory architectures. The face index parameter is only relevant to cube maps.


Anchor
aca2e0f159f392c1fd68bdf3dcffc6b42
aca2e0f159f392c1fd68bdf3dcffc6b42

Geo::s32 Enlighten::GlTextureUpdater::GetNumMipLevels

...

public: virtual Geo::s32 GetNumMipLevels()

...

Returns the number of mip levels in the GPU texture - will only be bigger than 1 for cube maps.


Anchor
a0bb2cccc88c1c3ee973a6c490f67ffd2
a0bb2cccc88c1c3ee973a6c490f67ffd2

virtual Geo::s32 Enlighten::IGpuTextureUpdater::GetNumMipLevels

...

public: Geo::s32 GetNumMipLevels()

...

Returns the number of mip levels in the GPU texture - will only be bigger than 1 for cube maps.


Anchor
ac46bc16b556e12c11555ab67374e5948
ac46bc16b556e12c11555ab67374e5948

virtual Geo::s32 Enlighten::IGpuTextureUpdater::GetRowPitch

...

public: Geo::s32 GetRowPitch()

...

Returns the row pitch of the CPU memory associated with this GPU texture.


Anchor
af93b670cdd21f0afce2b3dfc4486c0fd
af93b670cdd21f0afce2b3dfc4486c0fd

virtual Geo::s32 Enlighten::GlTextureUpdater::GetRowPitch

...

public: virtual Geo::s32 GetRowPitch()

...

Returns the row pitch of the CPU memory associated with this GPU texture.


Anchor
a3c1c0a7ae5cb6ece0bc70267d68d543d
a3c1c0a7ae5cb6ece0bc70267d68d543d

virtual Geo::s32 Enlighten::GlTextureUpdater::GetSlicePitch

...

public: virtual Geo::s32 GetSlicePitch()

...

Returns the slice pitch of the CPU memory associated with this GPU texture, for 3D textures.

Returns 0 for 2D textures, and -1 for cube maps.


Anchor
a00313b7e0f97fe4231e8de7ec4cb04f8
a00313b7e0f97fe4231e8de7ec4cb04f8

virtual Geo::s32 Enlighten::IGpuTextureUpdater::GetSlicePitch

...

public: Geo::s32 GetSlicePitch()

...

Returns the slice pitch of the CPU memory associated with this GPU texture, for 3D textures.

Returns 0 for 2D textures, and -1 for cube maps.


Anchor
ac60503e58f821090d466214a8832124d
ac60503e58f821090d466214a8832124d

virtual bool Enlighten::IGpuTextureUpdater::IsFormat

...

public: bool IsFormat
(
    TextureFormat format
)

...

Returns true if the format of the GPU texture matches the given Enlighten format.


Anchor
acf7242b813eab749275da32840390aab
acf7242b813eab749275da32840390aab

bool Enlighten::GlTextureUpdater::IsFormat

...

public: virtual bool IsFormat
(
    TextureFormat format
)

...

Returns true if the specified format matches the updater's current configuration.


Anchor
adaed81b4c59f263dcb4e78c4126f4683
adaed81b4c59f263dcb4e78c4126f4683

Geo::NonCopyable::NonCopyable

...

public: NonCopyable
(
    NonCopyable &&
)

...

Defaulted to allow move.


Anchor
a6abc781e23b8f4864e0b868806e0acbf
a6abc781e23b8f4864e0b868806e0acbf

NonCopyable& Geo::NonCopyable::operator=

...

public: NonCopyable & operator=
(
    NonCopyable &&
)

...

Defaulted to allow move.


Anchor
a6dc1ca58a3aa3e0f939c9d424a0f541a
a6dc1ca58a3aa3e0f939c9d424a0f541a

void Enlighten::GlTextureUpdater::Release

...

public: virtual void Release()

...

Free this object that was created within the Enlighten libraries.

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


Anchor
af6bdf30b42adde386c428e9dc2821eb9
af6bdf30b42adde386c428e9dc2821eb9

virtual void Geo::IGeoReleasable::Release

...

public: void Release()

...

Free this object that was created within the Enlighten libraries.

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


Anchor
adf4da8d49910eec4cff478d43105900f
adf4da8d49910eec4cff478d43105900f

void Enlighten::GlTextureUpdater::Update

...

public: virtual void Update()

...

Update the GPU copy of the texture on the render thread.


Anchor
adfb56eb124af1e1fec831a14cadc4295
adfb56eb124af1e1fec831a14cadc4295

virtual void Enlighten::GlTextureUpdater::Update

...

public: virtual void Update
(
    const TextureSubSection & sub
)

...

Update the GPU copy of the specified sub-region on the render thread.


Anchor
a73311de29f507dbe76859017cd8c79ed
a73311de29f507dbe76859017cd8c79ed

virtual void Enlighten::IGpuTextureUpdater::Update

...

public: void Update()

...

Update the GPU copy of the texture on the render thread.


Anchor
a5b9991aeaef62e128aa385305e6cb6ee
a5b9991aeaef62e128aa385305e6cb6ee

virtual void Enlighten::IGpuTextureUpdater::Update

...

public: void Update
(
    const TextureSubSection & sub
)

...

Update the GPU copy of the specified sub-region on the render thread.


Anchor
a3427d24e5fdff07e4a2c77b2de6c79ef
a3427d24e5fdff07e4a2c77b2de6c79ef

virtual void Enlighten::IGpuTextureUpdater::UpdateOnWorkerThread

...

public: virtual void UpdateOnWorkerThread()

...

Potentially update the GPU copy of the texture on the worker thread.

Implementers should use this method when the texture can safely be updated on a thread other than the render thread. The default implementation does nothing, in which case the update should be done in the regular Update function. The update should be performed here or in Update, not both.


Anchor
a009905f8aafc20111f05a8c4f3df7380
a009905f8aafc20111f05a8c4f3df7380

virtual void Enlighten::IGpuTextureUpdater::UpdateOnWorkerThread

...

public: virtual void UpdateOnWorkerThread
(
    const TextureSubSection & sub
)

...

Equivalent to parameter-less overload, but only update a sub-region of the texture.