wip prep commit in lieu of gfx subsystem update changes.
[AROS.git] / arch / m68k-amiga / hidd / amigavideo / amigavideo_hidd.h
blob3a111a6d5fa9803c3d2919ee22b2535f7c794175
1 #ifndef HIDD_AMIGAVIDEO_H
2 #define HIDD_AMIGAVIDEO_H
4 #include <exec/libraries.h>
5 #include <oop/oop.h>
6 #include <exec/semaphores.h>
7 #include <exec/interrupts.h>
8 #include <graphics/gfxbase.h>
10 #include "amigavideo_intern.h"
12 #define __IHidd_BitMap (csd->hiddBitMapAttrBase)
13 #define __IHidd_PlanarBM (csd->hiddPlanarBitMapAttrBase)
14 #define __IHidd_BitMap_AmigaVideo (csd->hiddAmigaVideoBitMapAttrBase)
15 #define __IHidd_GC (csd->hiddGCAttrBase)
16 #define __IHidd_Sync (csd->hiddSyncAttrBase)
17 #define __IHidd_PixFmt (csd->hiddPixFmtAttrBase)
18 #define __IHidd_Gfx (csd->hiddGfxAttrBase)
19 #define __IHidd_Attr (csd->hiddAttrBase)
20 #define __IHidd_ColorMap (csd->hiddColorMapAttrBase)
22 struct copper2data
24 UWORD *copper2;
25 UWORD *copper2_palette;
26 UWORD *copper2_palette_aga_lo;
27 UWORD *copper2_scroll;
28 UWORD *copper2_bplcon0;
29 UWORD *copper2_bpl;
30 UWORD *copper2_fmode;
33 struct NativeChipsetMode
35 struct Node node;
36 ULONG modeid;
37 UWORD width, height, depth;
38 OOP_Object *pf;
39 OOP_Object *sync;
40 UBYTE special;
43 struct amigavideo_staticdata
45 OOP_Class *cs_basebm; /* baseclass for CreateObject */
47 OOP_Class *amigagfxclass;
48 OOP_Class *amigabmclass;
50 OOP_AttrBase hiddBitMapAttrBase;
51 OOP_AttrBase hiddPlanarBitMapAttrBase;
52 OOP_AttrBase hiddAmigaVideoBitMapAttrBase;
53 OOP_AttrBase hiddGCAttrBase;
54 OOP_AttrBase hiddSyncAttrBase;
55 OOP_AttrBase hiddPixFmtAttrBase;
56 OOP_AttrBase hiddGfxAttrBase;
57 OOP_AttrBase hiddAttrBase;
58 OOP_AttrBase hiddColorMapAttrBase;
60 struct List nativemodelist;
61 BOOL superforward;
63 struct amigabm_data *disp;
64 ULONG modeid;
65 struct Interrupt inter;
66 volatile UWORD framecounter;
67 struct amigabm_data *updatescroll;
69 WORD width_alignment;
70 WORD startx, starty;
71 WORD width, height;
73 UWORD *copper1;
74 UWORD *copper1_pt2;
75 UWORD *copper1_spritept;
76 UWORD *copper2_backup;
77 UWORD spritedatasize;
78 WORD sprite_width, sprite_height;
79 UWORD spritepos, spritectl;
80 UWORD *sprite_null;
81 UWORD *sprite;
82 WORD spritex, spritey;
83 BYTE sprite_offset_x, sprite_offset_y;
84 BYTE sprite_res;
85 UWORD bplcon0_null, bplcon3;
86 UBYTE fmode_bpl, fmode_spr;
87 UWORD ddfstrt, ddfstop;
88 WORD modulopre, modulo;
89 struct copper2data copper2;
90 struct copper2data copper2i;
92 UWORD max_colors;
93 UWORD use_colors;
95 UBYTE *palette;
96 UBYTE depth;
97 UBYTE res; // 0 = lores, 1 = hires, 2 = shres
98 UBYTE interlace;
99 UBYTE extralines;
100 BOOL ecs_agnus, ecs_denise, aga;
101 BOOL aga_enabled;
102 BOOL cursorvisible;
103 BOOL palmode;
105 UBYTE initialized;
106 UBYTE bploffsets[8];
108 void (*acb)(void *data, void *bm);
109 APTR acbdata;
111 BPTR cs_SegList;
112 struct Library *cs_OOPBase;
113 struct Library *cs_GfxBase;
114 struct Library *cs_UtilityBase;
116 OOP_MethodID cs_HiddGfxBase;
117 OOP_MethodID cs_HiddBitMapBase;
120 struct amigavideoclbase
122 struct Library library;
124 struct amigavideo_staticdata csd;
127 #undef CSD
128 #define CSD(cl) (&((struct amigavideoclbase *)cl->UserData)->csd)
130 /* Private instance data for Gfx hidd class */
131 struct amigagfx_data
133 struct MinList bitmaps; /* Currently shown bitmap objects */
136 #endif /* HIDD_AMIGAVIDEO_H */