| 0.8.0 API documentation

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

texture2d_array.hpp
Go to the documentation of this file.
1
4 #pragma once
5
6 #include "texture2d.hpp"
7
8 namespace gli
9 {
11 class texture2d_array : public texture
12 {
13 public:
14 typedef extent2d extent_type;
15
16 public:
18 texture2d_array();
19
21 explicit texture2d_array(
22 format_type Format,
23 extent_type const& Extent,
24 size_type Layers,
25 size_type Levels,
26 swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
27
29 explicit texture2d_array(
30 format_type Format,
31 extent_type const & Extent,
32 size_type Layers,
33 swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
34
36 explicit texture2d_array(
37 texture const& Texture);
38
40 explicit texture2d_array(
41 texture const& Texture,
42 format_type Format,
43 size_type BaseLayer, size_type MaxLayer,
44 size_type BaseFace, size_type MaxFace,
45 size_type BaseLevel, size_type MaxLevel,
46 swizzles_type const& Swizzles = swizzles_type(SWIZZLE_RED, SWIZZLE_GREEN, SWIZZLE_BLUE, SWIZZLE_ALPHA));
47
49 explicit texture2d_array(
50 texture2d_array const& Texture,
51 size_type BaseLayer, size_type MaxLayer,
52 size_type BaseLevel, size_type MaxLevel);
53
55 texture2d operator[](size_type Layer) const;
56
58 extent_type extent(size_type Level = 0) const;
59
61 template <typename genType>
62 genType load(extent_type const& TexelCoord, size_type Layer, size_type Level) const;
63
65 template <typename genType>
66 void store(extent_type const& TexelCoord, size_type Layer, size_type Level, genType const& Texel);
67
69 void clear();
70
73 template <typename genType>
74 void clear(genType const& Texel);
75
77 template <typename genType>
78 void clear(size_type Layer, size_type Level, genType const & Texel);
79
80 private:
81 struct cache
82 {
83 std::uint8_t* Data;
84 extent_type Extent;
85 # ifndef NDEBUG
86 size_type Size;
87 # endif
88 };
89
90 void build_cache();
91 size_type index_cache(size_type Layer, size_type Level) const;
92
93 std::vector<cache> Caches;
94 };
95 }//namespace gli
96
97 #include "./core/texture2d_array.inl"
gli::texture
Genetic texture class. It can support any target.
Definition: texture.hpp:12
texture2d.hpp
Include to use 2d textures.
gli
Namespace where all the classes and functions provided by GLI are exposed.
Definition: comparison.hpp:15
gli::texture2d_array::store
void store(extent_type const &TexelCoord, size_type Layer, size_type Level, genType const &Texel)
Write a texel to a texture. The texture format must be uncompressed.
gli::texture2d_array::texture2d_array
texture2d_array()
Create an empty texture 2D array.
gli::texture2d_array
2d array texture
Definition: texture2d_array.hpp:11
gli::texture2d_array::extent
extent_type extent(size_type Level=0) const
Return the dimensions of a texture instance: width and height.
gli::format
format
Texture data format.
Definition: format.hpp:12
gli::texture2d
2d texture
Definition: texture2d.hpp:13
gli::texture2d_array::operator[]
texture2d operator[](size_type Layer) const
Create a view of the texture identified by Layer in the texture array.
gli::texture2d_array::clear
void clear()
Clear the entire texture storage with zeros.
gli::texture2d_array::load
genType load(extent_type const &TexelCoord, size_type Layer, size_type Level) const
Fetch a texel from a texture. The texture format must be uncompressed.