![]() |
Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members
![]() |
Go to the source code of this file.
Namespaces | |
FX | |
Macros | |
#define | TRUE 1 |
#define | FALSE 0 |
#define | MAYBE 2 |
#define | NULL 0 |
#define | PI 3.1415926535897932384626433833 |
#define | EULER 2.7182818284590452353602874713 |
#define | DTOR 0.0174532925199432957692369077 |
#define | RTOD 57.295779513082320876798154814 |
#define | PATHSEP '/' |
#define | PATHSEPSTRING "/" |
#define | PATHLISTSEP ':' |
#define | PATHLISTSEPSTRING ":" |
#define | ISPATHSEP(c) ((c)=='/') |
#define | ENDLINE "\n" |
#define | FXLOCAL |
#define | FXEXPORT |
#define | FXIMPORT |
#define | FXAPI |
#define | FXTEMPLATE_EXTERN |
#define | FX_PRINTF(fmt, arg) |
#define | FX_SCANF(fmt, arg) |
#define | FXABS(val) (((val)>=0)?(val):-(val)) |
#define | FXMAX(a, b) (((a)>(b))?(a):(b)) |
#define | FXMIN(a, b) (((a)>(b))?(b):(a)) |
#define | FXMIN3(x, y, z) ((x)<(y)?FXMIN(x,z):FXMIN(y,z)) |
#define | FXMAX3(x, y, z) ((x)>(y)?FXMAX(x,z):FXMAX(y,z)) |
#define | FXMIN4(x, y, z, w) (FXMIN(FXMIN(x,y),FXMIN(z,w))) |
#define | FXMAX4(x, y, z, w) (FXMAX(FXMAX(x,y),FXMAX(z,w))) |
#define | FXMINMAX(lo, hi, a, b) ((a)<(b)?((lo)=(a),(hi)=(b)):((lo)=(b),(hi)=(a))) |
#define | FXCLAMP(lo, x, hi) ((x)<(lo)?(lo):((x)>(hi)?(hi):(x))) |
#define | FXSWAP(a, b, t) ((t)=(a),(a)=(b),(b)=(t)) |
#define | FXLERP(a, b, f) ((a)+((b)-(a))*(f)) |
#define | STRUCTOFFSET(str, member) (((char *)(&(((str *)0)->member)))-((char *)0)) |
#define | ARRAYNUMBER(array) (sizeof(array)/sizeof(array[0])) |
#define | CONTAINER(ptr, str, mem) ((str*)(((char*)(ptr))-STRUCTOFFSET(str,mem))) |
#define | MKUINT(l, h) ((((FX::FXuint)(l))&0xffff) | (((FX::FXuint)(h))<<16)) |
#define | FXSEL(type, id) ((((FX::FXuint)(id))&0xffff) | (((FX::FXuint)(type))<<16)) |
#define | FXSELTYPE(s) ((FX::FXushort)(((s)>>16)&0xffff)) |
#define | FXSELID(s) ((FX::FXushort)((s)&0xffff)) |
#define | FXBITREVERSE(b) (((b&0x01)<<7)|((b&0x02)<<5)|((b&0x04)<<3)|((b&0x08)<<1)|((b&0x10)>>1)|((b&0x20)>>3)|((b&0x40)>>5)|((b&0x80)>>7)) |
#define | FXISUTF(c) (((c)&0xC0)!=0x80) |
#define | FXRGBA(r, g, b, a) (((FX::FXuint)(FX::FXuchar)(r)) | ((FX::FXuint)(FX::FXuchar)(g)<<8) | ((FX::FXuint)(FX::FXuchar)(b)<<16) | ((FX::FXuint)(FX::FXuchar)(a)<<24)) |
#define | FXRGB(r, g, b) (((FX::FXuint)(FX::FXuchar)(r)) | ((FX::FXuint)(FX::FXuchar)(g)<<8) | ((FX::FXuint)(FX::FXuchar)(b)<<16) | 0xff000000) |
#define | FXREDVAL(rgba) ((FX::FXuchar)((rgba)&0xff)) |
#define | FXGREENVAL(rgba) ((FX::FXuchar)(((rgba)>>8)&0xff)) |
#define | FXBLUEVAL(rgba) ((FX::FXuchar)(((rgba)>>16)&0xff)) |
#define | FXALPHAVAL(rgba) ((FX::FXuchar)(((rgba)>>24)&0xff)) |
#define | FXRGBACOMPVAL(rgba, comp) ((FX::FXuchar)(((rgba)>>((comp)<<3))&0xff)) |
#define | FXASSERT(exp) ((exp)?((void)0):(void)FX::fxassert(#exp,__FILE__,__LINE__)) |
#define | FXTRACE(arguments) FX::fxtrace arguments |
#define | FXMALLOC(ptr, type, no) (FX::fxmalloc((void **)(ptr),sizeof(type)*(no))) |
#define | FXCALLOC(ptr, type, no) (FX::fxcalloc((void **)(ptr),sizeof(type)*(no))) |
#define | FXRESIZE(ptr, type, no) (FX::fxresize((void **)(ptr),sizeof(type)*(no))) |
#define | FXMEMDUP(ptr, src, type, no) (FX::fxmemdup((void **)(ptr),(const void*)(src),sizeof(type)*(no))) |
#define | FXFREE(ptr) (FX::fxfree((void **)(ptr))) |
#define | fabsf(x) ((float)fabs((double)(x))) |
#define | ceilf(x) ((float)ceil((double)(x))) |
#define | floorf(x) ((float)floor((double)(x))) |
#define | fmodf(x, y) ((float)fmod((double)(x),(double)(y))) |
#define | sqrtf(x) ((float)sqrt((double)(x))) |
#define | sinf(x) ((float)sin((double)(x))) |
#define | cosf(x) ((float)cos((double)(x))) |
#define | tanf(x) ((float)tan((double)(x))) |
#define | asinf(x) ((float)asin((double)(x))) |
#define | acosf(x) ((float)acos((double)(x))) |
#define | atanf(x) ((float)atan((double)(x))) |
#define | atan2f(y, x) ((float)atan2((double)(y),(double)(x))) |
#define | powf(x, y) ((float)pow((double)(x),(double)(y))) |
#define | expf(x) ((float)exp((double)(x))) |
#define | logf(x) ((float)log((double)(x))) |
#define | log10f(x) ((float)log10((double)(x))) |
Typedefs | |
typedef char | FX::FXchar |
typedef unsigned char | FX::FXuchar |
typedef FXuchar | FX::FXbool |
typedef unsigned short | FX::FXushort |
typedef short | FX::FXshort |
typedef unsigned int | FX::FXuint |
typedef int | FX::FXint |
typedef float | FX::FXfloat |
typedef double | FX::FXdouble |
typedef FXObject * | FX::FXObjectPtr |
typedef wchar_t | FX::FXwchar |
typedef unsigned short | FX::FXnchar |
typedef long | FX::FXival |
typedef unsigned long | FX::FXuval |
typedef unsigned long | FX::FXID |
typedef long | FX::FXTime |
typedef unsigned long | FX::FXPixel |
typedef FXuint | FX::FXColor |
typedef FXuint | FX::FXHotKey |
typedef FXID | FX::FXDragType |
typedef FXint | FX::FXInputHandle |
typedef _XEvent | FX::FXRawEvent |
Functions | |
FXuint | FX::fxrandom (FXuint &seed) |
FXint | FX::fxmalloc (void **ptr, unsigned long size) |
FXint | FX::fxcalloc (void **ptr, unsigned long size) |
FXint | FX::fxresize (void **ptr, unsigned long size) |
FXint | FX::fxmemdup (void **ptr, const void *src, unsigned long size) |
void | FX::fxfree (void **ptr) |
void | FX::fxerror (const char *format,...) FX_PRINTF(1 |
void void | FX::fxwarning (const char *format,...) FX_PRINTF(1 |
void void void | FX::fxmessage (const char *format,...) FX_PRINTF(1 |
void void void void | FX::fxassert (const char *expression, const char *filename, unsigned int lineno) |
void | FX::fxtrace (unsigned int level, const char *format,...) FX_PRINTF(2 |
void void | FX::fxsleep (unsigned int n) |
bool | FX::fxfilematch (const char *pattern, const char *string, FXuint flags=(FILEMATCH_NOESCAPE|FILEMATCH_FILE_NAME)) |
FXColor | FX::makeHiliteColor (FXColor clr) |
FXColor | FX::makeShadowColor (FXColor clr) |
FXint | FX::fxgetpid () |
bool | FX::fxtoDOS (FXchar *&string, FXint &len) |
bool | FX::fxfromDOS (FXchar *&string, FXint &len) |
FXchar * | FX::fxstrdup (const FXchar *str) |
FXuint | FX::fxstrhash (const FXchar *str) |
FXColor | FX::fxcolorfromname (const FXchar *colorname) |
FXchar * | FX::fxnamefromcolor (FXchar *colorname, FXColor color) |
void | FX::fxrgb_to_hsv (FXfloat &h, FXfloat &s, FXfloat &v, FXfloat r, FXfloat g, FXfloat b) |
void | FX::fxhsv_to_rgb (FXfloat &r, FXfloat &g, FXfloat &b, FXfloat h, FXfloat s, FXfloat v) |
FXint | FX::fxieeefloatclass (FXfloat number) |
FXint | FX::fxieeedoubleclass (FXdouble number) |
FXwchar | FX::fxkeysym2ucs (FXwchar sym) |
FXwchar | FX::fxucs2keysym (FXwchar ucs) |
FXint | FX::fxparsegeometry (const FXchar *string, FXint &x, FXint &y, FXint &w, FXint &h) |
FXbool | FX::fxisconsole (const FXchar *path) |
FXwchar | FX::wc (const FXchar *ptr) |
FXwchar | FX::wc (const FXnchar *ptr) |
FXint | FX::wclen (const FXchar *ptr) |
FXint | FX::wclen (const FXnchar *ptr) |
FXint | FX::wcvalidate (const FXchar *string, FXint pos) |
FXint | FX::wcvalidate (const FXnchar *string, FXint pos) |
FXint | FX::wcinc (const FXchar *string, FXint pos) |
FXint | FX::wcinc (const FXnchar *string, FXint pos) |
FXint | FX::wcdec (const FXchar *string, FXint pos) |
FXint | FX::wcdec (const FXnchar *string, FXint pos) |
FXint | FX::utfslen (const FXwchar *str, FXint n) |
FXint | FX::utfslen (const FXwchar *str) |
FXint | FX::utfslen (const FXnchar *str, FXint n) |
FXint | FX::utfslen (const FXnchar *str) |
FXint | FX::wcslen (const FXchar *str, FXint n) |
FXint | FX::wcslen (const FXchar *str) |
FXint | FX::ncslen (const FXchar *str, FXint n) |
FXint | FX::ncslen (const FXchar *str) |
FXint | FX::utf2wcs (FXwchar *dst, const FXchar *src, FXint n) |
FXint | FX::utf2wcs (FXwchar *dst, const FXchar *src) |
FXint | FX::utf2ncs (FXnchar *dst, const FXchar *src, FXint n) |
FXint | FX::utf2ncs (FXnchar *dst, const FXchar *src) |
FXint | FX::wc2utfs (FXchar *dst, const FXwchar *src, FXint n) |
FXint | FX::wc2utfs (FXchar *dst, const FXwchar *src) |
FXint | FX::nc2utfs (FXchar *dst, const FXnchar *src, FXint n) |
FXint | FX::nc2utfs (FXchar *dst, const FXnchar *src) |
Variables | |
const FXuchar | FX::fxversion [3] |
unsigned int | FX::fxTraceLevel |
#define TRUE 1 |
#define FALSE 0 |
#define MAYBE 2 |
#define NULL 0 |
Referenced by FX::FXArray< TYPE >::adopt(), FX::FXDataTarget::connect(), FX::FXHash::empty(), and FX::FXText::isStyled().
#define PI 3.1415926535897932384626433833 |
Pi.
#define EULER 2.7182818284590452353602874713 |
Euler constant.
#define DTOR 0.0174532925199432957692369077 |
Multiplier for degrees to radians.
#define RTOD 57.295779513082320876798154814 |
Multiplier for radians to degrees.
#define PATHSEP '/' |
#define PATHSEPSTRING "/" |
#define PATHLISTSEP ':' |
#define PATHLISTSEPSTRING ":" |
#define ISPATHSEP | ( | c | ) | ((c)=='/') |
#define ENDLINE "\n" |
#define FXLOCAL |
#define FXEXPORT |
#define FXIMPORT |
#define FXAPI |
#define FXTEMPLATE_EXTERN |
#define FX_PRINTF | ( | fmt, | |
arg | |||
) |
#define FX_SCANF | ( | fmt, | |
arg | |||
) |
#define FXABS | ( | val | ) | (((val)>=0)?(val):-(val)) |
Abolute value.
#define FXMAX | ( | a, | |
b | |||
) | (((a)>(b))?(a):(b)) |
Return the maximum of a or b.
Referenced by FX::hi().
#define FXMIN | ( | a, | |
b | |||
) | (((a)>(b))?(b):(a)) |
Return the minimum of a or b.
Referenced by FX::lo().
Return the maximum of of x, y, z, and w.
#define FXMINMAX | ( | lo, | |
hi, | |||
a, | |||
b | |||
) | ((a)<(b)?((lo)=(a),(hi)=(b)):((lo)=(b),(hi)=(a))) |
Return minimum and maximum of a, b.
#define FXCLAMP | ( | lo, | |
x, | |||
hi | |||
) | ((x)<(lo)?(lo):((x)>(hi)?(hi):(x))) |
Clamp value x to range [lo..hi].
Referenced by FX::FXVec2d::clamp(), FX::FXVec2f::clamp(), FX::FXVec4d::clamp(), FX::FXVec3f::clamp(), FX::FXVec3d::clamp(), and FX::FXVec4f::clamp().
#define FXSWAP | ( | a, | |
b, | |||
t | |||
) | ((t)=(a),(a)=(b),(b)=(t)) |
Swap a pair of numbers.
#define FXLERP | ( | a, | |
b, | |||
f | |||
) | ((a)+((b)-(a))*(f)) |
Linear interpolation between a and b, where 0<=f<=1.
#define STRUCTOFFSET | ( | str, | |
member | |||
) | (((char *)(&(((str *)0)->member)))-((char *)0)) |
Offset of member in a structure.
#define ARRAYNUMBER | ( | array | ) | (sizeof(array)/sizeof(array[0])) |
Number of elements in a static array.
#define CONTAINER | ( | ptr, | |
str, | |||
mem | |||
) | ((str*)(((char*)(ptr))-STRUCTOFFSET(str,mem))) |
Container class of a member class.
#define MKUINT | ( | l, | |
h | |||
) | ((((FX::FXuint)(l))&0xffff) | (((FX::FXuint)(h))<<16)) |
Make int out of two shorts.
#define FXSEL | ( | type, | |
id | |||
) | ((((FX::FXuint)(id))&0xffff) | (((FX::FXuint)(type))<<16)) |
Make selector from message type and message id.
#define FXSELTYPE | ( | s | ) | ((FX::FXushort)(((s)>>16)&0xffff)) |
Get type from selector.
#define FXSELID | ( | s | ) | ((FX::FXushort)((s)&0xffff)) |
Get ID from selector.
#define FXBITREVERSE | ( | b | ) | (((b&0x01)<<7)|((b&0x02)<<5)|((b&0x04)<<3)|((b&0x08)<<1)|((b&0x10)>>1)|((b&0x20)>>3)|((b&0x40)>>5)|((b&0x80)>>7)) |
Reverse bits in byte.
#define FXISUTF | ( | c | ) | (((c)&0xC0)!=0x80) |
Test if character c is at the start of a utf8 sequence.
#define FXRGBA | ( | r, | |
g, | |||
b, | |||
a | |||
) | (((FX::FXuint)(FX::FXuchar)(r)) | ((FX::FXuint)(FX::FXuchar)(g)<<8) | ((FX::FXuint)(FX::FXuchar)(b)<<16) | ((FX::FXuint)(FX::FXuchar)(a)<<24)) |
Make RGBA color.
#define FXRGB | ( | r, | |
g, | |||
b | |||
) | (((FX::FXuint)(FX::FXuchar)(r)) | ((FX::FXuint)(FX::FXuchar)(g)<<8) | ((FX::FXuint)(FX::FXuchar)(b)<<16) | 0xff000000) |
Make RGB color.
#define FXREDVAL | ( | rgba | ) | ((FX::FXuchar)((rgba)&0xff)) |
Get red value from RGBA color.
#define FXGREENVAL | ( | rgba | ) | ((FX::FXuchar)(((rgba)>>8)&0xff)) |
Get green value from RGBA color.
#define FXBLUEVAL | ( | rgba | ) | ((FX::FXuchar)(((rgba)>>16)&0xff)) |
Get blue value from RGBA color.
#define FXALPHAVAL | ( | rgba | ) | ((FX::FXuchar)(((rgba)>>24)&0xff)) |
Get alpha value from RGBA color.
#define FXRGBACOMPVAL | ( | rgba, | |
comp | |||
) | ((FX::FXuchar)(((rgba)>>((comp)<<3))&0xff)) |
Get component value of RGBA color.
#define FXASSERT | ( | exp | ) | ((exp)?((void)0):(void)FX::fxassert(#exp,__FILE__,__LINE__)) |
FXASSERT() prints out a message when the expression fails, and nothing otherwise.
Unlike assert(), FXASSERT() will not terminate the execution of the application. When compiling your application for release, all assertions are compiled out; thus there is no impact on execution speed.
#define FXTRACE | ( | arguments | ) | FX::fxtrace arguments |
FXTRACE() allows you to trace the execution of your application with increasing levels of detail the higher the trace level.
The trace level is determined by variable fxTraceLevel, which may be set from the command line with "-tracelevel <level>". When compiling your application for release, all trace statements are compiled out, just like FXASSERT. A statement like: FXTRACE((10,"The value of x=%d\n",x)) will generate output only if fxTraceLevel is set to 11 or greater. The default value fxTraceLevel=0 will block all trace outputs. Note the double parentheses!
#define FXMALLOC | ( | ptr, | |
type, | |||
no | |||
) | (FX::fxmalloc((void **)(ptr),sizeof(type)*(no))) |
Allocate a memory block of no elements of type and store a pointer to it into the address pointed to by ptr.
Return FALSE if size!=0 and allocation fails, TRUE otherwise. An allocation of a zero size block returns a NULL pointer.
#define FXCALLOC | ( | ptr, | |
type, | |||
no | |||
) | (FX::fxcalloc((void **)(ptr),sizeof(type)*(no))) |
Allocate a zero-filled memory block no elements of type and store a pointer to it into the address pointed to by ptr.
Return FALSE if size!=0 and allocation fails, TRUE otherwise. An allocation of a zero size block returns a NULL pointer.
#define FXRESIZE | ( | ptr, | |
type, | |||
no | |||
) | (FX::fxresize((void **)(ptr),sizeof(type)*(no))) |
Resize the memory block referred to by the pointer at the address ptr, to a hold no elements of type.
Returns FALSE if size!=0 and reallocation fails, TRUE otherwise. If reallocation fails, pointer is left to point to old block; a reallocation to a zero size block has the effect of freeing it. The ptr argument must be the address where the pointer to the allocated block is to be stored.
#define FXMEMDUP | ( | ptr, | |
src, | |||
type, | |||
no | |||
) | (FX::fxmemdup((void **)(ptr),(const void*)(src),sizeof(type)*(no))) |
Allocate and initialize memory from another block.
Return FALSE if size!=0 and source!=NULL and allocation fails, TRUE otherwise. An allocation of a zero size block returns a NULL pointer. The ptr argument must be the address where the pointer to the allocated block is to be stored.
#define FXFREE | ( | ptr | ) | (FX::fxfree((void **)(ptr))) |
Free a block of memory allocated with either FXMALLOC, FXCALLOC, FXRESIZE, or FXMEMDUP.
It is OK to call free a NULL pointer. The argument must be the address of the pointer to the block to be released. The pointer is set to NULL to prevent any further references to the block after releasing it.
#define fabsf | ( | x | ) | ((float)fabs((double)(x))) |
These are some of the ISO C99 standard single-precision transcendental functions.
On LINUX, specify _GNU_SOURCE or _ISOC99_SOURCE to enable native implementation; otherwise, these macros will be used. Apple OS-X implements fabsf(x), ceilf(x), floorf(x), and fmodf(x,y). Define FLOAT_MATH_FUNCTIONS if these functions are available in some other library you're linking to.
#define ceilf | ( | x | ) | ((float)ceil((double)(x))) |
#define floorf | ( | x | ) | ((float)floor((double)(x))) |
#define fmodf | ( | x, | |
y | |||
) | ((float)fmod((double)(x),(double)(y))) |
#define sqrtf | ( | x | ) | ((float)sqrt((double)(x))) |
Referenced by FX::FXVec2f::length(), FX::FXVec4f::length(), and FX::FXVec3f::length().
#define sinf | ( | x | ) | ((float)sin((double)(x))) |
#define cosf | ( | x | ) | ((float)cos((double)(x))) |
#define tanf | ( | x | ) | ((float)tan((double)(x))) |
#define asinf | ( | x | ) | ((float)asin((double)(x))) |
#define acosf | ( | x | ) | ((float)acos((double)(x))) |
#define atanf | ( | x | ) | ((float)atan((double)(x))) |
#define atan2f | ( | y, | |
x | |||
) | ((float)atan2((double)(y),(double)(x))) |
#define powf | ( | x, | |
y | |||
) | ((float)pow((double)(x),(double)(y))) |
#define expf | ( | x | ) | ((float)exp((double)(x))) |
#define logf | ( | x | ) | ((float)log((double)(x))) |
#define log10f | ( | x | ) | ((float)log10((double)(x))) |
![]() |