Rev 829 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
808 | serge | 1 | |
2 | |||
3 | |||
812 | serge | 4 | |
808 | serge | 5 | { |
6 | int x0, y0, x1, y1; |
||
7 | |||
8 | |||
817 | serge | 9 | |
10 | |||
11 | |||
12 | |||
808 | serge | 13 | y0 = draw->y; |
14 | |||
15 | |||
16 | y1 = y0+draw->h-1; |
||
17 | |||
18 | |||
19 | // x0, y0, x1, y1, draw->color); |
||
20 | |||
21 | |||
22 | { |
||
23 | u32 *ring, write; |
||
24 | int w, h; |
||
25 | u32 ifl; |
||
26 | |||
27 | |||
28 | h = y1-y0+1; |
||
29 | |||
30 | |||
31 | |||
32 | |||
812 | serge | 33 | |
813 | serge | 34 | |
812 | serge | 35 | |
36 | |||
37 | |||
38 | R5XX_GMC_BRUSH_SOLID_COLOR | |
||
39 | R5XX_GMC_SRC_DATATYPE_COLOR); |
||
40 | |||
41 | |||
42 | OUTREG(R5XX_DP_WRITE_MASK, 0xFFFFFFFF); |
||
43 | OUTREG(R5XX_DP_CNTL, R5XX_DST_X_LEFT_TO_RIGHT | R5XX_DST_Y_TOP_TO_BOTTOM); |
||
44 | OUTREG(R5XX_DST_PITCH_OFFSET, dstpixmap->pitch_offset); |
||
817 | serge | 45 | OUTREG(R5XX_DST_Y_X,(y0<<16)|x0); |
812 | serge | 46 | OUTREG(R5XX_DST_WIDTH_HEIGHT,(w<<16)|h); |
817 | serge | 47 | |
812 | serge | 48 | |
49 | |||
50 | |||
808 | serge | 51 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_MULTI, 4)); |
52 | |||
53 | |||
54 | RADEON_GMC_BRUSH_SOLID_COLOR | |
||
55 | RADEON_GMC_DST_32BPP | |
||
56 | RADEON_GMC_SRC_DATATYPE_COLOR | |
||
57 | (1 << 28)+(1 << 30) | R5XX_ROP3_P); |
||
58 | |||
59 | |||
817 | serge | 60 | OUT_RING(draw->color); |
808 | serge | 61 | OUT_RING((x0<<16)|y0); |
817 | serge | 62 | OUT_RING((w<<16)|h); |
808 | serge | 63 | COMMIT_RING(); |
64 | |||
65 | |||
812 | serge | 66 | |
808 | serge | 67 | |
68 | } ; |
||
69 | return ERR_OK; |
||
817 | serge | 70 | } |
808 | serge | 71 | |
72 | |||
73 | { |
||
74 | pixmap_t *dstpixmap; |
||
817 | serge | 75 | int x0, y0, x1, y1; |
808 | serge | 76 | |
77 | |||
817 | serge | 78 | |
79 | |||
808 | serge | 80 | y0 = fill->y; |
81 | |||
82 | |||
83 | y1 = y0+fill->h-1; |
||
84 | |||
85 | |||
86 | // x0, y0, x1, y1); |
||
87 | |||
88 | |||
89 | { |
||
90 | u32 *ring, write; |
||
91 | u32 ifl; |
||
92 | |||
93 | |||
94 | |||
95 | |||
813 | serge | 96 | |
812 | serge | 97 | |
98 | |||
99 | |||
808 | serge | 100 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT, 7)); |
101 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
||
102 | BRUSH_MONO | |
||
103 | RADEON_GMC_DST_32BPP | |
||
104 | RADEON_GMC_SRC_DATATYPE_COLOR | |
||
105 | (1 << 28)+(1 << 30) | R5XX_ROP3_P); |
||
106 | |||
107 | |||
817 | serge | 108 | OUT_RING(fill->bkcolor); |
808 | serge | 109 | OUT_RING(fill->fcolor); |
110 | |||
111 | |||
112 | OUT_RING(fill->bmp1); |
||
113 | |||
114 | |||
115 | OUT_RING((y1<<16)|x1); |
||
116 | COMMIT_RING(); |
||
117 | |||
118 | |||
812 | serge | 119 | |
120 | |||
808 | serge | 121 | }; |
122 | return ERR_OK; |
||
817 | serge | 123 | } |
808 | serge | 124 | |
125 | |||
810 | serge | 126 | { |
127 | int x0, y0, x1, y1; |
||
128 | |||
808 | serge | 129 | |
810 | serge | 130 | y0 = blit->src_y; |
131 | |||
808 | serge | 132 | |
810 | serge | 133 | y1 = y0+blit->h-1; |
134 | |||
135 | |||
136 | |||
137 | { |
||
138 | u32 *ring, write; |
||
139 | int w, h; |
||
140 | u32 ifl; |
||
141 | |||
142 | |||
143 | h = y1-y0+1; |
||
144 | |||
145 | |||
146 | |||
147 | |||
813 | serge | 148 | |
812 | serge | 149 | |
150 | |||
151 | |||
152 | |||
810 | serge | 153 | OUT_RING(CP_PACKET3(RADEON_CNTL_BITBLT, 5)); |
154 | |||
155 | |||
156 | RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
||
157 | RADEON_GMC_BRUSH_NONE | |
||
158 | RADEON_GMC_DST_32BPP | |
||
159 | RADEON_GMC_SRC_DATATYPE_COLOR | |
||
160 | RADEON_DP_SRC_SOURCE_MEMORY | |
||
161 | (1 << 28)+(1 << 30) | R5XX_ROP3_S); |
||
162 | |||
163 | |||
164 | OUT_RING(rhd.dst_pitch_offset); |
||
165 | |||
166 | |||
167 | OUT_RING((blit->dst_x<<16)|blit->dst_y); |
||
168 | OUT_RING((w<<16)|h); |
||
169 | COMMIT_RING(); |
||
170 | |||
171 | |||
812 | serge | 172 | |
173 | |||
810 | serge | 174 | } ; |
175 | return ERR_OK; |
||
817 | serge | 176 | } |
810 | serge | 177 | |
178 | |||
808 | serge | 179 | { |
180 | |||
181 | |||
182 | |||
183 | |||
184 | y0 = draw->y0; |
||
185 | |||
186 | |||
187 | y1 = draw->y1; |
||
188 | |||
189 | |||
190 | { |
||
191 | u32 ifl; |
||
192 | u32 *ring, write; |
||
193 | |||
194 | |||
195 | |||
196 | |||
813 | serge | 197 | |
808 | serge | 198 | |
868 | serge | 199 | |
808 | serge | 200 | |
868 | serge | 201 | rhd.gui_control | |
202 | R5XX_GMC_BRUSH_SOLID_COLOR | |
||
203 | R5XX_GMC_SRC_DATATYPE_COLOR | |
||
204 | R5XX_GMC_CLR_CMP_CNTL_DIS | |
||
205 | R5XX_GMC_WR_MSK_DIS | |
||
206 | R5XX_ROP3_P |
||
207 | ); |
||
208 | |||
808 | serge | 209 | |
210 | |||
211 | |||
212 | OUTREG(R5XX_DST_PITCH_OFFSET, rhd.dst_pitch_offset); |
||
213 | |||
214 | |||
215 | OUTREG(R5XX_DST_LINE_END,(y1<<16)|x1); |
||
216 | |||
813 | serge | 217 | |
218 | |||
219 | |||
220 | OUT_RING(CP_PACKET3(RADEON_CNTL_PAINT_POLYLINE, 4)); |
||
221 | OUT_RING(RADEON_GMC_DST_PITCH_OFFSET_CNTL | |
||
222 | RADEON_GMC_BRUSH_SOLID_COLOR | |
||
223 | RADEON_GMC_DST_32BPP | |
||
224 | RADEON_GMC_SRC_DATATYPE_COLOR | |
||
225 | R5XX_GMC_CLR_CMP_CNTL_DIS | |
||
868 | serge | 226 | R5XX_GMC_WR_MSK_DIS | |
227 | R5XX_ROP3_P); |
||
228 | |||
813 | serge | 229 | |
230 | OUT_RING(draw->color); |
||
231 | OUT_RING((y0<<16)|x0); |
||
232 | OUT_RING((y1<<16)|x1); |
||
233 | COMMIT_RING(); |
||
234 | |||
235 | |||
236 | safe_sti(ifl); |
||
808 | serge | 237 | |
238 |