12 #include "../type.hpp"
13 #include "../format.hpp"
16 #include <glm/gtc/round.hpp>
17 #include <glm/gtx/component_wise.hpp>
18 #include <glm/gtx/integer.hpp>
19 #include <glm/gtx/bit.hpp>
20 #include <glm/gtx/raw_data.hpp>
21 #include <glm/gtx/wrap.hpp>
23 static_assert(GLM_VERSION >= 97,
"GLI requires at least GLM 0.9.7");
30 typedef extent3d extent_type;
31 typedef size_t size_type;
33 typedef glm::byte data_type;
40 extent_type
const & Extent,
46 size_type size()
const;
47 size_type layers()
const;
49 size_type faces()
const;
53 extent_type block_count(size_type Level)
const;
54 extent_type extent(size_type Level)
const;
57 data_type
const*
const data()
const;
60 size_type base_offset(
63 size_type Level)
const;
67 storage_linear
const& StorageSrc,
68 size_t LayerSrc,
size_t FaceSrc,
size_t LevelSrc, extent_type
const& BlockIndexSrc,
69 size_t LayerDst,
size_t FaceDst,
size_t LevelDst, extent_type
const& BlockIndexDst,
70 extent_type
const& BlockCount);
73 size_type Level)
const;
75 size_type BaseLevel, size_type MaxLevel)
const;
77 size_type BaseFace, size_type MaxFace,
78 size_type BaseLevel, size_type MaxLevel)
const;
81 size_type
const Layers;
82 size_type
const Faces;
83 size_type
const Levels;
84 size_type
const BlockSize;
85 extent_type
const BlockCount;
86 extent_type
const BlockExtent;
87 extent_type
const Extent;
88 std::vector<data_type> Data;
92 #include "storage_linear.inl"
ivec3 block_extent(format Format)
Return the dimensions in texels of the block for a format.
format
Texture data format.
void copy(texture_src_type const &TextureSrc, size_t LayerSrc, size_t FaceSrc, size_t LevelSrc, texture_dst_type &TextureDst, size_t LayerDst, size_t FaceDst, size_t LevelDst)
Copy a specific image of a texture.
Namespace where all the classes and functions provided by GLI are exposed.
size_t block_size(format Format)
Return the size in bytes of a block for a format.
T levels(vecType< T, P > const &Extent)
Compute the number of mipmaps levels necessary to create a mipmap complete texture.