Name

cgGetProgramOutput - get the program's output

Synopsis

#include <Cg/cg.h>

CGenum cgGetProgramOutput( CGprogram program );

Parameters

program
A program handle.

Return Values

Returns a program output enumerant. If the program is a vertex or fragment program, it returns CG_VERTEX or CG_FRAGMENT, respectively. For geometry programs the output is one of: CG_POINT_OUT, CG_LINE_OUT, or CG_TRIANGLE_OUT. For tessellation control programs the output is CG_PATCH.

Returns CG_UNKNOWN if the output is unknown.

Description

cgGetProgramOutput returns the program output enumerant.

For geometry programs, an input must be specified but not an output because of implicit output defaults. For example, if either "TRIANGLE" or "TRIANGLE_ADJ" is specified as an input without an explicit output in the shader source, then cgGetProgramOutput will return CG_TRIANGLE_OUT.

Examples

void printProgramOutput(CGprogram program)
{
  char * output = NULL;
  switch(cgGetProgramOutput(program))
  {
    case CG_VERTEX:
        output = "vertex";
        break;
    case CG_FRAGMENT:
        output = "fragment";
        break;
    case CG_POINT_OUT:
        output = "point";
        break;
    case CG_LINE_OUT:
        output = "line";
        break;
    case CG_TRIANGLE_OUT:
        output = "triangle";
        break;
    case CG_PATCH:
        output = "patch";
        break;
    default:
        output = "unknown";
        break;
  }
  printf("Program outputs %s.\n", output);
}

Errors

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

History

cgGetProgramOutput was introduced in Cg 2.0.

See Also

cgGetProgramInput