New attempt to get the svn revision into the AboutAROS requester.
[cake.git] / compiler / include / graphics / displayinfo.h
blob91c1c1e35c4020267291c8ebb97466d4a095c5fe
1 #ifndef GRAPHICS_DISPLAYINFO_H
2 #define GRAPHICS_DISPLAYINFO_H
4 /*
5 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: DisplayInfo definitions and structures.
9 Lang: english
12 #ifndef EXEC_TYPES_H
13 # include <exec/types.h>
14 #endif
15 #ifndef GRAPHICS_GFX_H
16 # include <graphics/gfx.h>
17 #endif
18 #ifndef GRAPHICS_MODEID_H
19 # include <graphics/modeid.h>
20 #endif
21 #ifndef GRAPHICS_MONITOR_H
22 # include <graphics/monitor.h>
23 #endif
24 #ifndef UTILITY_TAGITEM_H
25 # include <utility/tagitem.h>
26 #endif
28 typedef APTR DisplayInfoHandle;
30 struct QueryHeader
32 ULONG StructID;
33 ULONG DisplayID;
34 ULONG SkipID;
35 ULONG Length;
38 struct DisplayInfo
40 struct QueryHeader Header;
42 UWORD NotAvailable; /* ==0 means DisplayInfo is available
43 !=0 means not available (see below) */
44 ULONG PropertyFlags; /* see below */
45 Point Resolution;
46 UWORD PixelSpeed;
47 UWORD NumStdSprites;
48 UWORD PaletteRange;
49 Point SpriteResolution;
50 UBYTE pad[4];
51 UBYTE RedBits;
52 UBYTE GreenBits;
53 UBYTE BlueBits;
54 UBYTE pad2[5];
55 ULONG reserved[2];
58 /* NotAvailable */
59 #define DI_AVAIL_NOCHIPS (1<<0)
60 #define DI_AVAIL_NOMONITOR (1<<1)
61 #define DI_AVAIL_NOTWITHGENLOCK (1<<2)
63 /* PropertyFlags */
64 #define DIPF_IS_LACE (1L<<0)
65 #define DIPF_IS_DUALPF (1L<<1)
66 #define DIPF_IS_PF2PRI (1L<<2)
67 #define DIPF_IS_HAM (1L<<3)
68 #define DIPF_IS_ECS (1L<<4)
69 #define DIPF_IS_PAL (1L<<5)
70 #define DIPF_IS_SPRITES (1L<<6)
71 #define DIPF_IS_GENLOCK (1L<<7)
72 #define DIPF_IS_WB (1L<<8)
73 #define DIPF_IS_DRAGGABLE (1L<<9)
74 #define DIPF_IS_PANELLED (1L<<10)
75 #define DIPF_IS_BEAMSYNC (1L<<11)
76 #define DIPF_IS_EXTRAHALFBRITE (1L<<12)
77 #define DIPF_IS_SPRITES_ATT (1L<<13)
78 #define DIPF_IS_SPRITES_CHNG_RES (1L<<14)
79 #define DIPF_IS_SPRITES_BORDER (1L<<15)
80 #define DIPF_IS_AA (1L<<16)
81 #define DIPF_IS_SCANDBL (1L<<17)
82 #define DIPF_IS_SPRITES_CHNG_BASE (1L<<18)
83 #define DIPF_IS_SPRITES_CHNG_PRI (1L<<19)
84 #define DIPF_IS_DBUFFER (1L<<20)
85 #define DIPF_IS_PROGBEAM (1L<<21)
86 #define DIPF_IS_FOREIGN (1L<<31)
88 struct DimensionInfo
90 struct QueryHeader Header;
92 UWORD MaxDepth;
93 UWORD MinRasterWidth;
94 UWORD MinRasterHeight;
95 UWORD MaxRasterWidth;
96 UWORD MaxRasterHeight;
98 struct Rectangle Nominal;
99 struct Rectangle MaxOScan;
100 struct Rectangle VideoOScan;
101 struct Rectangle TxtOScan;
102 struct Rectangle StdOScan;
104 UBYTE pad[14];
105 ULONG reserved[2];
108 struct MonitorInfo
110 struct QueryHeader Header;
112 struct MonitorSpec * Mspc;
113 Point ViewPosition;
114 Point ViewResolution;
115 struct Rectangle ViewPositionRange;
116 UWORD TotalRows;
117 UWORD TotalColorClocks;
118 UWORD MinRow;
119 WORD Compatibility; /* see below */
120 UBYTE pad[32];
121 Point MouseTicks;
122 Point DefaultViewPosition;
123 ULONG PreferredModeID;
124 ULONG reserved[2];
127 /* Compability */
128 #define MCOMPAT_NOBODY -1
129 #define MCOMPAT_MIXED 0
130 #define MCOMPAT_SELF 1
132 #define DISPLAYNAMELEN 32
133 struct NameInfo
135 struct QueryHeader Header;
137 UBYTE Name[DISPLAYNAMELEN];
138 ULONG reserved[2];
141 /* Tags */
142 #define DTAG_DISP (TAG_USER)
143 #define DTAG_DIMS (TAG_USER + 0x1000)
144 #define DTAG_MNTR (TAG_USER + 0x2000)
145 #define DTAG_NAME (TAG_USER + 0x3000)
146 #define DTAG_VEC (TAG_USER + 0x4000)
148 /* PRIVATE */
149 struct VecInfo
151 struct QueryHeader Header;
153 APTR Vec;
154 APTR Data;
155 UWORD Type;
156 UWORD pad[3];
157 ULONG reserved[2];
160 #endif /* GRAPHICS_DISPLAYINFO_H */