> ## Name

> cgCombinePrograms3 - combine programs from three different domains

> ## Synopsis

>     #include <Cg/cg.h>

>     CGprogram cgCombinePrograms3( const CGprogram program1,
>                                   const CGprogram program2,
>                                   const CGprogram program3 );

> ## Parameters

> program1
>   An executable program from one domain.
> program2
>   An executable program from a second domain.
> program3
>   An executable program from a third domain.

> ## Return Values

> Returns a handle to the newly created program on success.

> Returns NULL if an error occurs.

> ## Description

> cgCombinePrograms3 takes three programs from different domains and combines them into a single CGprogram. This is a convenience function for cgCombinePrograms.

> ## Examples

>     CGprogram p1 = cgCreateProgram(context, CG_SOURCE, vSrc, vProfile,
>                                    vEntryName, NULL);
>     CGprogram p2 = cgCreateProgram(context, CG_SOURCE, fSrc, fProfile,
>                                    fEntryName, NULL);
>     CGprogram p3 = cgCreateProgram(context, CG_SOURCE, gSrc, gProfile,
>                                    gEntryName, NULL);

>     CGprogram combined = cgCombinePrograms3(p1, p2, p3);

>     cgDestroyProgram(p1);
>     cgDestroyProgram(p2);
>     cgDestroyProgram(p3);

>     cgGLBindProgram(combined); /* Assuming cgGL runtime */

>     /* Render... */

> ## Errors

> The errors listed in cgCombinePrograms might be generated.

> ## History

> cgCombinePrograms3 was introduced in Cg 1.5.

> ## See Also

> cgCombinePrograms, cgCombinePrograms2, cgCombinePrograms4, cgCombinePrograms5