1 #ifndef VESAGFX_INTERN_H
2 #define VESAGFX_INTERN_H
5 Copyright © 1995-2017, The AROS Development Team. All rights reserved.
8 Desc: VESA Gfx private data.
12 #ifndef EXEC_LIBRARIES_H
13 # include <exec/libraries.h>
20 #ifndef EXEC_SEMAPHORES_H
21 # include <exec/semaphores.h>
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
;
34 OOP_Object
*vesagfxhidd
;
35 OOP_Object
*visible
; /* Currently visible bitmap */
37 struct SignalSemaphore framebufferlock
;
38 struct SignalSemaphore HW_acc
;
39 OOP_AttrBase attrBases
[ATTRBASES_NUM
];
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
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 */