All pastes #14521 Raw Edit

Something

public text v1 · immutable
#14521 ·published 2005-06-14 16:28 UTC
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;