1 #ifndef _VMWARESVGA_CLASS_H
2 #define _VMWARESVGA_CLASS_H
5 Copyright © 1995-2019, The AROS Development Team. All rights reserved.
8 Desc: Some VMWareSVGA useful data.
12 #include <exec/memory.h>
13 #include <exec/nodes.h>
14 #include <exec/types.h>
15 #include <exec/semaphores.h>
17 /***************** build options for debuggins and testing features ****************************/
18 //#define VMWARESVGA_USEMULTIMON
19 //#define VMWARESVGA_USE8BIT
20 //#define VMWAREGFX_IMMEDIATEDRAW
21 #define VMWAREGFX_UPDATEFBONSHOWVP
22 /***********************************************************************************************/
24 #if defined(VMWAREGFX_UPDATEFBONSHOWVP)
25 #define VPVISFLAG (XSD(cl)->data.shown)
27 #define VPVISFLAG (TRUE)
30 #include "vmwaresvga_hardware.h"
31 #include "vmwaresvga_gallium.h"
33 #define IID_Hidd_VMWareSVGA "hidd.gfx.vmwaresvga"
34 #define CLID_Hidd_VMWareSVGA "hidd.gfx.vmwaresvga"
36 #define SYNC_DESCNAME_LEN 32
38 #define VMWFIFO_CMD_SIZESHIFT 2
39 #define VMWFIFO_CMD_SIZE (1 << VMWFIFO_CMD_SIZESHIFT)
41 #define VMWCURSOR_ID 1
43 #if (AROS_BIG_ENDIAN == 1)
44 #define AROS_PIXFMT RECTFMT_RAW /* Big Endian Archs. */
46 #define AROS_PIXFMT RECTFMT_BGRA32 /* Little Endian Archs. */
49 struct VMWareSVGA_staticdata
{
51 struct Library
*VMWareSVGACyberGfxBase
;
52 APTR VMWareSVGAKernelBase
;
54 /* Base classes for CreateObject */
56 OOP_Class
*basegallium
;
58 /* VMWareSVGA classes */
59 OOP_Class
*vmwaresvgaclass
;
60 OOP_Class
*vmwaresvgaonbmclass
;
61 OOP_Class
*vmwaresvgaoffbmclass
;
62 OOP_Class
*galliumclass
;
64 /* Private object refrences */
65 OOP_Object
*vmwaresvgahidd
;
71 OOP_AttrBase hiddGalliumAB
;
73 VOID (*activecallback
)(APTR
, OOP_Object
*, BOOL
);
75 struct MouseData mouse
;
77 ULONG prefWidth
, prefHeight
;
82 struct Library library
;
84 struct VMWareSVGA_staticdata vsd
;
87 #define XSD(cl) (&((struct VMWareSVGABase *)cl->UserData)->vsd)
89 #define CyberGfxBase (XSD(cl)->VMWareSVGACyberGfxBase)
90 #define KernelBase (XSD(cl)->VMWareSVGAKernelBase)
92 #undef HiddGalliumAttrBase
93 #define HiddGalliumAttrBase (XSD(cl)->hiddGalliumAB)
95 #define METHOD(base, id, name) \
96 base ## __ ## id ## __ ## name (OOP_Class *cl, OOP_Object *o, struct p ## id ## _ ## name *msg)
98 #endif /* _VMWARESVGA_CLASS_H */