home *** CD-ROM | disk | FTP | other *** search
/ The Utilities Experience / The Utilities Experience - Volume 1.iso / software / misc / o-z / x-windows / mesa-amiwin / src / foo.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-04  |  1.2 KB  |  53 lines

  1.  
  2. #include "context.h"
  3. #include "xmesaP.h"
  4.  
  5.  
  6. #define COLOR_SPAN_ARGS    GLuint n, GLint x, GLint y,            \
  7.             const GLubyte red[], const GLubyte green[],    \
  8.             const GLubyte blue[], const GLubyte alpha[],    \
  9.             const GLubyte mask[]
  10.  
  11.  
  12. void write_span_8A8B8G8R_ximage1( COLOR_SPAN_ARGS )
  13. {
  14.    register GLuint i;
  15.    register GLuint *ptr;
  16.    ptr = (GLuint *) XMesa->backimage->data + OFFSET4(x,y);
  17.    if (mask) {
  18.       for (i=0;i<n;i++) {
  19.          if (mask[i]) {
  20.             ptr[i] = (alpha[i] << 24) | (blue[i] << 16) | (green[i] << 8) | red[i];
  21.          }
  22.       }
  23.    }
  24.    else {
  25.       /* draw all pixels */
  26.       for (i=0;i<n;i++) {
  27.          ptr[i] = (alpha[i] << 24) | (blue[i] << 16) | (green[i] << 8) | red[i];
  28.       }
  29.    }
  30. }
  31.  
  32.  
  33. void write_span_8A8B8G8R_ximage2( COLOR_SPAN_ARGS )
  34. {
  35.    register GLuint i;
  36.    register GLuint *ptr;
  37.    ptr = (GLuint *) XMesa->backimage->data + OFFSET4(x,y);
  38.    if (mask) {
  39.       for (i=0;i<n;i++,ptr++, alpha++,blue++,green++,red++) {
  40.          if (mask[i]) {
  41.             *ptr = (*alpha << 24) | (*blue << 16) | (*green << 8) | *red;
  42.          }
  43.       }
  44.    }
  45.    else {
  46.       /* draw all pixels */
  47.       for (i=0;i<n;i++,ptr++, alpha++,blue++,green++,red++) {
  48.          *ptr = (*alpha << 24) | (*blue << 16) | (*green << 8) | *red;
  49.       }
  50.    }
  51. }
  52.  
  53.