Fixed compatibility of output.
[AROS.git] / compiler / include / datatypes / pictureclass.h
blobbe9d76900d1e0977f75e3c8a1e09a3af739bb55b
1 #ifndef DATATYPES_PICTURECLASS_H
2 #define DATATYPES_PICTURECLASS_H
4 /*
5 Copyright © 1995-2016, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: Includes for pictureclass
9 Lang: English
13 #ifndef UTILITY_TAGITEM_H
14 #include <utility/tagitem.h>
15 #endif
17 #ifndef DATATYPES_DATATYPESCLASS_H
18 #include <datatypes/datatypesclass.h>
19 #endif
21 #ifndef LIBRARIES_IFFPARSE_H
22 #include <libraries/iffparse.h>
23 #endif
25 #define PICTUREDTCLASS "picture.datatype"
27 #ifndef __packed
28 #ifdef __GNUC__
29 #define __packed __attribute__((__packed__))
30 #else
31 #define __packed
32 #endif
33 #endif
35 struct BitMapHeader
37 UWORD bmh_Width;
38 UWORD bmh_Height;
39 WORD bmh_Left;
40 WORD bmh_Top;
41 UBYTE bmh_Depth;
42 UBYTE bmh_Masking;
43 UBYTE bmh_Compression;
44 UBYTE bmh_Pad;
45 UWORD bmh_Transparent;
46 UBYTE bmh_XAspect;
47 UBYTE bmh_YAspect;
48 WORD bmh_PageWidth;
49 WORD bmh_PageHeight;
50 } __packed;
52 struct ColorRegister
54 UBYTE red, green, blue;
58 #define PDTA_ModeID (DTA_Dummy + 200)
59 #define PDTA_BitMapHeader (DTA_Dummy + 201)
60 #define PDTA_BitMap (DTA_Dummy + 202)
61 #define PDTA_ColorRegisters (DTA_Dummy + 203)
62 #define PDTA_CRegs (DTA_Dummy + 204)
63 #define PDTA_GRegs (DTA_Dummy + 205)
64 #define PDTA_ColorTable (DTA_Dummy + 206)
65 #define PDTA_ColorTable2 (DTA_Dummy + 207)
66 #define PDTA_Allocated (DTA_Dummy + 208)
67 #define PDTA_NumColors (DTA_Dummy + 209)
68 #define PDTA_NumAlloc (DTA_Dummy + 210)
69 #define PDTA_Remap (DTA_Dummy + 211)
70 #define PDTA_Screen (DTA_Dummy + 212)
71 #define PDTA_FreeSourceBitMap (DTA_Dummy + 213)
72 #define PDTA_Grab (DTA_Dummy + 214)
73 #define PDTA_DestBitMap (DTA_Dummy + 215)
74 #define PDTA_ClassBitMap (DTA_Dummy + 216)
75 #define PDTA_NumSparse (DTA_Dummy + 217)
76 #define PDTA_SparseTable (DTA_Dummy + 218)
78 #define PDTA_SourceMode (DTA_Dummy + 250) /* Set the interface mode for the sub datatype. See below. */
79 #define PDTA_DestMode (DTA_Dummy + 251) /* Set the interface mode for the app datatype. See below. */
80 #define PDTA_UseFriendBitMap (DTA_Dummy + 255) /* Make the allocated bitmap be a "friend" bitmap (BOOL) */
82 /* Interface modes */
83 #define PMODE_V42 (0) /* Mode used for backward compatibility */
84 #define PMODE_V43 (1) /* Use the new features*/
87 #define mskNone 0
88 #define mskHasMask 1
89 #define mskHasTransparentColor 2
90 #define mskLasso 3
91 #define mskHasAlpha 4
93 #define cmpNone 0
94 #define cmpByteRun1 1
95 #define cmpByteRun2 2
98 #define ID_ILBM MAKE_ID('I','L','B','M')
99 #define ID_BMHD MAKE_ID('B','M','H','D')
100 #define ID_BODY MAKE_ID('B','O','D','Y')
101 #define ID_CMAP MAKE_ID('C','M','A','P')
102 #define ID_CRNG MAKE_ID('C','R','N','G')
103 #define ID_GRAB MAKE_ID('G','R','A','B')
104 #define ID_SPRT MAKE_ID('S','P','R','T')
105 #define ID_DEST MAKE_ID('D','E','S','T')
106 #define ID_CAMG MAKE_ID('C','A','M','G')
109 * Support for the V44 picture.datatype
111 * It is not clear, if AROS should support AmigaOS3.5 .
113 * But if you want V44-support define DT_V44_SUPPORT
115 * Joerg Dietrich
117 #ifndef DT_V44_SUPPORT
118 #define DT_V44_SUPPORT 1
119 #endif
121 #ifdef DT_V44_SUPPORT
123 #define PMODE_V42 (0)
124 #define PMODE_V43 (1)
126 #define PDTANUMPICTURES_Unknown (0)
128 #define PDTA_WhichPicture (DTA_Dummy + 219)
129 #define PDTA_GetNumPictures (DTA_Dummy + 220)
130 #define PDTA_MaxDitherPens (DTA_Dummy + 221)
131 #define PDTA_DitherQuality (DTA_Dummy + 222)
132 #define PDTA_AllocatedPens (DTA_Dummy + 223)
133 #define PDTA_ScaleQuality (DTA_Dummy + 224)
134 #define PDTA_DelayRead (DTA_Dummy + 225)
135 #define PDTA_DelayedRead (DTA_Dummy + 226)
137 #define PDTA_SourceMode (DTA_Dummy + 250)
138 #define PDTA_DestMode (DTA_Dummy + 251)
139 #define PDTA_UseFriendBitMap (DTA_Dummy + 255)
140 #define PDTA_MaskPlane (DTA_Dummy + 258)
142 #define PDTM_Dummy (DTM_Dummy + 0x60)
143 #define PDTM_WRITEPIXELARRAY (PDTM_Dummy + 0)
144 #define PDTM_READPIXELARRAY (PDTM_Dummy + 1)
145 #define PDTM_SCALE (PDTM_Dummy + 2)
147 struct pdtBlitPixelArray
149 STACKED ULONG MethodID;
150 STACKED APTR pbpa_PixelData;
151 STACKED ULONG pbpa_PixelFormat;
152 STACKED ULONG pbpa_PixelArrayMod;
153 STACKED ULONG pbpa_Left;
154 STACKED ULONG pbpa_Top;
155 STACKED ULONG pbpa_Width;
156 STACKED ULONG pbpa_Height;
159 struct pdtScale
161 STACKED ULONG MethodID;
162 STACKED ULONG ps_NewWidth;
163 STACKED ULONG ps_NewHeight;
164 STACKED ULONG ps_Flags;
167 /* Flags for ps_Flags, for AROS only */
168 #define PScale_KeepAspect 0x10 /* Keep aspect ratio when scaling, fit inside given x,y coordinates */
171 #define PBPAFMT_RGB 0
172 #define PBPAFMT_RGBA 1
173 #define PBPAFMT_ARGB 2
174 #define PBPAFMT_LUT8 3
175 #define PBPAFMT_GREY8 4
177 #endif /* DT_V44_SUPPORT */
179 #endif /* DATATYPES_PICTURECLASS_H */