Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/**********************************Module**********************************\
* * ssflwbox.h * * 3D FlowerBox screen saver * Base header file * * History: * Wed Jul 19 14:50:27 1995 -by- Drew Bliss [drewb] * Created * * Copyright (c) 1995 Microsoft Corporation * \**************************************************************************/
#ifndef __SSFLWBOX_H__
#define __SSFLWBOX_H__
#ifndef PI
#define PI 3.14159265358979323846
#endif
// Minimum and maximum number of side subdivisions
#define MINSUBDIV 2
#define MAXSUBDIV 10
// Maximum values allowed
#define MAXSIDES 8
#define MAXSPTS ((MAXSUBDIV+1)*(MAXSUBDIV+1))
#define MAXPTS (MAXSIDES*MAXSPTS)
#define MAXSFACES (MAXSUBDIV*MAXSUBDIV)
#define MAXFACES (MAXSIDES*MAXSFACES)
#define MAXFPTS 4
// Number of colors used in checkerboarding
#define NCCOLS 2
// Allow floating point type configurability
typedef GLfloat FLT; typedef struct { FLT x, y, z; } PT3;
// Configurable options
typedef struct _CONFIG { BOOL smooth_colors; BOOL triangle_colors; BOOL cycle_colors; BOOL spin; BOOL bloom; int subdiv; int color_pick; int image_size; int geom; int two_sided; } CONFIG;
extern CONFIG config;
extern GLfloat checker_cols[MAXSIDES][NCCOLS][4]; extern GLfloat side_cols[MAXSIDES][4]; extern GLfloat solid_cols[4];
#if defined(assert)
#undef assert
#endif
#if DBG
#define dprintf(args) dprintf_out args
void dprintf_out(char *fmt, ...); #define assert(e) if (!(e)) assert_failed(__FILE__, __LINE__, #e); else 0
void assert_failed(char *file, int line, char *msg); #else
#define dprintf(args)
#define assert(e)
#endif
#define DIMA(a) (sizeof(a)/sizeof(a[0]))
/******************************Public*Routine******************************\
* * Basic vector math macros * * History: * Wed Jul 19 14:49:49 1995 -by- Drew Bliss [drewb] * Created * \**************************************************************************/
#define V3Sub(a, b, r) \
((r)->x = (a)->x-(b)->x, (r)->y = (a)->y-(b)->y, (r)->z = (a)->z-(b)->z) #define V3Add(a, b, r) \
((r)->x = (a)->x+(b)->x, (r)->y = (a)->y+(b)->y, (r)->z = (a)->z+(b)->z) #define V3Cross(a, b, r) \
((r)->x = (a)->y*(b)->z-(b)->y*(a)->z,\ (r)->y = (a)->z*(b)->x-(b)->z*(a)->x,\ (r)->z = (a)->x*(b)->y-(b)->x*(a)->y) extern FLT V3Len(PT3 *v);
#endif // __SSFLWBOX_H__
|