revert between 56095 -> 55830 in arch
[AROS.git] / arch / m68k-amiga / hidd / amigavideo / amigavideo_hidd.h
blobd2d5ee5ffcec27b29ec6557ad62c668d8d3be9a8
1 #ifndef AMIGAVIDEO_HIDD_H
2 #define AMIGAVIDEO_HIDD_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 (csd->hiddAttrBase)
13 #define __IHidd_BitMap (csd->hiddBitMapAttrBase)
14 #define __IHidd_PlanarBM (csd->hiddPlanarBitMapAttrBase)
15 #define __IHidd_BitMap_AmigaVideo (csd->hiddAmigaVideoBitMapAttrBase)
16 #define __IHidd_GC (csd->hiddGCAttrBase)
17 #define __IHidd_Sync (csd->hiddSyncAttrBase)
18 #define __IHidd_PixFmt (csd->hiddPixFmtAttrBase)
19 #define __IHidd_Gfx (csd->hiddGfxAttrBase)
20 //#define __IHidd_Attr (csd->hiddAttrBase)
21 #define __IHidd_ColorMap (csd->hiddColorMapAttrBase)
23 struct copper2data
25 UWORD *copper2;
26 UWORD *copper2_palette;
27 UWORD *copper2_palette_aga_lo;
28 UWORD *copper2_scroll;
29 UWORD *copper2_bplcon0;
30 UWORD *copper2_bpl;
31 UWORD *copper2_fmode;
34 struct NativeChipsetMode
36 struct Node node;
37 ULONG modeid;
38 UWORD width, height, depth;
39 OOP_Object *pf;
40 OOP_Object *sync;
41 UBYTE special;
44 struct amigavideo_staticdata
46 OOP_Class *cs_basebm; /* baseclass for CreateObject */
48 OOP_Class *amigagfxclass;
49 OOP_Class *amigabmclass;
51 OOP_AttrBase hiddAttrBase;
52 OOP_AttrBase hiddBitMapAttrBase;
53 OOP_AttrBase hiddPlanarBitMapAttrBase;
54 OOP_AttrBase hiddAmigaVideoBitMapAttrBase;
55 OOP_AttrBase hiddGCAttrBase;
56 OOP_AttrBase hiddSyncAttrBase;
57 OOP_AttrBase hiddPixFmtAttrBase;
58 OOP_AttrBase hiddGfxAttrBase;
59 OOP_AttrBase hiddColorMapAttrBase;
61 struct List nativemodelist;
62 BOOL superforward;
64 struct amigabm_data *disp;
65 ULONG modeid;
66 struct Interrupt inter;
67 volatile UWORD framecounter;
68 struct amigabm_data *updatescroll;
70 WORD width_alignment;
71 WORD startx, starty;
72 WORD width, height;
74 UWORD *copper1;
75 UWORD *copper1_pt2;
76 UWORD *copper1_spritept;
77 UWORD *copper2_backup;
78 UWORD spritedatasize;
79 WORD sprite_width, sprite_height;
80 UWORD spritepos, spritectl;
81 UWORD *sprite_null;
82 UWORD *sprite;
83 WORD spritex, spritey;
84 BYTE sprite_offset_x, sprite_offset_y;
85 BYTE sprite_res;
86 UWORD bplcon0_null, bplcon3;
87 UBYTE fmode_bpl, fmode_spr;
88 UWORD ddfstrt, ddfstop;
89 WORD modulopre, modulo;
90 struct copper2data copper2;
91 struct copper2data copper2i;
93 UWORD max_colors;
94 UWORD use_colors;
96 UBYTE *palette;
97 UBYTE depth;
98 UBYTE res; // 0 = lores, 1 = hires, 2 = shres
99 UBYTE interlace;
100 UBYTE extralines;
101 BOOL ecs_agnus, ecs_denise, aga;
102 BOOL aga_enabled;
103 BOOL cursorvisible;
104 BOOL palmode;
106 UBYTE initialized;
107 UBYTE bploffsets[8];
109 void (*acb)(void *data, void *bm);
110 APTR acbdata;
112 BPTR cs_SegList;
113 struct Library *cs_OOPBase;
114 struct Library *cs_GfxBase;
115 struct Library *cs_UtilityBase;
117 OOP_MethodID cs_HiddGfxBase;
118 OOP_MethodID cs_HiddBitMapBase;
121 struct amigavideoclbase
123 struct Library library;
125 struct amigavideo_staticdata csd;
128 #undef CSD
129 #define CSD(cl) (&((struct amigavideoclbase *)cl->UserData)->csd)
131 /* Private instance data for Gfx hidd class */
132 struct amigagfx_data
134 struct MinList bitmaps; /* Currently shown bitmap objects */
137 #endif /* AMIGAVIDEO_HIDD_H */