#ifndef __INC_POS_PDTTYPE_PICTURE_H
#define __INC_POS_PDTTYPE_PICTURE_H
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>Picture.h<<   23 Jan 1997    11:15:33 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PEXEC_TYPES_H
#include <pExec/Types.h>
#endif
#ifndef __INC_POS_PLAYER_RECT_H
#include <pLayer/Rect.h>
#endif


#define pOS_DTNAME_PICTURE "DtType/picture.class"
#define pOS_DTFORM_PICTURE "picture"

/*----------------------------------
-----------------------------------*/
struct pOS_DtTypePicture
{
  UWORD   dtpic_StructSize;      /* sizeof(pOS_DtTypePicture) */
  UBYTE   dtpic_ID[12];          /* max 11 Chars, (GIF, PCX, JPG, SSA,...) */
  ULONG   dtpic_Width;
  ULONG   dtpic_Height;
  ULONG   dtpic_PageWidth;
  ULONG   dtpic_PageHeight;
  UBYTE   dtpic_XAspect;
  UBYTE   dtpic_YAspect;
  UBYTE   dtpic_Masking;
  UBYTE   dtpic_Compression;
  ULONG   dtpic_Colors;
  ULONG   dtpic_Transparent;
  ULONG   dtpic_Frames;          /* zero => undefined */
  ULONG   dtpic_MicrosPerFrame;  /* */
  ULONG   dtpic_Flags;           /* (enum pOS_DtTypePicFlags) */
  UWORD   dtpic_GfxMapType;      /* (enum pOS_GfxMapType)  Standard */
  UWORD   dtpic_ColorMapType;    /* (enum pOS_ColorMapType) Standard */
  UWORD   dtpic_GfxMapMaskType;  /* (enum pOS_GfxMapType)  Standard-Mask */

  UBYTE   dtpic_Reserved[16];    /* avoid recompile */
};


enum pOS_DtTypePicFlags
{
  DTPICF_DeltaComp      = 0x1000, /* Delta Compression */
  DTPICF_Progressive    = 0x2000  /*  */
};



/*----------------------------------
The DtType will modify
(dtpicf_ActFrameNum, dtpicf_ActSubNum, dtpicf_DrawBox)
by Methode DCLMTH_Read or DCLMTH_TstRead.
-----------------------------------*/
struct pOS_DtTypePicFrame
{
  UWORD                dtpicf_StructSize;  /* sizeof(pOS_DtTypePicFrame) */
  struct pOS_GfxMap   *dtpicf_GfxMap;
  struct pOS_ColorMap *dtpicf_ColorMap;
  struct pOS_GfxMap   *dtpicf_MaskGfxMap;
  ULONG                dtpicf_ActFrameNum; /* actual FrameNum in GfxMap (0 == none) */
  ULONG                dtpicf_FrameNum;    /* (1,2,3...dtpic_Frames) (~0 => next possible frame) */
  ULONG                dtpicf_Flags;       /* (enum pOS_DtTypePicFrameFlags) */
  UBYTE                dtpicf_Quality;     /* (pOS_QUALITY_xxx) 0==low, 255==best */
  UBYTE                dtpicf_Pad;
  ULONG                dtpicf_Micros;      /* set by DtType */
  struct pOS_IBox     *dtpicf_DrawBox;     /* NULL = ignore, Brush-Box (filled by DtType) */
  struct pOS_Point    *dtpicf_Scale;       /* NULL = ignore, destination width and height */
  struct pOS_IBox     *dtpicf_ClipBox;     /* NULL = ignore, read-clip from object */
  UWORD                dtpicf_ActSubNum;   /* actual progressive number in GfxMap (dtpicf_ActFrameNum) */
  UWORD                dtpicf_SubNum;      /* progressive number, 0 => full frame, ~0 => first step (dtpicf_FrameNum) */

  UBYTE  dtpicf_Reserved[16-4]; /* avoid recompile */
};




enum pOS_DtTypePicFrameFlags
{
  DTPICFRAF_SHF       = 0x0001, /* Short Frame */
  DTPICFRAF_LOF       = 0x0002, /* Long Frame */
  DTPICFRAF_Full      = 0x0003, /* Full Frame => SHF + LOF */
  DTPICFRAF_SLMask    = 0x0003, /* Mask for SHF, LOF */
  DTPICFRAF_Interlace = 0x0004  /* Bei gesetzem Bit bedeutet dies, daß das
                                ** SHF und LOF interleaved in der GfxMap vorliegt.
                                */
};


#endif
