wip prep commit in lieu of gfx subsystem update changes, part 2.
[AROS.git] / rom / hidds / gfx / include / gfx.h
blobf42e412633da2634d721fa65da6600b1f849ee3a
1 #ifndef HIDD_GRAPHICS_H
2 #define HIDD_GRAPHICS_H
4 /*
5 Copyright © 1995-2013, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: Definitions for the Graphics HIDD system.
9 Lang: english
12 #include <graphics/gfx.h>
13 #include <hidd/hidd.h>
14 #include <oop/oop.h>
15 #include <utility/utility.h>
17 typedef OOP_Object *HIDDT_BitMap;
18 typedef OOP_Object *HIDDT_GC;
20 #ifdef __GRAPHICS_NOHIDDBASE__
21 #define __Hidd_Gfx_NOMETHODBASE__
22 #define __Hidd_BitMap_NOMETHODBASE__
23 #define __Hidd_ColorMap_NOMETHODBASE__
24 #define __Hidd_GC_NOMETHODBASE__
25 #define __Hidd_PlanarBM_NOMETHODBASE__
26 #endif
28 /**** Graphics definitions ****************************************************/
30 #define CLID_HW_Gfx "hw.gfx"
32 /* Sprite types */
33 #define vHidd_SpriteType_3Plus1 0x01 /* Color 0 transparent, 1-3 visible */
34 #define vHidd_SpriteType_2Plus1 0x02 /* Color 0 transparrent, 1 undefined, 2-3 visible */
35 #define vHidd_SpriteType_DirectColor 0x04 /* Hi- or truecolor image */
37 /* Parameter tags for the QueryModeIDs method */
38 enum
40 tHidd_GfxMode_MinWidth = TAG_USER,
41 tHidd_GfxMode_MaxWidth,
42 tHidd_GfxMode_MinHeight,
43 tHidd_GfxMode_MaxHeight,
44 tHidd_GfxMode_PixFmts
47 typedef enum
49 vHidd_Gfx_DPMSLevel_On,
50 vHidd_Gfx_DPMSLevel_Standby,
51 vHidd_Gfx_DPMSLevel_Suspend,
52 vHidd_Gfx_DPMSLevel_Off
54 } HIDDT_DPMSLevel;
56 typedef IPTR HIDDT_StdPixFmt;
57 typedef IPTR HIDDT_ModeID;
58 typedef IPTR HIDDT_DrawMode;
59 typedef IPTR HIDDT_ColorModel;
60 typedef IPTR HIDDT_BitMapType;
62 struct HIDD_ModeProperties
64 ULONG DisplayInfoFlags; /* PropertyFlags value for struct DisplayInfo (see graphics/displayinfo.h).
65 Does not include features emulated by software. */
66 UWORD NumHWSprites; /* Number of supported hardware sprites */
67 UWORD CompositionFlags; /* Supported composition types, see below */
69 /* This structure may grow in future */
73 #define COMPB_ABOVE 0
74 #define COMPF_ABOVE (1 << COMPB_ABOVE) /* Compositive above screens */
75 #define COMPB_BELOW 1
76 #define COMPF_BELOW (1 << COMPB_BELOW) /* ... below ... */
77 #define COMPB_LEFT 2
78 #define COMPF_LEFT (1 << COMPB_LEFT) /* ... to the left of ... */
79 #define COMPB_RIGHT 3
80 #define COMPF_RIGHT (1 << COMPB_RIGHT) /* ... and to the right of ... */
81 #define COMPB_ALPHA 7
82 #define COMPF_ALPHA (1 << COMPB_ALPHA)
83 #define COMPB_SAME 8
84 #define COMPF_SAME (1 << COMPB_SAME) /* can only composit the same sync */
86 struct ViewPort;
87 struct View;
89 /* A structure passed to ShowViewPorts() method */
90 struct HIDD_ViewPortData
92 struct HIDD_ViewPortData *Next; /* Pointer to a next bitmap */
93 OOP_Object *Bitmap; /* The bitmap object itself */
94 struct ViewPortExtra *vpe; /* Associated ViewPortExtra */
95 APTR UserData; /* The driver can keep own stuff here */
98 #define vHidd_ModeID_Invalid ((HIDDT_ModeID)-1)
101 /* Flags */
103 /* This will make the gfx hidd, copy back from the framebuffer into
104 the old bitmap you were using. Use this option with extreme
105 prejudice: YOU MUST BE TOTALLY SURE THAT THE BITMAP
106 YOU CALLED SHOW ON BEFORE THIS CALL HAS NOT BEEN DISPOSED
108 #define fHidd_Gfx_Show_CopyBack 0x01
110 enum
112 tHidd_Cursor_BitMap, /* OOP_Object *, cursor shape bitmap */
113 tHidd_Cursor_XPos, /* ULONG, cursor x position */
114 tHidd_Cursor_YPos, /* ULONG, cursor Y position */
115 tHidd_Cursor_On /* BOOL, cursor on, TRUE, FALSE. */
118 /* Framebuffer types */
119 enum
121 vHidd_FrameBuffer_None,
122 vHidd_FrameBuffer_Direct,
123 vHidd_FrameBuffer_Mirrored
126 /**** BitMap definitions ******************************************************/
129 /* Types */
132 typedef UWORD HIDDT_ColComp; /* Color component */
133 typedef ULONG HIDDT_Pixel;
136 typedef struct
138 HIDDT_ColComp red;
139 HIDDT_ColComp green;
140 HIDDT_ColComp blue;
141 HIDDT_ColComp alpha;
143 HIDDT_Pixel pixval;
145 } HIDDT_Color;
149 typedef struct
151 ULONG entries;
152 HIDDT_Pixel *pixels;
154 } HIDDT_PixelLUT;
156 typedef struct
158 ULONG entries;
159 HIDDT_Color *colors;
161 } HIDDT_ColorLUT;
165 /* Standard pixelformats */
166 enum
168 /* Pseudo formats. These are not real pixelformats but are passed
169 for example to HIDD_BM_PutImage() to tell the format of the data
172 vHidd_StdPixFmt_Unknown,
173 vHidd_StdPixFmt_Native,
174 vHidd_StdPixFmt_Native32,
176 num_Hidd_PseudoStdPixFmt,
178 /* Chunky formats. The order here must match those in ../stdpixfmts_??.h array !! */
179 vHidd_StdPixFmt_RGB24 = num_Hidd_PseudoStdPixFmt,
180 vHidd_StdPixFmt_BGR24,
181 vHidd_StdPixFmt_RGB16,
182 vHidd_StdPixFmt_RGB16_LE,
183 vHidd_StdPixFmt_BGR16,
184 vHidd_StdPixFmt_BGR16_LE,
185 vHidd_StdPixFmt_RGB15,
186 vHidd_StdPixFmt_RGB15_LE,
187 vHidd_StdPixFmt_BGR15,
188 vHidd_StdPixFmt_BGR15_LE,
189 vHidd_StdPixFmt_ARGB32,
190 vHidd_StdPixFmt_BGRA32,
191 vHidd_StdPixFmt_RGBA32,
192 vHidd_StdPixFmt_ABGR32,
193 vHidd_StdPixFmt_0RGB32,
194 vHidd_StdPixFmt_BGR032,
195 vHidd_StdPixFmt_RGB032,
196 vHidd_StdPixFmt_0BGR32,
197 vHidd_StdPixFmt_LUT8,
198 vHidd_StdPixFmt_Plane,
200 num_Hidd_AllPf
203 #if AROS_BIG_ENDIAN
204 #define vHidd_StdPixFmt_ARGB32_Native vHidd_StdPixFmt_ARGB32
205 #define vHidd_StdPixFmt_BGRA32_Native vHidd_StdPixFmt_BGRA32
206 #define vHidd_StdPixFmt_RGBA32_Native vHidd_StdPixFmt_RGBA32
207 #define vHidd_StdPixFmt_ABGR32_Native vHidd_StdPixFmt_ABGR32
208 #define vHidd_StdPixFmt_0RGB32_Native vHidd_StdPixFmt_0RGB32
209 #define vHidd_StdPixFmt_BGR032_Native vHidd_StdPixFmt_BGR032
210 #define vHidd_StdPixFmt_RGB032_Native vHidd_StdPixFmt_RGB032
211 #define vHidd_StdPixFmt_0BGR32_Native vHidd_StdPixFmt_0BGR32
212 #else
213 #define vHidd_StdPixFmt_ARGB32_Native vHidd_StdPixFmt_BGRA32
214 #define vHidd_StdPixFmt_BGRA32_Native vHidd_StdPixFmt_ARGB32
215 #define vHidd_StdPixFmt_RGBA32_Native vHidd_StdPixFmt_ABGR32
216 #define vHidd_StdPixFmt_ABGR32_Native vHidd_StdPixFmt_RGBA32
217 #define vHidd_StdPixFmt_0RGB32_Native vHidd_StdPixFmt_BGR032
218 #define vHidd_StdPixFmt_BGR032_Native vHidd_StdPixFmt_0RGB32
219 #define vHidd_StdPixFmt_RGB032_Native vHidd_StdPixFmt_0BGR32
220 #define vHidd_StdPixFmt_0BGR32_Native vHidd_StdPixFmt_RGB032
221 #endif
223 #define FIRST_RGB_STDPIXFMT vHidd_StdPixFmt_RGB24
224 #define LAST_RGB_STDPIXFMT vHidd_StdPixFmt_0BGR32
225 #define NUM_RGB_STDPIXFMT (vHidd_StdPixFmt_0BGR32 - vHidd_StdPixFmt_RGB24 + 1)
227 #define num_Hidd_StdPixFmt (num_Hidd_AllPf - num_Hidd_PseudoStdPixFmt)
229 #define IS_PSEUDO_STDPIXFMT(stdpf) ( (stdpf) > 0 && (stdpf) < num_Hidd_PseudoStdPixFmt )
231 #define IS_REAL_STDPIXFMT(stdpf) ( (stdpf) >= num_Hidd_PseudoStdPixFmt && (stdpf) < num_Hidd_AllPf)
232 #define IS_STDPIXFMT(stdpf) ( (stdpf) > 0 && (stdpf) < num_Hidd_AllPf )
234 #define REAL_STDPIXFMT_IDX(stdpf) ( (stdpf) - num_Hidd_PseudoStdPixFmt )
239 #define MAP_SHIFT ((sizeof (HIDDT_Pixel) - sizeof (HIDDT_ColComp)) *8)
240 #define SHIFT_UP_COL(col) ((HIDDT_Pixel)((col) << MAP_SHIFT))
242 #define MAP_COLCOMP(comp, val, pixfmt) \
243 ((SHIFT_UP_COL(val) >> (pixfmt)->comp ## _shift) & (pixfmt)->comp ## _mask)
246 #define MAP_RGB(r, g, b, pixfmt) \
247 MAP_COLCOMP(red, r, pixfmt) \
248 | MAP_COLCOMP(green, g, pixfmt) \
249 | MAP_COLCOMP(blue, b, pixfmt)
252 #define MAP_RGBA(r, g, b, a, pixfmt) \
253 MAP_COLCOMP(red, r, pixfmt) \
254 | MAP_COLCOMP(green, g, pixfmt) \
255 | MAP_COLCOMP(blue, b, pixfmt) \
256 | MAP_COLCOMP(alpha, a, pixfmt)
260 #define SHIFT_DOWN_PIX(pix) ((pix) >> MAP_SHIFT)
261 #define GET_COLCOMP(comp, pix, pixfmt) \
262 SHIFT_DOWN_PIX( ( (pix) & (pixfmt)-> comp ## _mask) << pixfmt-> comp ## _shift )
264 #define RED_COMP(pix, pixfmt) GET_COLCOMP(red, pix, pixfmt)
265 #define GREEN_COMP(pix, pixfmt) GET_COLCOMP(green, pix, pixfmt)
266 #define BLUE_COMP(pix, pixfmt) GET_COLCOMP(blue, pix, pixfmt)
267 #define ALPHA_COMP(pix, pixfmt) GET_COLCOMP(alpha, pix, pixfmt)
269 typedef struct
271 UWORD depth;
272 UWORD size; /* Size of pixel in bits */
273 UWORD bytes_per_pixel;
275 HIDDT_Pixel red_mask;
276 HIDDT_Pixel green_mask;
277 HIDDT_Pixel blue_mask;
278 HIDDT_Pixel alpha_mask;
280 UBYTE red_shift;
281 UBYTE green_shift;
282 UBYTE blue_shift;
283 UBYTE alpha_shift;
285 HIDDT_Pixel clut_mask;
286 UBYTE clut_shift;
288 HIDDT_StdPixFmt stdpixfmt; /* Number of corresponding standard format */
289 ULONG flags; /* Flags, see below */
291 } HIDDT_PixelFormat;
293 #include <interface/Hidd_PixFmt.h>
295 typedef ULONG (*HIDDT_RGBConversionFunction)(APTR srcPixels, ULONG srcMod, HIDDT_StdPixFmt srcPixFmt,
296 APTR dstPixels, ULONG dstMod, HIDDT_StdPixFmt dstPixFmt,
297 UWORD width, UWORD height);
299 #include <interface/Hidd_BitMap.h>
301 #define CLID_Hidd_BitMap IID_Hidd_BitMap
303 #define IS_BITMAP_ATTR(attr, idx) \
304 ( ( ( idx ) = (attr) - HiddBitMapAttrBase) < num_Hidd_BitMap_Attrs)
307 /**** Graphics context definitions ********************************************/
309 #include <interface/Hidd_GC.h>
311 #define CLID_Hidd_GC IID_Hidd_GC
313 /* Drawmodes for a graphics context */
314 #define vHidd_GC_DrawMode_Clear 0x00 /* 0 */
315 #define vHidd_GC_DrawMode_And 0x01 /* src AND dst */
316 #define vHidd_GC_DrawMode_AndReverse 0x02 /* src AND NOT dst */
317 #define vHidd_GC_DrawMode_Copy 0x03 /* src */
318 #define vHidd_GC_DrawMode_AndInverted 0x04 /* NOT src AND dst */
319 #define vHidd_GC_DrawMode_NoOp 0x05 /* dst */
320 #define vHidd_GC_DrawMode_Xor 0x06 /* src XOR dst */
321 #define vHidd_GC_DrawMode_Or 0x07 /* src OR dst */
322 #define vHidd_GC_DrawMode_Nor 0x08 /* NOT src AND NOT dst */
323 #define vHidd_GC_DrawMode_Equiv 0x09 /* NOT src XOR dst */
324 #define vHidd_GC_DrawMode_Invert 0x0A /* NOT dst */
325 #define vHidd_GC_DrawMode_OrReverse 0x0B /* src OR NOT dst */
326 #define vHidd_GC_DrawMode_CopyInverted 0x0C /* NOT src */
327 #define vHidd_GC_DrawMode_OrInverted 0x0D /* NOT src OR dst */
328 #define vHidd_GC_DrawMode_Nand 0x0E /* NOT src OR NOT dst */
329 #define vHidd_GC_DrawMode_Set 0x0F /* 1 */
331 #define vHidd_GC_ColExp_Transparent (1 << 0)
332 #define vHidd_GC_ColExp_Opaque (1 << 1)
334 /*******************************************************/
335 /** PROTECTED DATA
336 !! These structures are at the top of the gfx hidd baseclasses.
337 DO NEVER ATTEMPT TO ACCESS THESE FROM OUTSIDE OF SUBCLASSES.
338 DON'T EVEN THINK ABOUT IT !!!
339 THEY SHOULD ONLY BE ACCESSED FROM THE SUBCLASSES, AND THEN
340 BY USING THE MACROS BELOW !!
343 struct _hidd_bitmap_protected
345 OOP_Object *pixfmt;
349 #define BM_PIXFMT(bm) \
350 ((HIDDT_PixelFormat *)(((struct _hidd_bitmap_protected *)bm)->pixfmt))
351 #define BM_DEPTH(bm) BM_PIXFMT(bm)->depth
354 /****** !!!! PROTECTED DATA !!!!
355 This typedef can be used to acces a GC object directly from within
356 a bitmap class, but NEVER EVER use it to access a GC object
357 from outside a bitmap class. And when accessing from inside a
358 bitmap class, use the macros below !
361 typedef struct
363 struct Rectangle *clipRect;
364 HIDDT_Pixel fg; /* foreground color */
365 HIDDT_Pixel bg; /* background color */
366 ULONG colMask; /* ColorMask prevents some color bits from changing */
367 UWORD linePat; /* LinePattern */
368 UBYTE linePatCnt; /* LinePattern start bit */
369 UBYTE drMode; /* drawmode */
370 UBYTE colExp;
371 } HIDDT_GC_Intern;
373 #define GCINT(gc) ((HIDDT_GC_Intern *)(gc))
374 #define GC_FG(gc) (GCINT(gc)->fg)
375 #define GC_BG(gc) (GCINT(gc)->bg)
376 #define GC_DRMD(gc) (GCINT(gc)->drMode)
377 #define GC_COLMASK(gc) (GCINT(gc)->colMask)
378 #define GC_LINEPAT(gc) (GCINT(gc)->linePat)
379 #define GC_LINEPATCNT(gc) (GCINT(gc)->linePatCnt)
380 #define GC_COLEXP(gc) (GCINT(gc)->colExp)
382 #define GC_DOCLIP(gc) (GCINT(gc)->clipRect)
383 #define GC_CLIPX1(gc) (GCINT(gc)->clipRect->MinX)
384 #define GC_CLIPY1(gc) (GCINT(gc)->clipRect->MinY)
385 #define GC_CLIPX2(gc) (GCINT(gc)->clipRect->MaxX)
386 #define GC_CLIPY2(gc) (GCINT(gc)->clipRect->MaxY)
388 /****************** PixFmt definitions **************************/
390 /* Color model, bitmap type, and swapping bytes flag are stored
391 in Flags member of the HIDDT_PixelFormat structure */
393 /* CM == Color model */
394 enum
396 vHidd_ColorModel_TrueColor,
397 vHidd_ColorModel_DirectColor,
398 vHidd_ColorModel_Palette,
399 vHidd_ColorModel_StaticPalette,
400 vHidd_ColorModel_GrayScale,
401 vHidd_ColorModel_StaticGray,
403 num_Hidd_CM
407 /* Bitmap types */
408 enum
410 vHidd_BitMapType_Unknown,
411 vHidd_BitMapType_Chunky,
412 vHidd_BitMapType_Planar,
413 vHidd_BitMapType_InterleavedPlanar,
415 num_Hidd_BitMapTypes
419 #define vHidd_ColorModel_Mask 0x0000000F
420 #define vHidd_ColorModel_Shift 0
421 #define vHidd_BitMapType_Mask 0x000000F0
422 #define vHidd_BitMapType_Shift 4
424 /* stegerg: The SwapPixelBytes flag is used to indicate that
425 one must swap the pixel bytes after reading a pixel
426 and before writing a pixel when doing some calculations
427 with the pixfmt's shift/mask values. This is for
428 pixel format which otherwise cannot be described through
429 shift/mask values. For example a 0x0RRRRRGG 0xGGGBBBBB 16 bit
430 pixfmt on a little endian machine, where a WORD-pixel-access
431 requires the pixel-value to be in 0xGGGBBBBB0RRRRRGG format. */
433 #define vHidd_PixFmt_SwapPixelBytes_Flag 0x00000100
435 #define HIDD_PF_COLMODEL(pf) ( ((pf)->flags & vHidd_ColorModel_Mask) >> vHidd_ColorModel_Shift )
436 #define SET_PF_COLMODEL(pf, cm) \
437 (pf)->flags &= ~vHidd_ColorModel_Mask; \
438 (pf)->flags |= ( (cm) << vHidd_ColorModel_Shift);
441 #define IS_PALETTIZED(pf) ( (HIDD_PF_COLMODEL(pf) == vHidd_ColorModel_Palette) \
442 || (HIDD_PF_COLMODEL(pf) == vHidd_ColorModel_StaticPalette) )
444 #define IS_TRUECOLOR(pf) ( (HIDD_PF_COLMODEL(pf) == vHidd_ColorModel_TrueColor) )
445 #define IS_PALETTE(pf) ( (HIDD_PF_COLMODEL(pf) == vHidd_ColorModel_Palette) )
446 #define IS_STATICPALETTE(pf) ( (HIDD_PF_COLMODEL(pf) == vHidd_ColorModel_StaticPalette) )
450 #define HIDD_PF_BITMAPTYPE(pf) ( ((pf)->flags & vHidd_BitMapType_Mask) >> vHidd_BitMapType_Shift )
451 #define SET_PF_BITMAPTYPE(pf, bmt) \
452 (pf)->flags &= ~vHidd_BitMapType_Mask; \
453 (pf)->flags |= ( (bmt) << vHidd_BitMapType_Shift );
456 #define PF_GRAPHTYPE(cmodel, bmtype) \
457 ( (vHidd_ColorModel_ ## cmodel << vHidd_ColorModel_Shift) \
458 | (vHidd_BitMapType_ ## bmtype << vHidd_BitMapType_Shift) )
460 #define SET_PF_SWAPPIXELBYTES_FLAG(pf, on) \
461 do \
463 if (on) \
464 (pf)->flags |= vHidd_PixFmt_SwapPixelBytes_Flag; \
465 else \
466 (pf)->flags &= ~vHidd_PixFmt_SwapPixelBytes_Flag; \
467 } while (0)
469 #define HIDD_PF_SWAPPIXELBYTES(pf) \
470 ( ( (pf)->flags & vHidd_PixFmt_SwapPixelBytes_Flag) ? 1 : 0 )
472 #define IS_PIXFMT_ATTR(attr, idx) \
473 ( ( ( idx ) = (attr) - HiddPixFmtAttrBase) < num_Hidd_PixFmt_Attrs)
477 /********** Planar bitmap *******************/
479 #include <interface/Hidd_PlanarBM.h>
481 #define CLID_Hidd_PlanarBM IID_Hidd_PlanarBM
483 #define IS_PLANARBM_ATTR(attr, idx) \
484 ( ( ( idx ) = (attr) - HiddPlanarBMAttrBase) < num_Hidd_PlanarBM_Attrs)
488 /********** Chunky bitmap *******************/
490 #include <interface/Hidd_ChunkyBM.h>
492 #define CLID_Hidd_ChunkyBM IID_Hidd_ChunkyBM
494 #define IS_CHUNKYBM_ATTR(attr, idx) \
495 ( ( ( idx ) = (attr) - HiddChunkyBMAttrBase) < num_Hidd_ChunkyBM_Attrs)
498 /********** ColorMap *******************/
500 #include <interface/Hidd_ColorMap.h>
502 #define CLID_Hidd_ColorMap IID_Hidd_ColorMap
504 #define IS_COLORMAP_ATTR(attr, idx) \
505 ( ( ( idx ) = (attr) - HiddColorMapAttrBase) < num_Hidd_ColorMap_Attrs)
508 /************* Sync class **************************************/
510 /* Sync flags */
511 #define vHidd_Sync_HSyncPlus 0x0001 /* HSYNC + if set */
512 #define vHidd_Sync_VSyncPlus 0x0002 /* VSYNC + if set */
513 #define vHidd_Sync_Interlaced 0x0004 /* Interlaced mode */
514 #define vHidd_Sync_DblScan 0x0008 /* Double scanline */
516 #include <interface/Hidd_Sync.h>
518 #define IS_SYNC_ATTR(attr, idx) \
519 ( ( ( idx ) = (attr) - HiddSyncAttrBase) < num_Hidd_Sync_Attrs)
521 /************* Video overlay class *****************************/
523 #include <interface/Hidd_Overlay.h>
525 #define IS_OVERLAY_ATTR(attr, idx) \
526 (((idx) = (attr) - HiddOverlayAttrBase) < num_Hidd_Overlay_Attrs)
528 /************* Graphics class *****************************/
530 #include <interface/Hidd_Gfx.h>
532 #define IS_GFX_ATTR(attr, idx) \
533 ( ( ( idx ) = (attr) - HiddGfxAttrBase) < num_Hidd_Gfx_Attrs)
535 #define CLID_Hidd_Gfx IID_Hidd_Gfx
537 enum
539 vHidd_Gfx_MemTotal,
540 vHidd_Gfx_MemFree,
541 vHidd_Gfx_MemAddressableTotal, //
542 vHidd_Gfx_MemAddressableFree,
543 vHidd_Gfx_MemClock, //video card's memory clock in Hz
546 /* Compatability types */
547 #define pHidd_Gfx_Gamma pHidd_Gfx_GetGamma
549 /* How we hide HIDD bitmaps inside struct BitMap */
550 #define HIDD_BM_PAD_MAGIC 0x6148 /* 'Ah' - AROS HIDD */
551 #define IS_HIDD_BM(bitmap) ((bitmap)->pad == HIDD_BM_PAD_MAGIC)
553 #define HIDD_BM_EXTRAPLANES 8
554 struct HiddBitMapPlaneData
556 STACKED OOP_Object *HBMPD_Object;
557 STACKED struct monitor_driverdata *HBMPD_DriverData;
558 STACKED OOP_Object *HBMPD_ColMap;
559 STACKED HIDDT_ColorModel HBMPD_ColMod;
560 STACKED HIDDT_Pixel *HBMPD_PixTab;
561 STACKED LONG HBMPD_RealDepth;
562 STACKED ULONG HBMPD_Flags;
563 STACKED HIDDT_ModeID HBMPD_HiddMode;
566 #define HIDD_BM_OBJ(bitmap) (((struct HiddBitMapPlaneData *)&(bitmap)->Planes[HIDD_BM_EXTRAPLANES])->HBMPD_Object)
567 #define HIDD_BM_DRVDATA(bitmap) (((struct HiddBitMapPlaneData *)&(bitmap)->Planes[HIDD_BM_EXTRAPLANES])->HBMPD_DriverData)
568 #define HIDD_BM_COLMAP(bitmap) (((struct HiddBitMapPlaneData *)&(bitmap)->Planes[HIDD_BM_EXTRAPLANES])->HBMPD_ColMap)
569 #define HIDD_BM_COLMOD(bitmap) (((struct HiddBitMapPlaneData *)&(bitmap)->Planes[HIDD_BM_EXTRAPLANES])->HBMPD_ColMod)
570 #define HIDD_BM_PIXTAB(bitmap) (((struct HiddBitMapPlaneData *)&(bitmap)->Planes[HIDD_BM_EXTRAPLANES])->HBMPD_PixTab)
571 #define HIDD_BM_REALDEPTH(bitmap) (((struct HiddBitMapPlaneData *)&(bitmap)->Planes[HIDD_BM_EXTRAPLANES])->HBMPD_RealDepth)
572 #define HIDD_BM_FLAGS(bitmap) (((struct HiddBitMapPlaneData *)&(bitmap)->Planes[HIDD_BM_EXTRAPLANES])->HBMPD_Flags)
573 #define HIDD_BM_HIDDMODE(bitmap) (((struct HiddBitMapPlaneData *)&(bitmap)->Planes[HIDD_BM_EXTRAPLANES])->HBMPD_HiddMode)
575 #endif /* HIDD_GRAPHICS_H */