5#include "Foundation/Memory/MemoryBuffer.h"
64 void init(
TextureExtent extent,
size_t layers,
size_t faces,
size_t levels,
TextureFormat format, Memory::Allocator * allocator = Memory::Allocator::defaultAllocator());
65 void initExternal(intptr_t external);
66 void initExternal(
const void ** data,
size_t layers,
size_t faces,
size_t levels);
69 void * getData(
size_t layer,
size_t face,
size_t level);
70 const void * getData(
size_t layer,
size_t face,
size_t level)
const;
75 size_t getPitch(
size_t level)
const;
76 size_t getLevelSize(
size_t level)
const;
77 size_t getFaceSize(
size_t baseLevel,
size_t maxLevel)
const;
78 size_t getLayerSize(
size_t baseFace,
size_t maxFace,
size_t baseLevel,
size_t maxLevel)
const;
84 size_t getOffset(
size_t layer,
size_t face,
size_t level)
const;
85 void initOffsets(
const void * data);
98 Collections::SmallVector<const void *, 16>
offsets;
100 intptr_t externalHandle = 0;
#define COGSRENDERING_DLL_API
Definition: Base.h:20
@ Unknown
Unknown type of graphics device.
Format TextureFormat
Definition: DataFormat.h:246
uint32_t getMipSize(uint32_t size, uint32_t level)
Definition: TextureData.cpp:52
ResourceDimensions
Definition: TextureData.h:16
@ ResourceDimensions_Size
uint32_t COGSRENDERING_DLL_API getSize(const Cogs::VertexFormat &vertexFormat)
Definition: VertexFormat.h:82
const char * getResourceDimensionsName(ResourceDimensions target)
Definition: TextureData.cpp:9
size_t getComponents(TextureFormat format)
Definition: TextureData.cpp:42
Format
Definition: DataFormat.h:22
TextureExtent getBlockExtent(TextureFormat format)
Definition: TextureData.cpp:37
size_t getBlockSize(TextureFormat format)
Definition: TextureData.cpp:32
uint32_t getMipLevels(const uint32_t width, const uint32_t height)
Definition: TextureData.cpp:47
Definition: TextureData.h:56
TextureData(TextureData &&)=default
void * getData()
Definition: TextureData.h:72
Memory::MemoryBuffer data
Definition: TextureData.h:99
TextureExtent blockExtent
Definition: TextureData.h:94
const void * getData() const
Definition: TextureData.h:73
Collections::SmallVector< const void *, 16 > offsets
Definition: TextureData.h:98
TextureExtent blockCount
Definition: TextureData.h:95
TextureData & operator=(TextureData &&)=default
TextureExtent extent
Definition: TextureData.h:96
Definition: TextureData.h:35
uint32_t width
Definition: TextureData.h:44
uint32_t height
Definition: TextureData.h:45
uint32_t depth
Definition: TextureData.h:46
uint32_t layers
Definition: TextureData.h:47
TextureDescription()=default
COGSRENDERING_DLL_API size_t estimateMemorySize() const
Attempts to estimate the amount of memory a texture with these attributes will require.
Definition: TextureData.cpp:57
uint32_t samples
Definition: TextureData.h:50
TextureFlags::ETextureFlags flags
Definition: TextureData.h:52
ResourceDimensions target
Definition: TextureData.h:43
TextureFormat format
Definition: TextureData.h:51
uint32_t levels
Definition: TextureData.h:49
uint32_t faces
Definition: TextureData.h:48
Definition: DataFormat.h:249
ETextureFlags
Texture flags enumeration.
Definition: Flags.h:114
@ Default
Default usage, the texture can be loaded once and bound and sampled in shaders.
Definition: Flags.h:116