1 #ifndef HIDD_SM502GFXCLASS_H
2 #define HIDD_SM502GFXCLASS_H
5 Copyright © 1995-2011, The AROS Development Team. All rights reserved.
8 Desc: Some SM502Gfx useful data.
12 #include <exec/interrupts.h>
13 #include <exec/semaphores.h>
14 #include <exec/memory.h>
15 #include <exec/nodes.h>
16 #include <exec/types.h>
21 #define CLID_Hidd_SM502Gfx "hidd.gfx.sm502"
25 struct Interrupt ResetInterrupt
;
28 #define ATTRBASES_NUM 6
30 struct SM502Gfx_staticdata
32 OOP_Class
*sm502gfxclass
;
34 OOP_Object
*sm502gfxhidd
;
35 OOP_Object
*visible
; /* Currently visible bitmap */
36 struct SM502_HWData data
;
37 struct SignalSemaphore framebufferlock
;
38 struct SignalSemaphore HW_acc
;
39 OOP_AttrBase attrBases
[ATTRBASES_NUM
];
44 struct Library library
;
45 struct SM502Gfx_staticdata vsd
;
48 #define LOCK_FRAMEBUFFER(xsd) ObtainSemaphore(&xsd->framebufferlock)
49 #define UNLOCK_FRAMEBUFFER(xsd) ReleaseSemaphore(&xsd->framebufferlock)
51 #define XSD(cl) (&((struct SM502GfxBase *)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 sm502gfx_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 /* HIDD_SM502GFXCLASS_H */