wip prep commit in lieu of gfx subsystem update changes.
[AROS.git] / workbench / hidds / vmwaresvga / vmwaresvgabitmap.h
blobb85b184a129b3a9c92c07fff18e08a3d783729e5
1 /*
2 Copyright © 1995-2017, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #ifndef _VMWARESVGA_BITMAP_H
7 #define _VMWARESVGA_BITMAP_H
9 #include <hidd/gfx.h>
10 #include "vmwaresvgamouse.h"
12 /* This attribute interface is common for both vga onscreen and offscreen bitmap
13 classes, although they don't have a common superclass */
15 #define IID_Hidd_VMWareSVGABitMap "hidd.bitmap.vmwaresvga"
17 #define HiddVMWareSVGABitMapAttrBase __abHidd_VMWareGfxBitMap
18 /* extern OOP_AttrBase HiddVMWareSVGABitMapAttrBase; */
20 enum {
21 aoHidd_VMWareSVGABitMap_Drawable,
22 num_Hidd_VMWareSVGABitMap_Attrs
25 #define aHidd_VMWareSVGABitMap_Drawable (HiddVMWareSVGABitMapAttrBase + aoHidd_VMWareSVGABitMap_Drawable)
27 /* This structure is used for both onscreen and offscreen VGA bitmaps !! */
29 #define IS_BM_ATTR(attr, idx) ( ( (idx) = (attr) - HiddBitMapAttrBase) < num_Hidd_BitMap_Attrs)
30 #define IS_VMWareSVGABM_ATTR(attr, idx) ( ( (idx) = (attr) - HiddVMWareSVGABitMapAttrBase) < num_Hidd_VMWareSVGABitMap_Attrs)
32 /* This structure is used as instance data for both the
33 onbitmap and offbitmap classes. */
35 struct Box
37 int x1, y1;
38 int x2, y2;
41 struct HWRegs {
42 UBYTE clt[768];
45 /* Only include vmwaresvgahardware.h now so that struct Box is known */
47 #include "vmwaresvgahardware.h"
49 struct BitmapData {
50 struct HWRegs regs;
51 struct HWData *data;
52 UBYTE *VideoData; /* Pointing to video data */
53 ULONG width; /* Width of bitmap */
54 ULONG height; /* Height of bitmap */
55 UBYTE bytesperpix;
56 ULONG cmap[16]; /* ColorMap */
57 BYTE bpp; /* 8 -> chunky; planar otherwise */
58 BYTE disp; /* !=0 - displayable */
59 struct MouseData *mouse;
62 #endif /* _VMWARESVGA_BITMAP_H */