// // Created by trotfunky on 24/09/2019. // #ifndef TESTS_OPENGL_TEXTURE_H #define TESTS_OPENGL_TEXTURE_H #include #include #include #include class Texture { public: uint16_t width; uint16_t height; /// Number of bits describing the colors : 24 (RGB) or 32 (RGBA) uint8_t color_bits; uint8_t* image_data; uint32_t opengl_id[1]; Texture(); ~Texture(); /// Load an RGB image from an RGB TGA file bool load_rgb_tga(const std::string& rgb_filename); /// Load an RGBA image from an rgb and an alpha (Greyscale) tga file bool load_rgba_tga(const std::string& rgb_filename,const std::string& mask_filename); private: /// Load and RGB TGA image file to an array bool load_tga(const std::string& filename, uint8_t*& data_array); /// Initialize the texture for OpenGL void generate_texture(); void invert_channels(uint8_t first_channel,uint8_t second_channel); }; #endif //TESTS_OPENGL_TEXTURE_H