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