messiah_shader.h


Provides shader related information and manipulation.

Version:
1.0
Date:
2/04/03
Topics


Data Structures

struct  FX_ModShaderGlobals_St
 User modifiable shader parameters. More...

struct  FX_ShaderGlobals_St
union  FX_ShaderParam_Un
 Shader parameter union. More...


Misc Macros



#define MAX_NUM_THREADS
 Maximum number of threads.

#define FX_IO_ID(v)
 Used to define variables that will hold the ID of a shader's input or output.


Shader Callback Types

These macros are used to identify the type of callback you are registering with the fxShaderCallback() function.


#define FX_SHADERFUNC_INIT
 Called when the shader is initialized.

#define FX_SHADERFUNC_INITINPUTS
 Called when the shader's inputs are being initialized.

#define FX_SHADERFUNC_NEWTIME
 Called each time change.

#define FX_SHADERFUNC_EVALUATE
 Called each time the shader needs to evaluate.

#define FX_SHADERFUNC_DONE
 Called when evaluation is done.


Shader IO Types

These macros represent the data types of a shader's inputs and outputs.


#define FX_IOTYPE_FLOAT
 FXfloat type.

#define FX_IOTYPE_COLOR
 FX_Color type.

#define FX_IOTYPE_VECTOR
 FX_Vector type.

#define FX_IOTYPE_POINT
 FX_Point type.

#define FX_IOTYPE_INT
 FXint type.

#define FX_IOTYPE_STRING
 FXchar[64] type.

#define FX_IOTYPE_VOID
 FXvoid * type.


Callback Signature Macros

It is recommended that you use these Callback Signature Macros to define their associated Callbacks. This will help to shield your code from changes to messiahAPI.

#define FX_SHADERINITINPUTS(f)   FXvoid f(FXshader shader, FX_ShaderGlobals *shader_globals, FX_ShaderParam *input)
#define FX_SHADEREVALUATE(f)   FXvoid f(FXshader shader, FX_ShaderGlobals *shader_globals, FX_ShaderParam *input, FX_ShaderParam *output)

Handy Macros



#define _in_opacity   input[0].f
#define _out_opacity   output[0].f

Callback Functions

The following are Callbacks that you will create and send to messiah. See Callback Types for information.

FXvoid init_inputs (FXshader shader, FX_ShaderGlobals *shader_globals, FX_ShaderParam *input)
FXvoid eval_func (FXshader shader, FX_ShaderGlobals *shader_globals, FX_ShaderParam *input, FX_ShaderParam *output)

Shader Creation Functions



FXint fxShaderCreateInput (FXshader, FXchar *name, FXint io_type, FXint flags)
FXint fxShaderCreateOutput (FXshader, FXchar *name, FXint io_type, FXint flags)
FXint fxShaderCallback (FXshader, FXint callback_type, FXvoid *callback)
FXvoidfxShaderGetTypeData (FXshader, FXint flags)
FXint fxShaderSetTypeData (FXshader, FXvoid *data, FXint flags)

Unknown



FXint fxShaderSpotToLocal (FX_ShaderGlobals *, FX_Point *world_spot, FX_Point *local_spot, FXint flags)
FXint fxShaderIncidence (FX_ShaderGlobals *, FXdouble *u, FXint flags)
FXint fxShaderLightSpot (FX_ShaderGlobals *, FX_Color *light_color, FXint flags)
FXint fxShaderSpecular (FX_ShaderGlobals *, FXdouble specular, FXdouble gloss, FX_Color *specular_color, FXint flags)

Typedefs

typedef FX_ShaderParam_Un FX_ShaderParam
 Shader parameter union.

typedef FX_ModShaderGlobals_St FX_ModShaderGlobals
 User modifiable shader parameters.

typedef FX_ShaderGlobals_St FX_ShaderGlobals


Typedef Documentation

typedef struct FX_ModShaderGlobals_St FX_ModShaderGlobals
 

User modifiable shader parameters.

Under development...

typedef union FX_ShaderParam_Un FX_ShaderParam
 

Shader parameter union.

This union is used by the FX_ModShaderGlobals type for it's elements.


© 2003 pmG WorldWide, LLC.


www.projectmessiah.com

groups.yahoo.com/pmGmessiah

Last Updated on Thu Jul 10 04:49:37 2003