diff options
author | Jordan Crouse <jordan.crouse@amd.com> | 2007-03-07 18:14:34 -0700 |
---|---|---|
committer | Jordan Crouse <jordan.crouse@amd.com> | 2007-03-07 18:18:09 -0700 |
commit | b59bfdde9341ca9014e00795e344ac64b5b91b8c (patch) | |
tree | 1d85f4420e42e2f55500872e8cde05ebcdf5ef9e /src/amd_blend.h | |
parent | d2f53b7c576c91f07f55b62b0020be1d0ab358dc (diff) |
[MAJOR UPDATE] Geode LX driver
This is a major re-vamping of the Geode LX driver to support EXA, RandR,
and advanced xserver features. The GX and LX drivers now share the similar
streamlined infrastructure, and acceleration. The LX driver also adds
features the GX does not have, such as accelerated rotations and
far better composite support.
This provides the basis for the rotation and acceleration enhancements.
Diffstat (limited to 'src/amd_blend.h')
-rw-r--r-- | src/amd_blend.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/amd_blend.h b/src/amd_blend.h new file mode 100644 index 0000000..6748ec0 --- /dev/null +++ b/src/amd_blend.h @@ -0,0 +1,62 @@ +#ifndef AMD_BLEND_H_ +#define AMD_BLEND_H_ + +#define GEODEPTR_FROM_PIXMAP(x) \ + GEODEPTR(xf86Screens[(x)->drawable.pScreen->myNum]) +#define GEODEPTR_FROM_SCREEN(x) \ + GEODEPTR(xf86Screens[(x)->myNum]) +#define GEODEPTR_FROM_PICTURE(x) \ + GEODEPTR(xf86Screens[(x)->pDrawable->pScreen->myNum]) + +#define usesPasses(op) ((( \ + ( 1 << PictOpAtop ) | \ + ( 1 << PictOpAtopReverse ) | \ + ( 1 << PictOpXor ) | \ + 0 ) >> (op)) & 1) + +/* pass1 or pass2 */ +#define usesSrcAlpha(op) ((( \ + ( 1 << PictOpOver ) | \ + ( 1 << PictOpInReverse ) | \ + ( 1 << PictOpOutReverse ) | \ + ( 1 << PictOpAtop ) | \ + ( 1 << PictOpAtopReverse ) | \ + ( 1 << PictOpXor ) | \ + 0 ) >> (op)) & 1) + +/* pass1 or pass2 */ +#define usesDstAlpha(op) ((( \ + ( 1 << PictOpOverReverse ) | \ + ( 1 << PictOpIn ) | \ + ( 1 << PictOpOut ) | \ + ( 1 << PictOpAtop ) | \ + ( 1 << PictOpAtopReverse ) | \ + ( 1 << PictOpXor ) | \ + 0 ) >> (op)) & 1) + +/* non 2 pass ops */ +#define usesChanB0(op) ((( \ + ( 1 << PictOpOver ) | \ + ( 1 << PictOpOverReverse ) | \ + ( 1 << PictOpIn ) | \ + ( 1 << PictOpInReverse ) | \ + ( 1 << PictOpOut ) | \ + ( 1 << PictOpOutReverse ) | \ + ( 1 << PictOpAdd ) | \ + 0 ) >> (op)) & 1) + +/* pass 1 ops */ +#define usesChanB1(op) ((( \ + ( 1 << PictOpAtop ) | \ + ( 1 << PictOpAtopReverse ) | \ + ( 1 << PictOpXor ) | \ + 0 ) >> (op)) & 1) + +/* pass 2 ops */ +#define usesChanB2(op) ((( \ + ( 1 << PictOpAtop ) | \ + ( 1 << PictOpAtopReverse ) | \ + ( 1 << PictOpXor ) | \ + 0 ) >> (op)) & 1) + +#endif |