28 #include "../idlib/precompiled.h"
45 static int FPROG_FAST_PATH = 255;
101 RB_R200_ARB_DrawInteraction( &d );
127 static const float zero[4] = { 0, 0, 0, 0 };
128 static const float one[4] = { 1, 1, 1, 1 };
129 static const float negOne[4] = { -1, -1, -1, -1 };
201 static void RB_R200_ARB_CreateDrawInteractions(
const drawSurf_t *surf ) {
223 #if defined( MACOS_X )
263 #if defined( MACOS_X )
283 if ( vLight->lightShader->IsFogLight() ) {
286 if ( vLight->lightShader->IsBlendLight() ) {
292 RB_LogComment(
"---------- RB_RenderViewLight 0x%p ----------\n", vLight );
295 if ( vLight->globalShadows || vLight->localShadows ) {
316 RB_R200_ARB_CreateDrawInteractions( vLight->localInteractions );
322 RB_R200_ARB_CreateDrawInteractions( vLight->globalInteractions );
327 RB_R200_ARB_CreateDrawInteractions( vLight->localInteractions );
330 RB_R200_ARB_CreateDrawInteractions( vLight->globalInteractions );
342 RB_R200_ARB_CreateDrawInteractions( vLight->translucentInteractions );
352 static void R_BuildSurfaceFragmentProgram(
int programNum ) {
425 float data[4] = { 0.75, 0.75, 0.75, 0.75 };
468 GL_ZERO, GL_NONE, GL_NONE );
483 common->
Printf(
"----------- R200_Init -----------\n" );
511 R_BuildSurfaceFragmentProgram( FPROG_FAST_PATH );
const int GLS_DSTBLEND_ONE
GLint numFragmentConstants
#define qglTexCoordPointer
const srfTriangles_t * geo
const int GLS_DEPTHFUNC_LESS
#define GL_NUM_INSTRUCTIONS_TOTAL_ATI
#define qglEnableClientState
#define qglDisableClientState
void GL_CheckErrors(void)
stageVertexColor_t vertexColor
idCVar r_skipTranslucent("r_skipTranslucent","0", CVAR_RENDERER|CVAR_BOOL,"skip the translucent interaction rendering")
void RB_R200_DrawInteractions(void)
idCVar r_useShadowVertexProgram("r_useShadowVertexProgram","1", CVAR_RENDERER|CVAR_BOOL,"do the shadow projection in the vertex program on capable cards")
#define GL_FRAGMENT_SHADER_ATI
PFNGLENDFRAGMENTSHADERATIPROC qglEndFragmentShaderATI
PFNGLSAMPLEMAPATIPROC qglSampleMapATI
PFNGLCOLORFRAGMENTOP2ATIPROC qglColorFragmentOp2ATI
#define GL_NUM_FRAGMENT_CONSTANTS_ATI
PFNGLALPHAFRAGMENTOP1ATIPROC qglAlphaFragmentOp1ATI
PFNGLBINDFRAGMENTSHADERATIPROC qglBindFragmentShaderATI
#define GL_NUM_LOOPBACK_COMPONENTS_ATI
#define GL_SWIZZLE_STR_ATI
const idMaterial * material
const viewEntity_t * currentSpace
PFNGLCOLORFRAGMENTOP1ATIPROC qglColorFragmentOp1ATI
const int GLS_DEPTHFUNC_EQUAL
void RB_CreateSingleDrawInteractions(const drawSurf_t *surf, void(*DrawInteraction)(const drawInteraction_t *))
struct viewLight_s * next
idImage * ambientNormalMap
struct viewLight_s * viewLights
materialCoverage_t Coverage(void) const
PFNGLPASSTEXCOORDATIPROC qglPassTexCoordATI
#define GL_COLOR_ALPHA_PAIRING_ATI
idImage * normalCubeMapImage
bool ARBVertexBufferObjectAvailable
idImage * lightFalloffImage
#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI
PFNGLBINDPROGRAMARBPROC qglBindProgramARB
GLint numInstructionsPerPass
GLint numInstructionsTotal
GLsizei GLsizei GLenum GLenum const GLvoid * data
int GetInteger(void) const
const int GLS_SRCBLEND_ONE
idImageManager * globalImages
bool ARBVertexProgramAvailable
static idCVar image_useNormalCompression
GLint numLoopbackComponenets
#define GL_SATURATE_BIT_ATI
bool atiFragmentShaderAvailable
virtual void Printf(const char *fmt,...) id_attribute((format(printf
#define GL_NUM_FRAGMENT_REGISTERS_ATI
void RB_DrawElementsWithCounters(const srfTriangles_t *tri)
const float * ToFloatPtr(void) const
#define GL_PRIMARY_COLOR_ARB
void RB_LogComment(const char *comment,...)
#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI
idVec4 lightProjection[4]
void * Position(vertCache_t *buffer)
PFNGLSETFRAGMENTSHADERCONSTANTATIPROC qglSetFragmentShaderConstantATI
const struct drawSurf_s * nextOnLight
#define GL_VERTEX_PROGRAM_ARB
PFNGLPROGRAMENVPARAMETER4FVARBPROC qglProgramEnvParameter4fvARB
GLint numInputInterpolatorComponents
GLint numFragmentRegisters
#define GL_SWIZZLE_STQ_DQ_ATI
#define GL_TEXT_FRAGMENT_SHADER_ATI
idVertexCache vertexCache
void GL_State(int stateBits)
void RB_StencilShadowPass(const drawSurf_t *drawSurfs)
PFNGLCOLORFRAGMENTOP3ATIPROC qglColorFragmentOp3ATI
idCVar r_useScissor("r_useScissor","1", CVAR_RENDERER|CVAR_BOOL,"scissor clip as portals and lights are processed")
void GL_SelectTexture(int unit)
PFNGLBEGINFRAGMENTSHADERATIPROC qglBeginFragmentShaderATI
idScreenRect currentScissor
#define GL_NUM_PASSES_ATI
const viewDef_t * viewDef