geode_blend.h revision f29dbc25
1f29dbc25Smrg#ifndef AMD_BLEND_H_
2f29dbc25Smrg#define AMD_BLEND_H_
3f29dbc25Smrg
4f29dbc25Smrg#define GEODEPTR_FROM_PIXMAP(x)		\
5f29dbc25Smrg		GEODEPTR(xf86Screens[(x)->drawable.pScreen->myNum])
6f29dbc25Smrg#define GEODEPTR_FROM_SCREEN(x)		\
7f29dbc25Smrg		GEODEPTR(xf86Screens[(x)->myNum])
8f29dbc25Smrg#define GEODEPTR_FROM_PICTURE(x)	\
9f29dbc25Smrg		GEODEPTR(xf86Screens[(x)->pDrawable->pScreen->myNum])
10f29dbc25Smrg
11f29dbc25Smrg#define usesPasses(op) (((		\
12f29dbc25Smrg   ( 1 << PictOpAtop ) | 		\
13f29dbc25Smrg   ( 1 << PictOpAtopReverse ) | \
14f29dbc25Smrg   ( 1 << PictOpXor ) | 		\
15f29dbc25Smrg   0 ) >> (op)) & 1)
16f29dbc25Smrg
17f29dbc25Smrg/* pass1 or pass2 */
18f29dbc25Smrg#define usesSrcAlpha(op) ((( 		\
19f29dbc25Smrg   ( 1 << PictOpOver ) | 			\
20f29dbc25Smrg   ( 1 << PictOpInReverse  ) | 		\
21f29dbc25Smrg   ( 1 << PictOpOutReverse  ) | 	\
22f29dbc25Smrg   ( 1 << PictOpAtop ) | 			\
23f29dbc25Smrg   ( 1 << PictOpAtopReverse ) | 	\
24f29dbc25Smrg   ( 1 << PictOpXor ) | 			\
25f29dbc25Smrg   0 ) >> (op)) & 1)
26f29dbc25Smrg
27f29dbc25Smrg/* pass1 or pass2 */
28f29dbc25Smrg#define usesDstAlpha(op) ((( 		\
29f29dbc25Smrg   ( 1 << PictOpOverReverse ) | 	\
30f29dbc25Smrg   ( 1 << PictOpIn ) | 				\
31f29dbc25Smrg   ( 1 << PictOpOut ) | 			\
32f29dbc25Smrg   ( 1 << PictOpAtop ) | 			\
33f29dbc25Smrg   ( 1 << PictOpAtopReverse ) | 	\
34f29dbc25Smrg   ( 1 << PictOpXor ) | 			\
35f29dbc25Smrg   0 ) >> (op)) & 1)
36f29dbc25Smrg
37f29dbc25Smrg/* non 2 pass ops */
38f29dbc25Smrg#define usesChanB0(op) ((( 			\
39f29dbc25Smrg   ( 1 << PictOpOver ) | 			\
40f29dbc25Smrg   ( 1 << PictOpOverReverse ) | 	\
41f29dbc25Smrg   ( 1 << PictOpIn ) | 				\
42f29dbc25Smrg   ( 1 << PictOpInReverse ) | 		\
43f29dbc25Smrg   ( 1 << PictOpOut ) | 			\
44f29dbc25Smrg   ( 1 << PictOpOutReverse ) | 		\
45f29dbc25Smrg   ( 1 << PictOpAdd ) | 			\
46f29dbc25Smrg   0 ) >> (op)) & 1)
47f29dbc25Smrg
48f29dbc25Smrg/* pass 1 ops */
49f29dbc25Smrg#define usesChanB1(op) ((( 			\
50f29dbc25Smrg   ( 1 << PictOpAtop ) | 			\
51f29dbc25Smrg   ( 1 << PictOpAtopReverse ) | 	\
52f29dbc25Smrg   ( 1 << PictOpXor ) | 			\
53f29dbc25Smrg   0 ) >> (op)) & 1)
54f29dbc25Smrg
55f29dbc25Smrg/* pass 2 ops */
56f29dbc25Smrg#define usesChanB2(op) ((( 			\
57f29dbc25Smrg   ( 1 << PictOpAtop ) | 			\
58f29dbc25Smrg   ( 1 << PictOpAtopReverse ) | 	\
59f29dbc25Smrg   ( 1 << PictOpXor ) | 			\
60f29dbc25Smrg   0 ) >> (op)) & 1)
61f29dbc25Smrg
62f29dbc25Smrg#endif
63