Subversion Repositories Kolibri OS

Rev

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