33 const int32_t nb_channels = 0,
34 const int32_t internal_format = 0,
35 const int32_t format = 0,
36 const int32_t type = 0,
37 const uint8_t max_mips = 1
47 Texture(
const std::string& filename,
const bool& is_srgb =
false,
const uint8_t max_mips = 1);
54 const uint32_t height,
55 const std::function<glm::vec4(
const uint32_t i,
const uint32_t j)> generator,
56 const uint8_t max_mips = 1
64 const uint32_t height,
66 const int32_t nb_channels = 0,
67 const int32_t internal_format = 0,
68 const int32_t format = 0,
69 const int32_t type = 0,
70 const uint8_t max_mips = 1
73 static Texture* generateFromCompressed(
74 const int32_t compression,
77 const int32_t data_size,
81 virtual void use(
const uint8_t& layer);
83 virtual void enableBilinearFiltering(
bool enabled =
true);
85 virtual void generateMipMaps();
90 void fillTextureData(
const ByteArray& data,
const unsigned int& face,
const unsigned int& mip_level);
97 unsigned int getWidth()
const {
return _width; }
98 unsigned int getHeight()
const {
return _height; }
101 unsigned int getHandle()
const {
return _internal_id; }
103 int getImageInternalFormat()
const {
return _internal_format; }
105 int getImageFormat()
const {
return _format; }
106 int getImageType()
const {
return _type; }
112 Texture(
const Texture&) =
delete;
113 Texture& operator=(
const Texture&) =
delete;
115 void _generate_texture
118 const int32_t height,
120 const int32_t nb_channels = 0,
121 const int32_t internal_format = 0,
122 const int32_t format = 0,
123 const int32_t type = 0,
124 const uint8_t max_mips = 1
130 uint32_t _internal_id = 0;
135 int _internal_format = 0;
141 friend class Framebuffer;
Texture(const uint32_t width, const uint32_t height, const oe::scene::Material &generator, const int32_t nb_channels=0, const int32_t internal_format=0, const int32_t format=0, const int32_t type=0, const uint8_t max_mips=1)
Texture(const std::string &filename, const bool &is_srgb=false, const uint8_t max_mips=1)
Texture(const uint32_t width, const uint32_t height, const std::function< glm::vec4(const uint32_t i, const uint32_t j)> generator, const uint8_t max_mips=1)
ByteArray fetchTextureData(const unsigned int &face, const unsigned int &mip_level)