SS3DFO.H

/******************************Module*Header*******************************\ 
* Module Name: ssopengl.h
*
* Global header for the 3D Flying Objects screen saver.
*
* Copyright (c) 1994 Microsoft Corporation
*
\**************************************************************************/

#include "sscommon.h"

// redefine PI as a double for all 3dfo code
#undef PI
#define PI PI_D

#define PALETTE_PER_MATL 32
#define PALETTE_PER_DIFF 26
#define PALETTE_PER_SPEC 6
#define MATL_MAX 7

typedef struct strFACE {
POINT3D p[4];
POINT3D n[4];
POINT3D fn;
int idMatl;
} FACE;

typedef struct strMFACE {
int p[4];
int material;
POINT3D norm;
} MFACE;

typedef struct strMESH {
int numFaces;
int numPoints;
POINT3D *pts;
POINT3D *norms;
MFACE *faces;
GLint listID;
} MESH;

extern BOOL bSmoothShading;
extern BOOL bFalseColor;
extern BOOL bColorCycle;
extern float fTesselFact;
extern TEXFILE gTexFile;
extern BOOL gbBounce;

extern MATERIAL Material[];
extern int NumLights;

extern void newMesh(MESH *, int numFaces, int numPts);
extern void delMesh(MESH *);
extern void revolveSurface(MESH *, POINT3D *curve, int steps);

extern void *SaverAlloc(ULONG);
extern void SaverFree(void *);

// Resource constants

#define IDS_SAVERNAME 1002
#define IDS_FALSECOLOR 1004
#define IDS_SMOOTHSHADING 1005
#define IDS_OPTIONS 1007
#define IDS_OBJTYPE 1008
#define IDS_SCREENSAVERTITLE 1020

#define IDS_LOGO 1100
#define IDS_EXPLODE 1101
#define IDS_RIBBON 1102
#define IDS_2RIBBON 1103
#define IDS_SPLASH 1104
#define IDS_TWIST 1105
#define IDS_FLAG 1106

#define DLG_SETUP_HELP 2001
#define DLG_SETUP_TYPES 2002
#define DLG_SETUP_BITMAP 2003
#define DLG_SETUP_FCOLOR 2004
#define DLG_SETUP_SMOOTH 2005
#define DLG_SETUP_CYCLE 2006
#define DLG_SETUP_ABOUT 2007
#define DLG_SETUP_TESSEL 2008
#define DLG_SETUP_SIZE 2009
#define DLG_SETUP_TEXTURE 2010
#define IDC_STATIC_TESS 2011
#define IDC_STATIC_TESS_MIN 2012
#define IDC_STATIC_TESS_MAX 2013
#define IDC_STATIC_SIZE 2014
#define IDC_STATIC_SIZE_MIN 2015
#define IDC_STATIC_SIZE_MAX 2016

#define IDB_DEFTEX 3000

#define SHELP_CONTENTS 01
#define SHELP_SHAPES 02
#define SHELP_PASSWORD 03
#define SHELP_COLOR 04
#define SHELP_MISC 05
#define SHELP_OVERVIEW 06