rendered paste body type TTGAFileObj = TFileStream;
// manage open / close file
function genTGA_OpenFile(aFileName : String; aMode : Integer): TTGAFileObj;
procedure genTGA_CloseFile(var aStream : TFileStream);
// read header / image to dst / palette
function genTGA_ReadHeader(aStream : TStream; aTGAHeader : PTGAHeader): Boolean;
function genTGA_ReadPalette(aStream : TStream; aTGAHeader : PTGAHeader; aDst : Pointer): Boolean;
function genTGA_ReadImage(aStream : TStream; aTGAHeader : PTGAHeader; aDst : Pointer): Boolean;
function genTGA_ReadImageNoFlip(aStream : TStream; aTGAHeader : PTGAHeader; aDst : Pointer): Boolean;
// flip image data horizontal/vertical
procedure genTGA_FlipHor(aData : Pointer; aWidth, aHeight, aBPP : Integer);
procedure genTGA_FlipVert(aData : Pointer; aWidth, aHeight, aBPP : Integer);
// return true if TGA header indicates Palette / RLE encoding
function genTGA_IsPalette(aTGAHeader : PTGAHeader): Boolean;
function genTGA_IsRLECoded(aTGAHeader : PTGAHeader): Boolean;
// expand 8 bit palette image to true color
function genTGA_ExpandToTrueColor(aTGAHeader : PTGAHeader; aImage, aPalette : Pointer): Boolean;
// get expanded image size
function genTGA_ImageSize(aTGAHeader : PTGAHeader): Integer;
function genTGA_PaletteSize(aTGAHeader : PTGAHeader): Integer;
// for decoding RLE data
function genTGA_DecodeRLE(aStream : TStream; aTGAHeader : PTGAHeader; aDst: Pointer): Boolean;