Rev 876 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 876 | Rev 877 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | //ld -T ld.x -s --shared --image-base 0 --file-alignment 32 -o test.exe test.obj core.lib |
1 | #include "types.h" |
Line -... | Line 2... | ||
- | 2 | ||
- | 3 | #include |
|
- | 4 | #include |
|
- | 5 | #include |
|
2 | 6 | ||
Line 3... | Line 7... | ||
3 | #include "common.h" |
7 | #include "syscall.h" |
4 | 8 | ||
Line 5... | Line 9... | ||
5 | #include "ati2d.h" |
9 | #include "ati2d.h" |
Line 6... | Line 10... | ||
6 | #include "accel_2d.h" |
10 | #include "accel_2d.h" |
Line 7... | Line 11... | ||
7 | 11 | ||
Line 8... | Line -... | ||
8 | RHD_t rhd; |
- | |
9 | - | ||
10 | static clip_t clip; |
- | |
11 | - | ||
12 | static local_pixmap_t scr_pixmap; |
- | |
13 | - | ||
14 | - | ||
15 | /* |
- | |
16 | void STDCALL (*SelectHwCursor)(cursor_t*)__asm__("SelectHwCursor"); |
- | |
17 | void STDCALL (*SetHwCursor)(cursor_t*,int x,int y)__asm__("SetHwCursor"); |
- | |
18 | void STDCALL (*HwCursorRestore)(int x, int y)__asm("HwCursorRestore"); |
- | |
19 | cursor_t* IMPORT (*HwCursorCreate)(void)__asm("HwCursorCreate"); //params eax, ebx, ecx |
- | |
20 | - | ||
21 | void (__stdcall *old_select)(cursor_t*); |
- | |
22 | void (__stdcall *old_set)(cursor_t*,int x,int y); |
12 | RHD_t rhd; |
Line -... | Line 13... | ||
- | 13 | ||
- | 14 | static clip_t clip; |
|
23 | void (__stdcall *old_restore)(int x, int y); |
15 | |
24 | cursor_t* (*old_create)(void); |
16 | static local_pixmap_t scr_pixmap; |
25 | cursor_t* __create_cursor(void); |
17 | |
26 | */ |
18 | static void Init3DEngine(RHDPtr rhdPtr); |
Line 27... | Line 19... | ||
27 | 19 | ||
Line 28... | Line 20... | ||
28 | static void Init3DEngine(RHDPtr rhdPtr); |
20 | int __stdcall srv_2d(ioctl_t *io); |
29 | 21 | ||
Line 63... | Line 55... | ||
63 | }; |
55 | }; |
64 | if(!RHDPreInit()) |
56 | if(!RHDPreInit()) |
65 | return 0; |
57 | return 0; |
66 | 58 | ||
Line 67... | Line -... | ||
67 | // old_select = SelectHwCursor; |
- | |
68 | // old_set = SetHwCursor; |
- | |
69 | // old_restore = HwCursorRestore ; |
- | |
70 | // old_create = HwCursorCreate; |
- | |
71 | - | ||
72 | R5xx2DInit(); |
59 | R5xx2DInit(); |
73 | rhd.has_tcl = 1; |
60 | rhd.has_tcl = 1; |
- | 61 | ||
74 | // Init3DEngine(&rhd); |
62 | // Init3DEngine(&rhd); |
Line 75... | Line 63... | ||
75 | 63 | ||
Line 76... | Line -... | ||
76 | //init_r500(); |
- | |
77 | - | ||
78 | // SelectHwCursor = r500_SelectCursor; |
- | |
79 | // SetHwCursor = r500_SetCursor; |
- | |
Line 80... | Line 64... | ||
80 | // HwCursorCreate = __create_cursor; |
64 | //init_r500(); |
81 | // HwCursorRestore = r500_CursorRestore; |
65 | |
Line 82... | Line -... | ||
82 | - | ||
83 | retval = RegService("HDRAW", srv_2d); |
66 | |
84 | dbgprintf("reg service %s as: %x\n", "HDRAW", retval); |
67 | retval = RegService("HDRAW", srv_2d); |
Line 85... | Line 68... | ||
85 | 68 | dbgprintf("reg service %s as: %x\n", "HDRAW", retval); |
|
Line 86... | Line 69... | ||
86 | // retval = RegService("HWCURSOR", srv_cursor); |
69 | |
Line 87... | Line -... | ||
87 | return retval; |
- | |
88 | }; |
- | |
89 | - | ||
90 | - | ||
91 | #define API_VERSION 0x01000100 |
- | |
92 | - | ||
93 | #define SRV_GETVERSION 0 |
- | |
94 | - | ||
95 | /* |
- | |
96 | int _stdcall srv_cursor(ioctl_t *io) |
- | |
97 | { |
- | |
98 | u32 *inp; |
- | |
99 | u32 *outp; |
- | |
100 | - | ||
101 | inp = io->input; |
- | |
102 | outp = io->output; |
- | |
103 | - | ||
104 | switch(io->io_code) |
- | |
105 | { |
- | |
106 | case SRV_GETVERSION: |
- | |
107 | if(io->out_size==4) |
- | |
108 | { |
- | |
109 | *(u32*)io->output = API_VERSION; |
- | |
110 | return 0; |
- | |
111 | } |
- | |
Line 112... | Line 70... | ||
112 | break; |
70 | return retval; |
113 | 71 | }; |
|
114 | default: |
72 | |
115 | return ERR_PARAM; |
73 | |
Line 116... | Line 74... | ||
116 | }; |
74 | #define API_VERSION 0x01000100 |
117 | return ERR_PARAM; |
75 | |
Line 118... | Line 76... | ||
118 | } |
76 | #define SRV_GETVERSION 0 |
Line 135... | Line 93... | ||
135 | return 0; |
93 | return 0; |
136 | } |
94 | } |
137 | break; |
95 | break; |
138 | 96 | ||
Line -... | Line 97... | ||
- | 97 | case PX_CREATE: |
|
- | 98 | if(io->inp_size==7) |
|
- | 99 | return CreatePixmap((pixmap_t*)inp); |
|
- | 100 | break; |
|
- | 101 | ||
- | 102 | case PX_DESTROY: |
|
- | 103 | if(io->inp_size==7) |
|
- | 104 | return DestroyPixmap((pixmap_t*)inp); |
|
- | 105 | break; |
|
- | 106 | ||
139 | case DRAW_RECT: |
107 | case PX_DRAW_RECT: |
140 | if(io->inp_size==6) |
108 | if(io->inp_size==6) |
141 | return DrawRect((draw_t*)inp); |
109 | return DrawRect((draw_t*)inp); |
142 | break; |
110 | break; |
Line 143... | Line 111... | ||
143 | 111 | ||
144 | case FILL_RECT: |
112 | case PX_FILL_RECT: |
145 | if(io->inp_size==9) |
113 | if(io->inp_size==9) |
146 | return FillRect((fill_t*)inp); |
114 | return FillRect((fill_t*)inp); |
- | 115 | break; |
|
- | 116 | ||
- | 117 | case PX_BLIT: |
|
- | 118 | if(io->inp_size==8) |
|
- | 119 | return PixBlit((pixblit_t*)inp); |
|
147 | break; |
120 | break; |
- | 121 | ||
- | 122 | case PX_BLIT_TRANSPARENT: |
|
- | 123 | if(io->inp_size==8) |
|
- | 124 | return TransBlit((pixblit_t*)inp); |
|
- | 125 | break; |
|
148 | /* |
126 | |
149 | case LINE_2P: |
127 | case PX_LINE: |
150 | if(io->inp_size==6) |
128 | if(io->inp_size==6) |
151 | return Line2P((draw_t*)inp); |
129 | return Line((draw_t*)inp); |
Line -... | Line 130... | ||
- | 130 | break; |
|
152 | break; |
131 | |
153 | 132 | /* |
|
154 | case BLIT: |
133 | case BLIT: |
155 | if(io->inp_size==6) |
134 | if(io->inp_size==6) |
Line 156... | Line 135... | ||
156 | return Blit((blit_t*)inp); |
135 | return Blit((blit_t*)inp); |
157 | break; |
136 | break; |
158 | 137 | ||
159 | case COMPIZ: |
138 | case COMPIZ: |
160 | if(io->inp_size==6) |
139 | if(io->inp_size==6) |
161 | return RadeonComposite((blit_t*)inp); |
- | |
162 | break; |
- | |
163 | */ |
- | |
164 | case PX_CREATE: |
- | |
165 | if(io->inp_size==7) |
- | |
166 | return CreatePixmap((pixmap_t*)inp); |
- | |
167 | break; |
- | |
168 | - | ||
169 | case PIXBLIT: |
- | |
170 | if(io->inp_size==8) |
- | |
171 | return PixBlit((pixblit_t*)inp); |
- | |
172 | break; |
- | |
173 | - | ||
174 | // case PIXLOCK: |
- | |
175 | // if(io->inp_size==6) |
- | |
176 | // return LockPixmap((userpixmap_t*)inp); |
- | |
177 | // break; |
- | |
178 | - | ||
179 | // case PIXUNLOCK: |
- | |
180 | // if(io->inp_size==6) |
- | |
181 | // return UnlockPixmap((userpixmap_t*)inp); |
- | |
182 | // break; |
- | |
183 | - | ||
184 | case PIXDESTROY: |
- | |
185 | if(io->inp_size==6) |
- | |
186 | return DestroyPixmap((pixmap_t*)inp); |
- | |
187 | break; |
- | |
188 | - | ||
189 | case TRANSBLIT: |
- | |
190 | if(io->inp_size==8) |
- | |
Line 191... | Line 140... | ||
191 | return TransBlit((pixblit_t*)inp); |
140 | return RadeonComposite((blit_t*)inp); |
192 | break; |
141 | break; |
193 | 142 | */ |
|
194 | 143 | ||
Line 206... | Line 155... | ||
206 | 155 | ||
Line 207... | Line 156... | ||
207 | #include "r500.inc" |
156 | #include "r500.inc" |
Line 208... | Line 157... | ||
208 | 157 | ||
- | 158 | #include "clip.inc" |
|
209 | #include "clip.inc" |
159 | #include "pixmap.inc" |
210 | #include "accel_2d.inc" |
160 | #include "accel_2d.inc" |