#pragma once #include #include class SimpleTextureLoader { public: static GLuint LoadBMP(const std::string& filepath); static GLuint LoadTGA(const std::string& filepath); private: struct BMPHeader { char signature[2]; uint32_t fileSize; uint32_t reserved; uint32_t dataOffset; uint32_t headerSize; uint32_t width; uint32_t height; uint16_t planes; uint16_t bitsPerPixel; uint32_t compression; uint32_t imageSize; uint32_t xPixelsPerMeter; uint32_t yPixelsPerMeter; uint32_t colorsUsed; uint32_t colorsImportant; }; struct TGAHeader { uint8_t idLength; uint8_t colorMapType; uint8_t imageType; uint16_t colorMapStart; uint16_t colorMapLength; uint8_t colorMapDepth; uint16_t xOffset; uint16_t yOffset; uint16_t width; uint16_t height; uint8_t bitsPerPixel; uint8_t imageDescriptor; }; };