1 #ifndef _VIDEOCOREGFX_CLASS_H
2 #define _VIDEOCOREGFX_CLASS_H
4 Copyright © 2013-2015, The AROS Development Team. All rights reserved.
8 #include <exec/semaphores.h>
9 #include <exec/memory.h>
10 #include <exec/memheaderext.h>
11 #include <exec/nodes.h>
12 #include <exec/types.h>
14 #include "videocoregfx_hardware.h"
16 #define DEBUGMODEARRAY
18 //#define DEBUGDISPLAY
26 #define IID_Hidd_VideoCoreGfx "hidd.gfx.videocore"
27 #define CLID_Hidd_VideoCoreGfx "hidd.gfx.videocore"
30 #define ATTRBASES_NUM 8
32 struct VideoCoreGfx_staticdata
{
34 unsigned int *vcsd_MBoxMessage
;
37 struct SignalSemaphore vcsd_GPUMemLock
;
38 struct MemHeaderExt vcsd_GPUMemManage
;
40 OOP_Class
*vcsd_VideoCoreGfxClass
;
41 OOP_Object
*vcsd_VideoCoreGfxInstance
;
42 OOP_Class
*vcsd_VideoCoreGfxOnBMClass
;
43 OOP_Class
*vcsd_VideoCoreGfxOffBMClass
;
45 OOP_AttrBase vcsd_attrBases
[ATTRBASES_NUM
];
50 struct VideoCoreGfxBase
52 struct Library library
;
54 struct VideoCoreGfx_staticdata vsd
;
72 #define XSD(cl) (&((struct VideoCoreGfxBase *)cl->UserData)->vsd)
74 #undef HiddVideoCoreGfxAttrBase
75 #undef HiddVideoCoreGfxBitMapAttrBase
76 #undef HiddChunkyBMAttrBase
77 #undef HiddBitMapAttrBase
78 #undef HiddPixFmtAttrBase
79 #undef HiddSyncAttrBase
80 #undef HiddGfxAttrBase
83 /* These must stay in the same order as interfaces[] array in videocoregfx_init.c */
84 #define HiddVideoCoreGfxAttrBase XSD(cl)->vcsd_attrBases[0]
85 #define HiddVideoCoreGfxBitMapAttrBase XSD(cl)->vcsd_attrBases[1]
86 #define HiddChunkyBMAttrBase XSD(cl)->vcsd_attrBases[2]
87 #define HiddBitMapAttrBase XSD(cl)->vcsd_attrBases[3]
88 #define HiddPixFmtAttrBase XSD(cl)->vcsd_attrBases[4]
89 #define HiddSyncAttrBase XSD(cl)->vcsd_attrBases[5]
90 #define HiddGfxAttrBase XSD(cl)->vcsd_attrBases[6]
91 #define HiddAttrBase XSD(cl)->vcsd_attrBases[7]
93 #define FNAME_SUPPORT(x) VideoCoreGfx__Support__ ## x
95 int FNAME_SUPPORT(InitMem
)(void *, int, struct VideoCoreGfxBase
*);
96 int FNAME_SUPPORT(SDTV_SyncGen
)(struct List
*, OOP_Class
*);
97 int FNAME_SUPPORT(HDMI_SyncGen
)(struct List
*, OOP_Class
*);
98 APTR
FNAME_SUPPORT(GenPixFmts
)(OOP_Class
*);
100 #endif /* _VIDEOCOREGFX_CLASS_H */