CM2D/inc/hgl/2d/TGA.h

52 lines
1.4 KiB
C
Raw Permalink Normal View History

2023-09-15 18:20:06 +08:00
#pragma once
#include<hgl/platform/Platform.h>
namespace hgl
{
namespace imgfmt
{
constexpr const uint TGA_IMAGE_TYPE_COLOR_MAP =1;
constexpr const uint TGA_IMAGE_TYPE_TRUE_COLOR =2;
constexpr const uint TGA_IMAGE_TYPE_GRAYSCALE =3;
constexpr const uint TGA_DIRECTION_LOWER_LEFT =0;
constexpr const uint TGA_DIRECTION_UPPER_LEFT =1;
#pragma pack(push,1)
struct TGAHeader
{
uint8 id;
uint8 color_map_type;
uint8 image_type; // 1 colormap image ,2 true-color,3 grayscale
uint16 color_map_first;
uint16 color_map_length;
uint8 color_map_size;
uint16 x_origin;
uint16 y_origin;
uint16 width;
uint16 height;
uint8 bit;
uint8 image_desc;
};
union TGAImageDesc
{
uint8 image_desc;
struct
{
uint alpha_depth:4;
uint reserved:1;
uint direction:1; //0 lower-left,1 upper left
};
};
#pragma pack(pop)
2024-10-10 00:48:52 +08:00
constexpr size_t TGAHeaderSize=sizeof(TGAHeader); ///<TGA文件头必须等于18
2023-09-15 18:20:06 +08:00
bool FillTGAHeader(TGAHeader *header,const uint16 width,const uint16 height,const uint8 channels,const uint8 single_channel_bits=8);
}//namespace imgfmt
}//namespace hgl