Diligent Engine
Loading...
Searching...
No Matches
Diligent::RadientTextureDataX Class Reference

#include <RadientTypesX.hpp>

Public Member Functions

 RadientTextureDataX () noexcept=default
 Creates empty data with the C descriptor defaults, including GenerateMips=True.
 RadientTextureDataX (Uint32 Width, Uint32 Height, RADIENT_TEXTURE_FORMAT Format) noexcept
 Sets mip-zero dimensions and format. AddMip supplies the actual levels.
 RadientTextureDataX (const RadientTextureData &Data)
 Copies the mip array and retains each blob. A nonzero count requires a valid array.
 RadientTextureDataX (const RadientTextureDataX &Other)
 Copies metadata and shares references to the same blobs.
RadientTextureDataXoperator= (const RadientTextureDataX &Other)
 Replaces metadata and retained blob references with a copy of Other.
 RadientTextureDataX (RadientTextureDataX &&Other) noexcept
 Transfers metadata and references, leaving Other at its default state.
RadientTextureDataXoperator= (RadientTextureDataX &&Other) noexcept
 Transfers ownership. Other becomes default-initialized; self-move is a no-op.
RadientTextureDataXSetDimensions (Uint32 Width, Uint32 Height) noexcept
 Sets the logical dimensions of mip zero without changing supplied levels.
RadientTextureDataXSetFormat (RADIENT_TEXTURE_FORMAT Format) noexcept
 Sets the pixel or block-compressed format without converting bytes.
RadientTextureDataXSetGenerateMips (Bool GenerateMips) noexcept
 Selects the existing LoadTexture policy for generating missing levels.
RadientTextureDataXAddMip (const RadientTextureMipData &Mip)
 Appends the next consecutive mip descriptor and retains its blob.
RadientTextureDataXAddMip (IRadientDataBlob *pBlob, Uint64 ByteOffset=0, Uint32 Stride=0)
 Appends a mip stored at ByteOffset in pBlob. Zero Stride selects tight rows.
RadientTextureDataXSetMip (Uint32 Index, const RadientTextureMipData &Mip)
 Replaces a mip and its retained blob. Index must be less than GetMipLevelCount().
RadientTextureDataXSetMip (Uint32 Index, IRadientDataBlob *pBlob, Uint64 ByteOffset=0, Uint32 Stride=0)
 Replaces a mip's blob, offset, and row stride. Index must already exist.
Uint32 GetMipLevelCount () const noexcept
 Returns the number of supplied mip levels.
const RadientTextureMipDataGetMip (Uint32 Index) const noexcept
 Returns a mip descriptor. Index must be less than GetMipLevelCount().
const RadientTextureDataGet () const noexcept
 Returns the C descriptor view without allocating or acquiring blob access.
 operator const RadientTextureData & () const noexcept
 Allows passing this wrapper to APIs accepting a const C descriptor reference.
void ClearMips () noexcept
 Releases supplied levels and their references, preserving dimensions, format, and options.
void Clear () noexcept
 Releases levels and restores all C descriptor defaults.
void Swap (RadientTextureDataX &Other) noexcept
 Exchanges descriptors and references and repairs both views without allocating.

Detailed Description

Owns supplied mip descriptors and retains their data blobs.

Copies duplicate descriptors and share blob references; pixel bytes are never copied. Construction and modification do not acquire blob read access, so a mutable blob can still be populated before LoadTexture. REFERENCE blobs retain their existing external-storage lifetime requirements. Get() and conversion expose a view valid until modification, move, or destruction. LoadTexture captures the descriptor and blob references during the call. Concurrent access requires synchronization if any access modifies the wrapper.