mekhanoidy-tools/src/common/tga.h
2018-07-31 01:28:23 +03:00

52 lines
1.1 KiB
C++

#pragma once
#include <stdint.h>
#include "buffer.h"
#pragma pack(push, 1)
// http://paulbourke.net/dataformats/tga/
struct tga
{
uint8_t idlength; // label length
uint8_t colourmaptype = 0;
uint8_t datatypecode = 2;
uint16_t colourmaporigin = 0;
uint16_t colourmaplength = 0;
uint8_t colourmapdepth = 0;
uint16_t x_origin = 0;
uint16_t y_origin = 0;
uint16_t width;
uint16_t height;
uint8_t bitsperpixel = 32;
uint8_t imagedescriptor = 0x28;
tga()
{
idlength = (uint8_t)strlen(label());
}
constexpr const char *label() const
{
return "AIMTMConverter";
}
void write(buffer &b)
{
b.write(idlength);
b.write(colourmaptype);
b.write(datatypecode);
b.write(colourmaporigin);
b.write(colourmaplength);
b.write(colourmapdepth);
b.write(x_origin);
b.write(y_origin);
b.write(width);
b.write(height);
b.write(bitsperpixel);
b.write(imagedescriptor);
b.write(label(), idlength);
}
};
#pragma pack(pop)