VisuTwin Canvas
C++ 3D Engine — Metal Backend
Loading...
Searching...
No Matches
visutwin::canvas::Texture Class Reference

GPU texture resource supporting 2D, cubemap, volume, and array formats with mipmap management. More...

#include <platform/graphics/texture.h>

Inheritance diagram for visutwin::canvas::Texture:
[legend]

Public Member Functions

uint32_t depth () const
GraphicsDevicedevice () const
TextureEncoding encoding () const
PixelFormat format () const
void * getArrayData (uint32_t mipLevel, uint32_t index) const
uint32_t getArrayLength () const
void * getFaceData (uint32_t mipLevel, uint32_t face) const
void * getLevel (uint32_t mipLevel) const
size_t getLevelDataSize (uint32_t mipLevel, uint32_t face=0) const
uint32_t getNumLevels () const
bool hasLevels () const
uint32_t height () const
gpu::HardwareTextureimpl () const
bool isArray () const
bool isCubemap () const
bool isVolume () const
bool mipmaps () const
const std::string & name () const
bool needsMipmapsUpload () const
bool needsUpload () const
void resize (uint32_t width, uint32_t height, uint32_t depth=1)
void setAddressU (AddressMode address)
void setAddressV (AddressMode address)
void setAddressW (AddressMode address)
void setEncoding (TextureEncoding value)
void setLevelData (uint32_t mipLevel, const uint8_t *data, size_t dataSize, uint32_t face=0)
void setMagFilter (FilterMode filter)
void setMinFilter (FilterMode filter)
void setMipmaps (bool mipmaps)
void setNeedsMipmapsUpload (const bool needsMipmapsUpload)
void setNeedsUpload (const bool needsUpload)
bool storage () const
 Texture (GraphicsDevice *graphicsDevice, const TextureOptions &options=TextureOptions{})
void upload ()
uint32_t width () const
 ~Texture ()

Protected Member Functions

virtual void propertyChanged (TextureProperty flag)

Detailed Description

GPU texture resource supporting 2D, cubemap, volume, and array formats with mipmap management.

Texture wraps a GPU texture object. It supports multiple formats (LDR, HDR, depth), filtering modes, and addressing modes. Pixel data is uploaded via upload() after setting level data. Used by materials for surface maps and by render targets for off-screen rendering.

Definition at line 56 of file texture.h.

Constructor & Destructor Documentation

◆ Texture()

◆ ~Texture()

visutwin::canvas::Texture::~Texture ( )

Definition at line 68 of file texture.cpp.

Member Function Documentation

◆ depth()

uint32_t visutwin::canvas::Texture::depth ( ) const
inline

Definition at line 67 of file texture.h.

Referenced by resize(), and Texture().

◆ device()

GraphicsDevice * visutwin::canvas::Texture::device ( ) const
inline

Definition at line 100 of file texture.h.

Referenced by visutwin::canvas::RenderTarget::RenderTarget().

◆ encoding()

TextureEncoding visutwin::canvas::Texture::encoding ( ) const
inline

Definition at line 104 of file texture.h.

◆ format()

PixelFormat visutwin::canvas::Texture::format ( ) const
inline

Definition at line 97 of file texture.h.

Referenced by visutwin::canvas::RenderPassDof::RenderPassDof(), and Texture().

◆ getArrayData()

void * visutwin::canvas::Texture::getArrayData ( uint32_t mipLevel,
uint32_t index ) const

Definition at line 211 of file texture.cpp.

References getLevel(), and isArray().

◆ getArrayLength()

uint32_t visutwin::canvas::Texture::getArrayLength ( ) const
inline

Definition at line 92 of file texture.h.

◆ getFaceData()

void * visutwin::canvas::Texture::getFaceData ( uint32_t mipLevel,
uint32_t face ) const

Definition at line 201 of file texture.cpp.

◆ getLevel()

void * visutwin::canvas::Texture::getLevel ( uint32_t mipLevel) const

◆ getLevelDataSize()

size_t visutwin::canvas::Texture::getLevelDataSize ( uint32_t mipLevel,
uint32_t face = 0 ) const

