core  array_cache  math  swrast  swrast_setup  tnl  tnl_dd 
Main Page   Data Structures   File List   Data Fields   Globals   Related Pages  

colormac.h File Reference

Color-related macros. More...

#include "imports.h"
#include "config.h"
#include "macros.h"

Defines

#define BYTE_TO_CHAN(b)   ((b) < 0 ? 0 : (GLchan) (b))
 Convert from GLbyte to GLchan. More...

#define UBYTE_TO_CHAN(b)   (b)
 Convert from GLubyte to GLchan. More...

#define SHORT_TO_CHAN(s)   ((s) < 0 ? 0 : (GLchan) ((s) >> 7))
 Convert from GLshort to GLchan. More...

#define USHORT_TO_CHAN(s)   ((GLchan) ((s) >> 8))
 Convert from GLushort to GLchan. More...

#define INT_TO_CHAN(i)   ((i) < 0 ? 0 : (GLchan) ((i) >> 23))
 Convert from GLint to GLchan. More...

#define UINT_TO_CHAN(i)   ((GLchan) ((i) >> 24))
 Convert from GLuint to GLchan. More...

#define CHAN_TO_UBYTE(c)   (c)
 Convert from GLchan to GLubyte. More...

#define CHAN_TO_FLOAT(c)   UBYTE_TO_FLOAT(c)
 Convert from GLchan to GLfloat. More...

#define CLAMPED_FLOAT_TO_CHAN(c, f)   CLAMPED_FLOAT_TO_UBYTE(c, f)
 Convert from GLclampf to GLchan. More...

#define UNCLAMPED_FLOAT_TO_CHAN(c, f)   UNCLAMPED_FLOAT_TO_UBYTE(c, f)
 Convert from GLfloat to GLchan. More...

#define COPY_CHAN4(DST, SRC)   COPY_4UBV(DST, SRC)
 Copy a GLchan[4] array. More...

#define CHAN_PRODUCT(a, b)   ((GLubyte) (((GLint)(a) * ((GLint)(b) + 1)) >> 8))
 Scaled product (usually approximated) between two GLchan arguments. More...

#define UNCLAMPED_FLOAT_TO_RGB_CHAN(dst, f)
 Convert 3 channels at once. More...

#define UNCLAMPED_FLOAT_TO_RGBA_CHAN(dst, f)
 Convert 4 channels at once. More...

#define PACK_COLOR_8888(R, G, B, A)   (((R) << 24) | ((G) << 16) | ((B) << 8) | (A))
#define PACK_COLOR_888(R, G, B)   (((R) << 16) | ((G) << 8) | (B))
#define PACK_COLOR_565(R, G, B)   ((((R) & 0xf8) << 8) | (((G) & 0xfc) << 3) | (((B) & 0xf8) >> 3))
#define PACK_COLOR_1555(A, B, G, R)
#define PACK_COLOR_5551(R, G, B, A)
#define PACK_COLOR_4444(R, G, B, A)   ((((R) & 0xf0) << 8) | (((G) & 0xf0) << 4) | ((B) & 0xf0) | ((A) >> 4))
#define PACK_COLOR_88(L, A)   (((L) << 8) | (A))
#define PACK_COLOR_332(R, G, B)   (((R) & 0xe0) | (((G) & 0xe0) >> 3) | (((B) & 0xc0) >> 6))
#define PACK_COLOR_233(B, G, R)   (((B) & 0xc0) | (((G) & 0xe0) >> 2) | (((R) & 0xe0) >> 5))


Detailed Description

Color-related macros.


Define Documentation

#define BYTE_TO_CHAN      ((b) < 0 ? 0 : (GLchan) (b))
 

Convert from GLbyte to GLchan.

#define CHAN_PRODUCT a,
     ((GLubyte) (((GLint)(a) * ((GLint)(b) + 1)) >> 8))
 

Scaled product (usually approximated) between two GLchan arguments.

#define CHAN_TO_FLOAT      UBYTE_TO_FLOAT(c)
 

Convert from GLchan to GLfloat.

#define CHAN_TO_UBYTE      (c)
 

Convert from GLchan to GLubyte.

