mupen64plus-oldsvn/glN64/texture_env_combine.h

79 lines
1.8 KiB
C

#ifndef TEXTURE_ENV_COMBINE_H
#define TEXTURE_ENV_COMBINE_H
/*
** ATIX EXTENSIONS
*/
/*
** GL_ATIX_texture_env_route
**
** Support
** Rage 128 based : Not Supported
** Radeon 7xxx based : Supported
** Radeon 8xxx/9000 based : Supported
** Radeon 9500/9700 based : Supported
*/
#ifndef GL_ATIX_texture_env_route
#define GL_ATIX_texture_env_route 1
#define GL_SECONDARY_COLOR_ATIX 0x8747
#define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748
#define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749
#endif /* GL_ATIX_texture_env_route */
/*
** GL_ATIX_vertex_shader_output_point_size
**
** Support:
** Rage 128 based : Not Supported
** Radeon 7xxx based : Not Supported
** Radeon 8xxx/9000 based : Supported
** Radeon 9500/9700 based : Supported
*/
#ifndef GL_ATIX_vertex_shader_output_point_size
#define GL_ATIX_vertex_shader_output_point_size 1
#define GL_OUTPUT_POINT_SIZE_ATIX 0x610E
#endif /* GL_ATIX_vertex_shader_output_point_size */
struct TexEnvCombinerArg
{
GLenum source, operand;
};
struct TexEnvCombinerStage
{
WORD constant;
BOOL used;
GLenum combine;
TexEnvCombinerArg arg0, arg1, arg2;
WORD outputTexture;
};
struct TexEnvCombiner
{
BOOL usesT0, usesT1, usesNoise;
WORD usedUnits;
struct
{
WORD color, secondaryColor, alpha;
} vertex;
TexEnvCombinerStage color[8];
TexEnvCombinerStage alpha[8];
};
void Init_texture_env_combine();
TexEnvCombiner *Compile_texture_env_combine( Combiner *color, Combiner *alpha );
void Set_texture_env_combine( TexEnvCombiner *envCombiner );
void Update_texture_env_combine_Colors( TexEnvCombiner* );
void Uninit_texture_env_combine();
void BeginTextureUpdate_texture_env_combine();
void EndTextureUpdate_texture_env_combine();
#endif