Definition at line 155 of file texture.cpp.

◆ getNumLevels()

uint32_t visutwin::canvas::Texture::getNumLevels ( ) const
inline

Definition at line 80 of file texture.h.

◆ hasLevels()

bool visutwin::canvas::Texture::hasLevels ( ) const
inline

Definition at line 79 of file texture.h.

◆ height()

◆ impl()

◆ isArray()

bool visutwin::canvas::Texture::isArray ( ) const
inline

Definition at line 69 of file texture.h.

Referenced by getArrayData(), and Texture().

◆ isCubemap()

bool visutwin::canvas::Texture::isCubemap ( ) const
inline

◆ isVolume()

bool visutwin::canvas::Texture::isVolume ( ) const
inline

Definition at line 90 of file texture.h.

◆ mipmaps()

bool visutwin::canvas::Texture::mipmaps ( ) const
inline

Definition at line 94 of file texture.h.

Referenced by setMipmaps(), and Texture().

◆ name()

const std::string & visutwin::canvas::Texture::name ( ) const
inline

Definition at line 103 of file texture.h.

Referenced by Texture().

◆ needsMipmapsUpload()

bool visutwin::canvas::Texture::needsMipmapsUpload ( ) const
inline

Definition at line 74 of file texture.h.

Referenced by setNeedsMipmapsUpload().

◆ needsUpload()

bool visutwin::canvas::Texture::needsUpload ( ) const
inline

Definition at line 73 of file texture.h.

Referenced by setNeedsUpload().

◆ propertyChanged()

void visutwin::canvas::Texture::propertyChanged ( TextureProperty flag)
protectedvirtual

Definition at line 323 of file texture.cpp.

Referenced by setAddressU(), setAddressV(), setAddressW(), setMagFilter(), and setMinFilter().

◆ resize()

void visutwin::canvas::Texture::resize ( uint32_t width,
uint32_t height,
uint32_t depth = 1 )

Definition at line 219 of file texture.cpp.

References depth(), height(), and width().

◆ setAddressU()

void visutwin::canvas::Texture::setAddressU ( AddressMode address)

◆ setAddressV()

void visutwin::canvas::Texture::setAddressV ( AddressMode address)

◆ setAddressW()

void visutwin::canvas::Texture::setAddressW ( AddressMode address)

Definition at line 311 of file texture.cpp.

References propertyChanged(), and visutwin::canvas::TEXPROPERTY_ADDRESS_W.

◆ setEncoding()

void visutwin::canvas::Texture::setEncoding ( TextureEncoding value)
inline

Definition at line 105 of file texture.h.

◆ setLevelData()

void visutwin::canvas::Texture::setLevelData ( uint32_t mipLevel,
const uint8_t * data,
size_t dataSize,
uint32_t face = 0 )

Definition at line 163 of file texture.cpp.

References storage().

◆ setMagFilter()

void visutwin::canvas::Texture::setMagFilter ( FilterMode filter)

◆ setMinFilter()

void visutwin::canvas::Texture::setMinFilter ( FilterMode filter)

◆ setMipmaps()

void visutwin::canvas::Texture::setMipmaps ( bool mipmaps)

Definition at line 260 of file texture.cpp.

References mipmaps().

Referenced by visutwin::canvas::Scene::setEnvAtlas().

◆ setNeedsMipmapsUpload()

void visutwin::canvas::Texture::setNeedsMipmapsUpload ( const bool needsMipmapsUpload)
inline

Definition at line 77 of file texture.h.

References needsMipmapsUpload().

◆ setNeedsUpload()

void visutwin::canvas::Texture::setNeedsUpload ( const bool needsUpload)
inline

Definition at line 76 of file texture.h.

References needsUpload().

◆ storage()

bool visutwin::canvas::Texture::storage ( ) const
inline

Definition at line 98 of file texture.h.

Referenced by setLevelData(), and Texture().

◆ upload()

void visutwin::canvas::Texture::upload ( )

Definition at line 137 of file texture.cpp.

◆ width()


The documentation for this class was generated from the following files: