Diligent Engine
Loading...
Searching...
No Matches
Diligent::RadientTextureData Struct Reference

#include <RadientAssets.h>

Public Attributes

Uint32 Width = 0
Uint32 Height = 0
RADIENT_TEXTURE_FORMAT Format = RADIENT_TEXTURE_FORMAT_UNKNOWN
const RadientTextureMipData * pMipLevels = nullptr
Uint32 MipLevelCount = 0
Bool GenerateMips = True

Detailed Description

Supplied mip levels for a 2D texture. LoadTexture copies this descriptor and its mip array; the caller may discard both after the call returns.

Member Data Documentation

◆ Format

RADIENT_TEXTURE_FORMAT Diligent::RadientTextureData::Format = RADIENT_TEXTURE_FORMAT_UNKNOWN

Pixel or block-compressed format shared by every mip. Accepts all RADIENT_TEXTURE_FORMAT values except RADIENT_TEXTURE_FORMAT_UNKNOWN, which is the default.

◆ GenerateMips

Bool Diligent::RadientTextureData::GenerateMips = True

Generate the missing mip levels through 1x1, starting from the last supplied level. Supplied levels are never regenerated. A complete chain makes this a no-op. If False, only the supplied levels are loaded. Defaults to True. Compressed formats always load only the supplied levels. If True and the compressed chain is incomplete, LoadTexture logs a warning and continues without generating levels. A complete chain or False produces no warning.

◆ Height

Uint32 Diligent::RadientTextureData::Height = 0

Mip 0 height in pixels. Must be nonzero and a multiple of four for BC formats. Defaults to zero. Smaller BC mip levels may have dimensions below four. Invalid dimensions return RADIENT_STATUS_INVALID_ARGUMENT.

◆ MipLevelCount

Uint32 Diligent::RadientTextureData::MipLevelCount = 0

Number of supplied mip levels. Must be at least one and no greater than 1 + floor(log2(max(Width, Height))). A partial chain is allowed. Defaults to zero, which returns RADIENT_STATUS_INVALID_ARGUMENT.

◆ pMipLevels

const RadientTextureMipData* Diligent::RadientTextureData::pMipLevels = nullptr

Required array of MipLevelCount descriptors, ordered consecutively from mip 0. Mip i has logical dimensions max(1, Width >> i) by max(1, Height >> i) pixels. For compressed formats, storage covers these dimensions with complete blocks, rounding up to at least one block in each dimension. A logical 1x1 mip therefore still requires one full compression block; see RadientTextureMipData::ByteOffset. Each supplied mip is preserved, including its row stride. The array is copied and its blobs are retained with read access during LoadTexture; see RadientTextureMipData::pDataBlob. Defaults to nullptr, which is invalid.

◆ Width

Uint32 Diligent::RadientTextureData::Width = 0

Mip 0 width in pixels. Must be nonzero and a multiple of four for BC formats. Defaults to zero. Invalid dimensions return RADIENT_STATUS_INVALID_ARGUMENT.