#ifndef GMS_IMAGE_H
#define GMS_IMAGE_H TRUE

/*
**	$VER: image.h V0.7B
**
**	GMS Image Structures
**
**	(C) Copyright 1996-1997 DreamWorld Productions.
**	    All Rights Reserved
*/

/***************************************************************************
** The picture structure for loading and depacking of pictures
*/

struct Picture {
  WORD ID;          /* ID_PICTURE */
  WORD Version;     /* Version */
  APTR Stats;       /* Private */
  APTR Data;        /* Destination or Source */
  WORD Width;       /* Picture width in pixels */
  WORD ByteWidth;   /* Picture width in bytes */
  WORD Height;      /* Height */
  WORD Planes;      /* Amount of planes */
  LONG AmtColours;  /* Amount of colours */
  LONG *Palette;    /* Original palette */
  WORD ScrMode;     /* Intended screen mode for picture */
  WORD ScrType;     /* Interleaved/Chunky/Planar */
  LONG Options;     /* GETPALETTE/VIDEOMEM/REMAP */
  BYTE *File;       /* Filename for this picture, if any */
  WORD ScrWidth;    /* Screen width */
  WORD ScrHeight;   /* Screen height */
};

#define PCA_Data        (8|TAPTR) /* Source */
#define PCA_Width      (12|TWORD) /* Picture width in pixels */
#define PCA_ByteWidth  (14|TWORD) /* Picture width in bytes */
#define PCA_Height     (16|TWORD) /* Picture height */
#define PCA_Planes     (18|TWORD) /* Amount of planes */
#define PCA_AmtColours (20|TLONG) /* Amount of colours */
#define PCA_Palette    (24|TAPTR) /* Ptr to Palette */
#define PCA_ScrMode    (28|TWORD) /* Intended screen mode for picture */
#define PCA_ScrType    (30|TWORD) /* Interleaved/Chunky/Planar */
#define PCA_Options    (32|TLONG) /* Special flags */
#define PCA_File       (36|TAPTR) /* Where this picture comes from */
#define PCA_ScrWidth   (40|TWORD) /* Screen width */
#define PCA_ScrHeight  (42|TWORD) /* Screen height */

#define GETPALETTE  0x00000001   /* Allocate/Write out the palette */
#define VIDEOMEM    0x00000002   /* Unpack to/Obtain chipram only */
#define REMAP       0x00000004   /* Allow remapping */
/*#define           0x00000008   */
#define RESIZEX     0x00000010   /* Allow resize on X axis */
#define RESIZEY     0x00000020   /* Allow resize on Y axis */
#define BLITMEM     0x00000040   /* Unpack to blitter mem only */
#define INITIALISED 0x80000000   /* This structure has been initialised */

#define RESIZE     (RESIZEX|RESIZEY)
#define BLITTERMEM BLITMEM

#endif