#define CLAMPED_FLOAT_TO_CHAN c,
     CLAMPED_FLOAT_TO_UBYTE(c, f)
 

Convert from GLclampf to GLchan.

#define COPY_CHAN4 DST,
SRC       COPY_4UBV(DST, SRC)
 

Copy a GLchan[4] array.

#define INT_TO_CHAN i       ((i) < 0 ? 0 : (GLchan) ((i) >> 23))
 

Convert from GLint to GLchan.

#define PACK_COLOR_1555 A,
B,
G,
 
 

Value:

((((B) & 0xf8) << 7) | (((G) & 0xf8) << 2) | (((R) & 0xf8) >> 3) |      \
    ((A) ? 0x8000 : 0))

#define PACK_COLOR_233 B,
G,
     (((B) & 0xc0) | (((G) & 0xe0) >> 2) | (((R) & 0xe0) >> 5))
 

#define PACK_COLOR_332 R,
G,
B       (((R) & 0xe0) | (((G) & 0xe0) >> 3) | (((B) & 0xc0) >> 6))
 

#define PACK_COLOR_4444 R,
G,
B,
A       ((((R) & 0xf0) << 8) | (((G) & 0xf0) << 4) | ((B) & 0xf0) | ((A) >> 4))
 

#define PACK_COLOR_5551 R,
G,
B,
A   
 

Value:

((((B) & 0xf8) << 8) |                                          \
    (((G) & 0xf8) << 3) |                                               \
    (((R) & 0xf8) >> 2) |                                               \
    (((A) & 0x80) >> 7))

#define PACK_COLOR_565 R,
G,
B       ((((R) & 0xf8) << 8) | (((G) & 0xfc) << 3) | (((B) & 0xf8) >> 3))
 

#define PACK_COLOR_88 L,
A       (((L) << 8) | (A))
 

#define PACK_COLOR_888 R,
G,
B       (((R) << 16) | ((G) << 8) | (B))
 

#define PACK_COLOR_8888 R,
G,
B,
A       (((R) << 24) | ((G) << 16) | ((B) << 8) | (A))
 

#define SHORT_TO_CHAN      ((s) < 0 ? 0 : (GLchan) ((s) >> 7))
 

Convert from GLshort to GLchan.

#define UBYTE_TO_CHAN      (b)
 

Convert from GLubyte to GLchan.

#define UINT_TO_CHAN i       ((GLchan) ((i) >> 24))
 

Convert from GLuint to GLchan.

#define UNCLAMPED_FLOAT_TO_CHAN c,
     UNCLAMPED_FLOAT_TO_UBYTE(c, f)
 

Convert from GLfloat to GLchan.

#define UNCLAMPED_FLOAT_TO_RGB_CHAN dst,
 
 

Value:

do {                                            \
   UNCLAMPED_FLOAT_TO_CHAN(dst[0], f[0]);       \
   UNCLAMPED_FLOAT_TO_CHAN(dst[1], f[1]);       \
   UNCLAMPED_FLOAT_TO_CHAN(dst[2], f[2]);       \
} while (0)
Convert 3 channels at once.

Parameters:
dst  pointer to destination GLchan[3] array.
f  pointer to source GLfloat[3] array.
See also:
UNCLAMPED_FLOAT_TO_CHAN.

#define UNCLAMPED_FLOAT_TO_RGBA_CHAN dst,
 
 

Value:

do {                                            \
   UNCLAMPED_FLOAT_TO_CHAN(dst[0], f[0]);       \
   UNCLAMPED_FLOAT_TO_CHAN(dst[1], f[1]);       \
   UNCLAMPED_FLOAT_TO_CHAN(dst[2], f[2]);       \
   UNCLAMPED_FLOAT_TO_CHAN(dst[3], f[3]);       \
} while (0)
Convert 4 channels at once.

Parameters:
dst  pointer to destination GLchan[4] array.
f  pointer to source GLfloat[4] array.
See also:
UNCLAMPED_FLOAT_TO_CHAN.

#define USHORT_TO_CHAN      ((GLchan) ((s) >> 8))
 

Convert from GLushort to GLchan.


Generated on Sun May 16 15:55:11 2004 for Mesa Core by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001