home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 February
/
Chip_2001-02_cd1.bin
/
bonus
/
demos
/
CS
/
exp
/
SOURCES
/
GLENGINE
/
macros.h
< prev
next >
Wrap
C/C++ Source or Header
|
2000-07-16
|
1KB
|
32 lines
/*
* Useful macros.
*/
#ifndef __OGL2_MACROS_H__
#define __OGL2_MACROS_H__
#define UBYTE_TO_FLOAT(B) ((GLfloat) (B) * (1.0F / 255.0F))
#define BYTE_TO_FLOAT(B) ((2.0F * (B) + 1.0F) * (1.0F/255.0F))
#define USHORT_TO_FLOAT(S) ((GLfloat) (S) * (1.0F / 65535.0F))
#define SHORT_TO_FLOAT(S) ((2.0F * (S) + 1.0F) * (1.0F/65535.0F))
#define UINT_TO_FLOAT(U) ((GLfloat) (U) * (1.0F / 4294967295.0F))
#define INT_TO_FLOAT(I) ((2.0F * (I) + 1.0F) * (1.0F/4294967294.0F))
inline void SetVector3 (GLfloat* v, GLfloat x, GLfloat y, GLfloat z) {
v[0] = x; v[1] = y; v[2] = z;
}
inline void SetVector4 (GLfloat* v, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
v[0] = x; v[1] = y; v[2] = z; v[3] = w;
}
inline void SetVector3 (GLfloat* v, GLubyte x, GLubyte y, GLubyte z) {
v[0] = UBYTE_TO_FLOAT(x); v[1] = UBYTE_TO_FLOAT(y);
v[2] = UBYTE_TO_FLOAT(z);
}
inline void SetVector4 (GLfloat* v, GLubyte x, GLubyte y, GLubyte z, GLubyte w) {
v[0] = UBYTE_TO_FLOAT(x); v[1] = UBYTE_TO_FLOAT(y);
v[2] = UBYTE_TO_FLOAT(z); v[3] = UBYTE_TO_FLOAT(w);
}
#endif