Subversion Repositories Kolibri OS

Rev

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

Rev Author Line No. Line
808 serge 1
 
2
#define DRAW_RECT  2
3
#define LINE_2P    3
4
#define BLIT       4
810 serge 5
#define COMPIZ     5
813 serge 6
808 serge 7
 
8
9
 
10
{
11
  int x;
12
  int y;
13
  int w;
14
  int h;
15
  u32 color;
16
}draw_t;
17
18
 
19
{
20
  int x;
21
  int y;
22
  int w;
23
  int h;
24
25
 
26
  color_t fcolor;
27
28
 
29
  u32_t   bmp1;
30
}fill_t;
31
32
 
33
{
34
  int src_x;
810 serge 35
  int src_y;
36
  int dst_x;
37
  int dst_y;
38
  int w;
39
  int h;
40
}blit_t;
41
42
 
43
{
44
  int x0;
808 serge 45
  int y0;
46
  int x1;
47
  int y1;
48
  u32 color;
49
}line2p_t;
50
51
 
52
int BlockClip( int *x1, int *y1, int *x2, int* y2);
53
54
 
55
int FillRect(fill_t * fill);
56
57
 
58
59
 
810 serge 60
808 serge 61
 
813 serge 62
 
63
64
 
65
 
808 serge 66
#	define RADEON_GMC_DST_PITCH_OFFSET_CNTL	(1 << 1)
67
# define RADEON_GMC_BRUSH_SOLID_COLOR     (13 << 4)
811 serge 68
# define RADEON_GMC_BRUSH_NONE            (15 << 4)
69
# define RADEON_GMC_DST_16BPP             (4 << 8)
70
# define RADEON_GMC_DST_24BPP             (5 << 8)
71
# define RADEON_GMC_DST_32BPP             (6 << 8)
72
# define RADEON_GMC_DST_DATATYPE_SHIFT     8
73
# define RADEON_GMC_SRC_DATATYPE_COLOR    (3 << 12)
74
# define RADEON_DP_SRC_SOURCE_MEMORY      (2 << 24)
75
# define RADEON_DP_SRC_SOURCE_HOST_DATA   (3 << 24)
76
# define RADEON_GMC_CLR_CMP_CNTL_DIS      (1 << 28)
77
# define RADEON_GMC_WR_MSK_DIS            (1 << 30)
78
# define RADEON_ROP3_S                 0x00cc0000
79
# define RADEON_ROP3_P                 0x00f00000
80
808 serge 81
 
811 serge 82
#define RADEON_CP_PACKET1              0x40000000
83
#define RADEON_CP_PACKET2              0x80000000
84
#define RADEON_CP_PACKET3              0xC0000000
808 serge 85
86
 
87
# define RADEON_CNTL_BITBLT            0x00009200
810 serge 88
89
 
808 serge 90
# define RADEON_CNTL_PAINT_MULTI       0x00009A00
91
92
 
811 serge 93
	(RADEON_CP_PACKET0 | ((n) << 16) | ((reg) >> 2))
94
95
 
96
	(RADEON_CP_PACKET1 | (((reg1) >> 2) << 11) | ((reg0) >> 2))
97
98
 
99
  (RADEON_CP_PACKET2)
100
101
 
808 serge 102
	(RADEON_CP_PACKET3 | (pkt) | ((n) << 16))
103
104
 
105
  ring = rhd.ring_base;                 \
106
  write = rhd.ring_wp;                  \
107
} while (0)
108
109
 
811 serge 110
111
 
808 serge 112
	ring[write++] = (x);						\
113
} while (0)
114
115
 
811 serge 116
do {									\
117
    OUT_RING(CP_PACKET0(reg, 0));					\
118
    OUT_RING(val);							\
119
} while (0)
120
121
 
808 serge 122
123
 
124
  rhd.ring_wp = write & 0x1FFF;                       \
125
  /* Flush writes to ring */                          \
126
  DRM_MEMORYBARRIER();                                \
127
  /*GET_RING_HEAD( dev_priv );          */            \
128
  OUTREG( RADEON_CP_RB_WPTR, rhd.ring_wp);            \
129
	/* read from PCI bus to ensure correct posting */		\
130
  INREG( RADEON_CP_RB_RPTR );                         \
131
} while (0)
132