> # NAME

> cgCreateEffect - create an effect object from a source string

> # SYNOPSIS

>       #include <Cg/cg.h>

>       CGeffect cgCreateEffect( CGcontext context,
>                                const char * source,
>                                const char ** args );

> # PARAMETERS

> context

>   The context to which the new effect will be added.

> source

>   A string containing the effect's source code.

> 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 CGeffect handle on success.

> Returns NULL if an error occurs.

> # DESCRIPTION

> cgCreateEffect generates a new CGeffect object and adds it to the specified Cg context.

> If an error occurs cgGetLastListing can be called to retrieve any warning or error messages from the compilation process.

> # EXAMPLES

> Creating an effect:

>       char *effectSource = ...;
>       CGcontext context = cgCreateContext();
>       CGeffect effect  = cgCreateEffect(context,
>                                         effectSource,
>                                         NULL);

> Iterating through the techniques in an effect:

>       CGtechnique technique = cgGetFirstTechnique(effect);
>       while (technique) {
>         // Do something with each technique
>         technique = cgGetNextTechnique(technique);
>       }

> # ERRORS

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

> CG_COMPILER_ERROR is generated if compilation fails.

> # HISTORY

> cgCreateEffect was introduced in Cg 1.4.

> # SEE ALSO

> cgCreateContext, cgCreateEffectFromFile, cgGetLastListing, cgGetFirstTechnique, cgGetTechniqueEffect, cgGetFirstEffect