NAME

cgSetEffectParameterBuffer - sets a Cg buffer to every program in the effect that uses the passed effect buffer parameter.

SYNOPSIS

  #include <Cg/cg.h>

  void cgSetEffectParameterBuffer(CGparameter param, 
                                  CGbuffer buffer)

PARAMETERS

param

The effect parameter used by programs in the effect as a buffer parameter.

buffer

The Cg buffer being set to param for each program in the effect that uses param.

RETURN VALUES

None.

DESCRIPTION

cgSetEffectParameterBuffer allows the application with a single API call to set a Cg buffer to an effect parameter using the BUFFER semantic for each program in the effect that uses this effect parameter.

cgSetEffectParameterBuffer does the equivalent of the following:

  CGtechnique technique = cgGetFirstTechnique(myCgEffect);
  for(; technique; technique = cgGetNextTechnique(technique))
  {
    if(!cgIsTechniqueValidated(technique))
      continue;

    CGpass pass = cgGetFirstPass(technique);
    for(; pass; pass = cgiGetNextPass(pass))
    {
      for(int i = 0; i < numDomains; ++i)
      {
        CGprogram prog = cgGetPassProgram(pass, domains[i]);
        if(!prog)
          continue;

        CGparameter param = cgGetNamedParameter(prog, "paramName");
        CGbool isUsed = cgIsParameterUsed(param, prog);
        if(isUsed == CG_FALSE)
          continue;

        int idx = cgGetParameterBufferIndex(param);
        if(idx < 0)
          continue;

        cgSetProgramBuffer(prog, idx, myCgBuffer);
      }
    }
  }

EXAMPLES

  cgSetEffectParameterBuffer(cgGetNamedEffectParameter(myCgEffect, "paramName"), myCgBuffer);
  
  See examples/OpenGL/advanced/cgfx_buffer_lighting.

ERRORS

CG_INVALID_PARAMETER_ERROR is generated if param is not a valid parameter.

HISTORY

cgSetEffectParameterBuffer was introduced in Cg 3.0.

SEE ALSO

cgGetEffectParameterBuffer, cgSetProgramBuffer