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