Name

cgGetProgramDomainProgram - get an indexed domain program of a combined program

Synopsis

#include <Cg/cg.h>

CGprogram cgGetProgramDomainProgram( CGprogram program,
                                     int index );

Parameters

program
The handle of the combined program object.
index
The index of the program's domain program to be queried.

Return Values

Returns the program handle for the program with the given domain index.

Returns 0 if an error occurs.

Description

A combined program consists of multiple domain programs. For example, a combined program may contain a vertex domain program and a fragment domain program. cgGetProgramDomainProgram gets the indexed domain program of the specified combined program.

If the program parameter is not a combined program and the index is zero, program handle is simply returned as-is without error.

Examples

/* This will enable all profiles for each domain in glslComboProgram */
int domains = cgGetNumProgramDomains(glslComboProgram);
for (int i=0; i<domains; i++) {
  CGprogram subprog = cgGetProgramDomainProgram(glslComboProgram, i);
  CGparameter param = cgGetFirstParameter(subprog);
  while (param) {
    // Do something to each parameter of each domain program
    param = cgGetNextParameter(param);
  }
}

Errors

CG_INVALID_PROGRAM_HANDLE_ERROR is generated if program is not a valid program handle.

CG_INVALID_PARAMETER_ERROR is generated if index is less than 0 or greater than or equal to the number of domains in program.

History

cgGetProgramDomainProgram was introduced in Cg 2.1.

See Also

cgGetNumProgramDomains, cgGetProfileDomain, cgGetProgramDomainProfile