wip prep commit in lieu of gfx subsystem update changes, part 2.
[AROS.git] / rom / hidds / vesagfx / vesagfx_intern.h
blobd36ae10f77e7fc95f5a6a1c84d79e73d6288f950
1 #ifndef VESAGFX_INTERN_H
2 #define VESAGFX_INTERN_H
4 /*
5 Copyright © 1995-2017, The AROS Development Team. All rights reserved.
6 $Id$
8 Desc: VESA Gfx private data.
9 Lang: English.
12 #ifndef EXEC_LIBRARIES_H
13 # include <exec/libraries.h>
14 #endif
16 #ifndef OOP_OOP_H
17 # include <oop/oop.h>
18 #endif
20 #ifndef EXEC_SEMAPHORES_H
21 # include <exec/semaphores.h>
22 #endif
24 #include "vesagfx_support.h"
26 #define ATTRBASES_NUM 6
28 struct VESAGfx_staticdata
30 OOP_Class *basebm; /* baseclass for CreateObject */
32 OOP_Class *vesagfxclass;
33 OOP_Class *bmclass;
34 OOP_Object *vesagfxhidd;
35 OOP_Object *visible; /* Currently visible bitmap */
36 struct HWData data;
37 struct SignalSemaphore framebufferlock;
38 struct SignalSemaphore HW_acc;
39 OOP_AttrBase attrBases[ATTRBASES_NUM];
42 struct VESAGfxBase
44 struct Library library;
45 struct VESAGfx_staticdata vsd;
48 #define LOCK_FRAMEBUFFER(xsd) ObtainSemaphore(&xsd->framebufferlock)
49 #define UNLOCK_FRAMEBUFFER(xsd) ReleaseSemaphore(&xsd->framebufferlock)
51 #define XSD(cl) (&((struct VESAGfxBase *)cl->UserData)->vsd)
53 #undef HiddChunkyBMAttrBase
54 #undef HiddBitMapAttrBase
55 #undef HiddGfxAttrBase
56 #undef HiddPixFmtAttrBase
57 #undef HiddSyncAttrBase
58 #undef HiddAttrBase
60 /* These must stay in the same order as interfaces[] array in vesagfx_init.c */
61 #define HiddChunkyBMAttrBase XSD(cl)->attrBases[0]
62 #define HiddBitMapAttrBase XSD(cl)->attrBases[1]
63 #define HiddGfxAttrBase XSD(cl)->attrBases[2]
64 #define HiddPixFmtAttrBase XSD(cl)->attrBases[3]
65 #define HiddSyncAttrBase XSD(cl)->attrBases[4]
66 #define HiddAttrBase XSD(cl)->attrBases[5]
68 #endif /* VESAGFX_INTERN_H */