Subversion Repositories Kolibri OS

Rev

Rev 818 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
808 serge 1
 
868 serge 2
#define DRAW_RECT    2
3
#define LINE_2P      3
4
#define BLIT         4
5
#define COMPIZ       5
6
#define PIXMAP       6
7
#define PIXBLIT      7
8
#define PIXLOCK      8
9
#define PIXUNLOCK    9
10
#define PIXDESTROY  10
11
#define TRANSBLIT   11
12
808 serge 13
 
868 serge 14
 
808 serge 15
16
 
17
{
18
  pixmap_t  *dstpix;
817 serge 19
20
 
21
  int     y;
22
  u32_t   w;
23
  u32_t   h;
24
  color_t color;
25
}draw_t;
808 serge 26
27
 
28
{
29
  pixmap_t  *dstpix;
817 serge 30
31
 
808 serge 32
  int y;
33
  int w;
34
  int h;
35
36
 
37
  color_t fcolor;
38
39
 
40
  u32_t   bmp1;
41
}fill_t;
42
43
 
44
{
45
  int src_x;
810 serge 46
  int src_y;
47
  int dst_x;
48
  int dst_y;
49
  int w;
50
  int h;
51
}blit_t;
52
53
 
54
{
55
  int x0;
808 serge 56
  int y0;
57
  int x1;
58
  int y1;
59
  u32 color;
60
}line2p_t;
61
62
 
815 serge 63
{
64
  pixmap_t  *pixmap;
817 serge 65
  void      *usermap;
66
  u32_t      format;
67
  u32_t      pitch;
68
815 serge 69
 
817 serge 70
  u32_t      height;
71
}userpixmap_t;
72
73
 
815 serge 74
{
75
  pixmap_t  *dstpix;
76
  int        dst_x;
817 serge 77
  int        dst_y;
78
815 serge 79
 
80
  int        src_x;
817 serge 81
  int        src_y;
82
  int        w;
83
  int        h;
84
}pixblit_t;
815 serge 85
86
 
87
 
808 serge 88
int BlockClip( int *x1, int *y1, int *x2, int* y2);
89
90
 
91
int FillRect(fill_t * fill);
92
93
 
94
95
 
810 serge 96
808 serge 97
 
813 serge 98
99
 
817 serge 100
int DestroyPixmap(userpixmap_t *io);
868 serge 101
int LockPixmap(userpixmap_t *io);
102
int UnlockPixmap(userpixmap_t *io);
103
813 serge 104
 
815 serge 105
106
 
817 serge 107
 
808 serge 108
#	define RADEON_GMC_DST_PITCH_OFFSET_CNTL	(1 << 1)
109
# define RADEON_GMC_BRUSH_SOLID_COLOR     (13 << 4)
811 serge 110
# define RADEON_GMC_BRUSH_NONE            (15 << 4)
111
# define RADEON_GMC_DST_16BPP             (4 << 8)
112
# define RADEON_GMC_DST_24BPP             (5 << 8)
113
# define RADEON_GMC_DST_32BPP             (6 << 8)
114
# define RADEON_GMC_DST_DATATYPE_SHIFT     8
115
# define RADEON_GMC_SRC_DATATYPE_COLOR    (3 << 12)
116
# define RADEON_DP_SRC_SOURCE_MEMORY      (2 << 24)
117
# define RADEON_DP_SRC_SOURCE_HOST_DATA   (3 << 24)
118
# define RADEON_GMC_CLR_CMP_CNTL_DIS      (1 << 28)
119
# define RADEON_GMC_WR_MSK_DIS            (1 << 30)
120
# define RADEON_ROP3_S                 0x00cc0000
121
# define RADEON_ROP3_P                 0x00f00000
122
808 serge 123
 
811 serge 124
#define RADEON_CP_PACKET1              0x40000000
125
#define RADEON_CP_PACKET2              0x80000000
126
#define RADEON_CP_PACKET3              0xC0000000
808 serge 127
128
 
129
# define RADEON_CNTL_BITBLT            0x00009200
810 serge 130
# define RADEON_CNTL_TRANBLT           0x00009C00
868 serge 131
810 serge 132
 
868 serge 133
 
808 serge 134
# define RADEON_CNTL_PAINT_MULTI       0x00009A00
135
136
 
811 serge 137
	(RADEON_CP_PACKET0 | ((n) << 16) | ((reg) >> 2))
138
139
 
140
	(RADEON_CP_PACKET1 | (((reg1) >> 2) << 11) | ((reg0) >> 2))
141
142
 
143
  (RADEON_CP_PACKET2)
144
145
 
808 serge 146
	(RADEON_CP_PACKET3 | (pkt) | ((n) << 16))
147
148
 
149
  ring = rhd.ring_base;                 \
150
  write = rhd.ring_wp;                  \
151
} while (0)
152
153
 
811 serge 154
155
 
808 serge 156
	ring[write++] = (x);						\
157
} while (0)
158
159
 
811 serge 160
do {									\
161
    OUT_RING(CP_PACKET0(reg, 0));					\
162
    OUT_RING(val);							\
163
} while (0)
164
165
 
808 serge 166
167
 
168
  rhd.ring_wp = write & 0x1FFF;                       \
169
  /* Flush writes to ring */                          \
170
  DRM_MEMORYBARRIER();                                \
171
  /*GET_RING_HEAD( dev_priv );          */            \
172
  OUTREG( RADEON_CP_RB_WPTR, rhd.ring_wp);            \
173
	/* read from PCI bus to ensure correct posting */		\
174
  INREG( RADEON_CP_RB_RPTR );                         \
175
} while (0)
176