> ## Name

> cgD3D9GetOptimalOptions - get the best set of compiler options for a profile

> ## Synopsis

>     #include <Cg/cgD3D9.h>

>     char const ** cgD3D9GetOptimalOptions( CGprofile profile );

> ## Parameters

> profile
>   The profile whose optimal arguments are requested.

> ## Return Values

> Returns a null-terminated array of strings representing the optimal set of compiler options for profile.

> Returns NULL if no D3D device is currently set.

> ## Description

> cgD3D9GetOptimalOptions returns the best set of compiler options for a given profile. This is an expanded interface function because it needs to know about the D3D device to determine the most optimal options.

> The elements of the returned array are meant to be used as part of the args parameter to cgCreateProgram or cgCreateProgramFromFile.

> The returned string does not need to be destroyed by the application. However, the contents could change if the function is called again for the same profile but a different D3D device.

> ## Examples

>     const char* vertOptions[]  = { myCustomArgs,
>                                    cgD3D9GetOptimalOptions(vertProfile),
>                                    NULL };

>     // create the vertex shader
>     CGprogram myVS = cgCreateProgramFromFile( context,
>                                               CG_SOURCE,
>                                               "vshader.cg",
>                                               vertProfile,
>                                               "VertexShader",
>                                               vertOptions);

> ## Errors

> None.

> ## History

> cgD3D9GetOptimalOptions was introduced in Cg 1.1.

> ## See Also

> cgD3D9GetLatestVertexProfile, cgD3D9GetLatestPixelProfile, cgCreateProgram, cgCreateProgramFromFile