All pastes #109591 Raw Edit

Mine

public text v1 · immutable
·published 2006-08-01 05:46 UTC
rendered paste body
glUseProgramObjectARB(currentProgramObject);

// Setup samplers //
int sampler1 = glGetUniformLocationARB(currentProgramObject, shaderParam);
glActiveTextureARB(GL_TEXTURE0_ARB + imgUnit);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, textureObject1);
glUniform1iARB(sampler1, imgUnit);

int sampler2 = glGetUniformLocationARB(currentProgramObject, shaderParam2);
glActiveTextureARB(GL_TEXTURE0_ARB + nextImgUnit);
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, textureObject2);
glUniform1iARB(sampler2, nextImgUnit);

// Setup vertex format pointers //
glEnableClientState(GL_VERTEX_ARRAY);
glClientActiveTextureARB(GL_TEXTURE0 + 0);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glClientActiveTextureARB(GL_TEXTURE0 + 1);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

// Bind vertex buffer //
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vertexBufferObject);
glVertexPointer(vSize, vFormat, vSize, offset);
glClientActiveTextureARB(GL_TEXTURE0 + 0);
glTexCoordPointer(txSize, txFormat, txSz, offset);
glClientActiveTextureARB(GL_TEXTURE0 + 1);
glTexCoordPointer(txSize2, txFormat2, txSz2, offset);

// Bind Index buffer //
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, indexBufferObject);

// Render //
glDrawElements(GL_TRIANGLES, indexCount, 2, offset);

// Disable shader
glUseProgramObjectARB(0);



///////////////////////////////////////////////////////////////////////////////////
vertex program
///////////////////////////////////////////////////////////////////////////////////

varying vec2 baseTexCoords;
varying vec2 lmTexCoords;

void main(void)
{
   gl_Position = ftransform();
   baseTexCoords = gl_MultiTexCoord0.xy;
   lmTexCoords = gl_MultiTexCoord1.xy;
}


//////////////////////////////////////////////////////////////////////////////
fragment program 
////////////////////////////////////////////////////////////////////////////

uniform sampler2D baseTex;
uniform sampler2D lmTex;

varying vec2 baseTexCoords;
varying vec2 lmTexCoords;

void main(void)
{
   vec4 baseCol = texture2D(baseTex, baseTexCoords);
   vec4 lmCol = texture2D(lmTex, lmTexCoords);

   gl_FragColor = baseCol * lmCol;
}