NAME
    cgCreateProgram - create a program object from a string

SYNOPSIS
      #include <Cg/cg.h>

      CGprogram cgCreateProgram( CGcontext context, 
                                 CGenum program_type,
                                 const char * program,
                                 CGprofile profile,
                                 const char * entry,
                                 const char ** args );

PARAMETERS
    context The context to which the new program will be added.

    program_type
            An enumerant describing the contents of the program string. The
            following enumerants are allowed:

            CG_SOURCE
                program contains Cg source code.

            CG_OBJECT
                program contains object code that resulted from the
                precompilation of some Cg source code.

    program A string containing either the programs source or object code.
            See program_type for more information.

    profile The profile enumerant for the program.

    entry   The entry point to the program in the Cg source. If NULL, the
            entry point defaults to "main".

    args    If args is not NULL it is assumed to be an array of
            NULL-terminated strings that will be passed directly to the
            compiler as arguments. The last value of the array must be a
            NULL.

RETURN VALUES
    Returns a CGprogram handle on success.

    Returns NULL if any error occurs.

DESCRIPTION
    cgCreateProgram generates a new CGprogram object and adds it to the
    specified Cg context.

EXAMPLES
       CGcontext context = cgCreateContext();
       CGprogram program = cgCreateProgram(context,
                                           CG_SOURCE,
                                           mysourcestring,
                                           CG_PROFILE_ARBVP1,
                                           "myshader",
                                           NULL);

ERRORS
    CG_INVALID_CONTEXT_HANDLE_ERROR is generated if context is not a valid
    context.

    CG_INVALID_ENUMERANT_ERROR is generated if program_type is not CG_SOURCE
    or CG_OBJECT.

    CG_UNKNOWN_PROFILE_ERROR is generated if profile is not a supported
    profile.

    CG_COMPILER_ERROR is generated if compilation fails.

HISTORY
    cgCreateProgram was introduced in Cg 1.1.

SEE ALSO
    the cgCreateContext manpage, the cgCreateProgramFromFile manpage, the
    cgDestroyProgram manpage, the cgGetProgramString manpage

