aboutsummaryrefslogtreecommitdiff
path: root/Externals/cg/2.2/include/Cg
diff options
context:
space:
mode:
authorgit perforce import user <a@b>2016-10-25 12:29:14 -0600
committerSheikh Dawood Abdul Ajees <Sheikh Dawood Abdul Ajees>2016-10-25 18:56:37 -0500
commit3dfe2108cfab31ba3ee5527e217d0d8e99a51162 (patch)
treefa6485c169e50d7415a651bf838f5bcd0fd3bfbd /Externals/cg/2.2/include/Cg
downloadphysx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.tar.xz
physx-3.4-3dfe2108cfab31ba3ee5527e217d0d8e99a51162.zip
Initial commit:
PhysX 3.4.0 Update @ 21294896 APEX 1.4.0 Update @ 21275617 [CL 21300167]
Diffstat (limited to 'Externals/cg/2.2/include/Cg')
-rw-r--r--Externals/cg/2.2/include/Cg/cg.h758
-rw-r--r--Externals/cg/2.2/include/Cg/cgD3D10.h238
-rw-r--r--Externals/cg/2.2/include/Cg/cgD3D8.h279
-rw-r--r--Externals/cg/2.2/include/Cg/cgD3D9.h317
-rw-r--r--Externals/cg/2.2/include/Cg/cgGL.h427
-rw-r--r--Externals/cg/2.2/include/Cg/cgGL_profiles.h75
-rw-r--r--Externals/cg/2.2/include/Cg/cg_bindlocations.h382
-rw-r--r--Externals/cg/2.2/include/Cg/cg_datatypes.h196
-rw-r--r--Externals/cg/2.2/include/Cg/cg_enums.h128
-rw-r--r--Externals/cg/2.2/include/Cg/cg_errors.h325
-rw-r--r--Externals/cg/2.2/include/Cg/cg_profiles.h105
11 files changed, 3230 insertions, 0 deletions
diff --git a/Externals/cg/2.2/include/Cg/cg.h b/Externals/cg/2.2/include/Cg/cg.h
new file mode 100644
index 00000000..701d26e7
--- /dev/null
+++ b/Externals/cg/2.2/include/Cg/cg.h
@@ -0,0 +1,758 @@
+/*
+ *
+ * Copyright (c) 2002-2010, NVIDIA Corporation.
+ *
+ *
+ *
+ * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
+ * of your agreement to the following terms, and your use, installation,
+ * modification or redistribution of this NVIDIA software constitutes
+ * acceptance of these terms. If you do not agree with these terms, please do
+ * not use, install, modify or redistribute this NVIDIA software.
+ *
+ *
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
+ * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
+ * Software"), to use, reproduce, modify and redistribute the NVIDIA
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the NVIDIA Software, you must retain the
+ * copyright notice of NVIDIA, this notice and the following text and
+ * disclaimers in all such redistributions of the NVIDIA Software. Neither the
+ * name, trademarks, service marks nor logos of NVIDIA Corporation may be used
+ * to endorse or promote products derived from the NVIDIA Software without
+ * specific prior written permission from NVIDIA. Except as expressly stated
+ * in this notice, no other rights or licenses express or implied, are granted
+ * by NVIDIA herein, including but not limited to any patent rights that may be
+ * infringed by your derivative works or by other works in which the NVIDIA
+ * Software may be incorporated. No hardware is licensed hereunder.
+ *
+ *
+ *
+ * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
+ * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
+ * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
+ *
+ *
+ *
+ * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
+ * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
+ * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
+ * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
+ * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
+ * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+#ifndef _cg_h
+#define _cg_h
+
+/*************************************************************************/
+/*** CG Run-Time Library API ***/
+/*************************************************************************/
+
+#define CG_VERSION_NUM 2200
+
+#ifdef _WIN32
+# ifndef APIENTRY /* From Win32's <windef.h> */
+# define CG_APIENTRY_DEFINED
+# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__)
+# define APIENTRY __stdcall
+# else
+# define APIENTRY
+# endif
+# endif
+# ifndef WINGDIAPI /* From Win32's <wingdi.h> and <winnt.h> */
+# define CG_WINGDIAPI_DEFINED
+# define WINGDIAPI __declspec(dllimport)
+# endif
+#endif /* _WIN32 */
+
+/* Set up CG_API for Win32 dllexport or gcc visibility */
+
+#ifndef CG_API
+# ifdef CG_EXPORTS
+# ifdef _WIN32
+# define CG_API __declspec(dllexport)
+# elif defined(__GNUC__) && __GNUC__>=4
+# define CG_API __attribute__ ((visibility("default")))
+# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+# define CG_API __global
+# else
+# define CG_API
+# endif
+# else
+# define CG_API
+# endif
+#endif
+
+#ifndef CGENTRY
+# ifdef _WIN32
+# define CGENTRY __cdecl
+# else
+# define CGENTRY
+# endif
+#endif
+
+/*************************************************************************/
+/*** Data types and enumerants ***/
+/*************************************************************************/
+
+typedef int CGbool;
+
+#define CG_FALSE ((CGbool)0)
+#define CG_TRUE ((CGbool)1)
+
+typedef struct _CGcontext *CGcontext;
+typedef struct _CGprogram *CGprogram;
+typedef struct _CGparameter *CGparameter;
+typedef struct _CGobj *CGobj;
+typedef struct _CGbuffer *CGbuffer;
+typedef struct _CGeffect *CGeffect;
+typedef struct _CGtechnique *CGtechnique;
+typedef struct _CGpass *CGpass;
+typedef struct _CGstate *CGstate;
+typedef struct _CGstateassignment *CGstateassignment;
+typedef struct _CGannotation *CGannotation;
+typedef void *CGhandle;
+
+
+/*!!! PREPROCESS BEGIN */
+
+typedef enum
+ {
+ CG_UNKNOWN_TYPE,
+ CG_STRUCT,
+ CG_ARRAY,
+ CG_TYPELESS_STRUCT,
+
+ CG_TYPE_START_ENUM = 1024,
+#define CG_DATATYPE_MACRO(name, compiler_name, enum_name, base_name, ncols, nrows, pc) \
+ enum_name ,
+
+#include <Cg/cg_datatypes.h>
+#undef CG_DATATYPE_MACRO
+
+ CG_TYPE_MAX
+ } CGtype;
+
+typedef enum
+ {
+# define CG_BINDLOCATION_MACRO(name,enum_name,compiler_name,\
+ enum_int,addressable,param_type) \
+ enum_name = enum_int,
+
+#include <Cg/cg_bindlocations.h>
+
+ CG_UNDEFINED = 3256
+ } CGresource;
+
+typedef enum
+ {
+ CG_PROFILE_START = 6144,
+ CG_PROFILE_UNKNOWN,
+
+#define CG_PROFILE_MACRO(name, compiler_id, compiler_id_caps, compiler_opt,int_id,vertex_profile) \
+ CG_PROFILE_##compiler_id_caps = int_id,
+#define CG_PROFILE_ALIAS(name, compiler_id, compiler_id_caps, compiler_opt,int_id,vertex_profile) \
+ CG_PROFILE_MACRO(name, compiler_id, compiler_id_caps, compiler_opt,int_id,vertex_profile)
+
+#include <Cg/cg_profiles.h>
+
+ CG_PROFILE_MAX = 7100
+ } CGprofile;
+
+typedef enum
+ {
+#define CG_ERROR_MACRO(code, enum_name, message) \
+ enum_name = code,
+#include <Cg/cg_errors.h>
+
+ CG_ERROR_MAX
+ } CGerror;
+
+typedef enum
+ {
+#define CG_ENUM_MACRO(enum_name, enum_val) \
+ enum_name = enum_val,
+#include <Cg/cg_enums.h>
+
+ CG_ENUM_MAX
+ } CGenum;
+
+/*!!! PREPROCESS END */
+
+typedef enum
+ {
+ CG_PARAMETERCLASS_UNKNOWN = 0,
+ CG_PARAMETERCLASS_SCALAR,
+ CG_PARAMETERCLASS_VECTOR,
+ CG_PARAMETERCLASS_MATRIX,
+ CG_PARAMETERCLASS_STRUCT,
+ CG_PARAMETERCLASS_ARRAY,
+ CG_PARAMETERCLASS_SAMPLER,
+ CG_PARAMETERCLASS_OBJECT,
+
+ CG_PARAMETERCLASS_MAX
+ } CGparameterclass;
+
+typedef enum
+{
+ CG_UNKNOWN_DOMAIN = 0,
+ CG_FIRST_DOMAIN = 1,
+ CG_VERTEX_DOMAIN = 1,
+ CG_FRAGMENT_DOMAIN,
+ CG_GEOMETRY_DOMAIN,
+ CG_NUMBER_OF_DOMAINS,
+
+ CG_DOMAIN_MAX
+} CGdomain;
+
+typedef enum
+{
+ CG_MAP_READ = 0,
+ CG_MAP_WRITE,
+ CG_MAP_READ_WRITE,
+ CG_MAP_WRITE_DISCARD,
+ CG_MAP_WRITE_NO_OVERWRITE,
+
+ CG_MAP_MAX
+} CGbufferaccess;
+
+typedef enum
+{
+ CG_BUFFER_USAGE_STREAM_DRAW = 0,
+ CG_BUFFER_USAGE_STREAM_READ,
+ CG_BUFFER_USAGE_STREAM_COPY,
+ CG_BUFFER_USAGE_STATIC_DRAW,
+ CG_BUFFER_USAGE_STATIC_READ,
+ CG_BUFFER_USAGE_STATIC_COPY,
+ CG_BUFFER_USAGE_DYNAMIC_DRAW,
+ CG_BUFFER_USAGE_DYNAMIC_READ,
+ CG_BUFFER_USAGE_DYNAMIC_COPY,
+
+ CG_BUFFER_USAGE_MAX
+} CGbufferusage;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef CGbool (CGENTRY * CGstatecallback)(CGstateassignment);
+typedef void (CGENTRY * CGerrorCallbackFunc)(void);
+typedef void (CGENTRY * CGerrorHandlerFunc)(CGcontext ctx, CGerror err, void *data);
+typedef void (CGENTRY * CGIncludeCallbackFunc)(CGcontext ctx, const char *filename);
+
+/*************************************************************************/
+/*** Functions ***/
+/*************************************************************************/
+
+#ifndef CG_EXPLICIT
+
+/*** Library policy functions ***/
+
+CG_API CGenum CGENTRY cgSetLockingPolicy(CGenum lockingPolicy);
+CG_API CGenum CGENTRY cgGetLockingPolicy(void);
+CG_API CGenum CGENTRY cgSetSemanticCasePolicy(CGenum casePolicy);
+CG_API CGenum CGENTRY cgGetSemanticCasePolicy(void);
+
+/*** Context functions ***/
+
+CG_API CGcontext CGENTRY cgCreateContext(void);
+CG_API void CGENTRY cgDestroyContext(CGcontext ctx);
+CG_API CGbool CGENTRY cgIsContext(CGcontext ctx);
+CG_API const char * CGENTRY cgGetLastListing(CGcontext ctx);
+CG_API void CGENTRY cgSetLastListing(CGhandle handle, const char *listing);
+CG_API void CGENTRY cgSetAutoCompile(CGcontext ctx, CGenum flag);
+CG_API CGenum CGENTRY cgGetAutoCompile(CGcontext ctx);
+CG_API void CGENTRY cgSetParameterSettingMode(CGcontext ctx, CGenum parameterSettingMode);
+CG_API CGenum CGENTRY cgGetParameterSettingMode(CGcontext ctx);
+
+/*** Inclusion ***/
+
+CG_API void CGENTRY cgSetCompilerIncludeString(CGcontext ctx, const char *name, const char *source);
+CG_API void CGENTRY cgSetCompilerIncludeFile(CGcontext ctx, const char *name, const char *filename);
+CG_API void CGENTRY cgSetCompilerIncludeCallback(CGcontext ctx, CGIncludeCallbackFunc func);
+CG_API CGIncludeCallbackFunc CGENTRY cgGetCompilerIncludeCallback(CGcontext ctx);
+
+/*** Program functions ***/
+
+CG_API CGprogram CGENTRY cgCreateProgram(CGcontext ctx,
+ CGenum program_type,
+ const char *program,
+ CGprofile profile,
+ const char *entry,
+ const char **args);
+CG_API CGprogram CGENTRY cgCreateProgramFromFile(CGcontext ctx,
+ CGenum program_type,
+ const char *program_file,
+ CGprofile profile,
+ const char *entry,
+ const char **args);
+CG_API CGprogram CGENTRY cgCopyProgram(CGprogram program);
+CG_API void CGENTRY cgDestroyProgram(CGprogram program);
+
+CG_API CGprogram CGENTRY cgGetFirstProgram(CGcontext ctx);
+CG_API CGprogram CGENTRY cgGetNextProgram(CGprogram current);
+CG_API CGcontext CGENTRY cgGetProgramContext(CGprogram prog);
+CG_API CGbool CGENTRY cgIsProgram(CGprogram program);
+
+CG_API void CGENTRY cgCompileProgram(CGprogram program);
+CG_API CGbool CGENTRY cgIsProgramCompiled(CGprogram program);
+CG_API const char * CGENTRY cgGetProgramString(CGprogram prog, CGenum pname);
+CG_API CGprofile CGENTRY cgGetProgramProfile(CGprogram prog);
+CG_API char const * const * CGENTRY cgGetProgramOptions(CGprogram prog);
+CG_API void CGENTRY cgSetProgramProfile(CGprogram prog, CGprofile profile);
+CG_API CGenum CGENTRY cgGetProgramInput(CGprogram program);
+CG_API CGenum CGENTRY cgGetProgramOutput(CGprogram program);
+CG_API void CGENTRY cgSetPassProgramParameters(CGprogram);
+CG_API void CGENTRY cgUpdateProgramParameters(CGprogram program);
+CG_API void CGENTRY cgUpdatePassParameters(CGpass pass);
+
+/*** Parameter functions ***/
+
+CG_API CGparameter CGENTRY cgCreateParameter(CGcontext ctx, CGtype type);
+CG_API CGparameter CGENTRY cgCreateParameterArray(CGcontext ctx,
+ CGtype type,
+ int length);
+CG_API CGparameter CGENTRY cgCreateParameterMultiDimArray(CGcontext ctx,
+ CGtype type,
+ int dim,
+ const int *lengths);
+CG_API void CGENTRY cgDestroyParameter(CGparameter param);
+CG_API void CGENTRY cgConnectParameter(CGparameter from, CGparameter to);
+CG_API void CGENTRY cgDisconnectParameter(CGparameter param);
+CG_API CGparameter CGENTRY cgGetConnectedParameter(CGparameter param);
+
+CG_API int CGENTRY cgGetNumConnectedToParameters(CGparameter param);
+CG_API CGparameter CGENTRY cgGetConnectedToParameter(CGparameter param, int index);
+
+CG_API CGparameter CGENTRY cgGetNamedParameter(CGprogram prog, const char *name);
+CG_API CGparameter CGENTRY cgGetNamedProgramParameter(CGprogram prog,
+ CGenum name_space,
+ const char *name);
+
+CG_API CGparameter CGENTRY cgGetFirstParameter(CGprogram prog, CGenum name_space);
+CG_API CGparameter CGENTRY cgGetNextParameter(CGparameter current);
+CG_API CGparameter CGENTRY cgGetFirstLeafParameter(CGprogram prog, CGenum name_space);
+CG_API CGparameter CGENTRY cgGetNextLeafParameter(CGparameter current);
+
+CG_API CGparameter CGENTRY cgGetFirstStructParameter(CGparameter param);
+CG_API CGparameter CGENTRY cgGetNamedStructParameter(CGparameter param,
+ const char *name);
+
+CG_API CGparameter CGENTRY cgGetFirstDependentParameter(CGparameter param);
+
+CG_API CGparameter CGENTRY cgGetArrayParameter(CGparameter aparam, int index);
+CG_API int CGENTRY cgGetArrayDimension(CGparameter param);
+CG_API CGtype CGENTRY cgGetArrayType(CGparameter param);
+CG_API int CGENTRY cgGetArraySize(CGparameter param, int dimension);
+CG_API int CGENTRY cgGetArrayTotalSize(CGparameter param);
+CG_API void CGENTRY cgSetArraySize(CGparameter param, int size);
+CG_API void CGENTRY cgSetMultiDimArraySize(CGparameter param, const int *sizes);
+
+CG_API CGprogram CGENTRY cgGetParameterProgram(CGparameter param);
+CG_API CGcontext CGENTRY cgGetParameterContext(CGparameter param);
+CG_API CGbool CGENTRY cgIsParameter(CGparameter param);
+CG_API const char * CGENTRY cgGetParameterName(CGparameter param);
+CG_API CGtype CGENTRY cgGetParameterType(CGparameter param);
+CG_API CGtype CGENTRY cgGetParameterBaseType(CGparameter param);
+CG_API CGparameterclass CGENTRY cgGetParameterClass(CGparameter param);
+CG_API int CGENTRY cgGetParameterRows(CGparameter param);
+CG_API int CGENTRY cgGetParameterColumns(CGparameter param);
+CG_API CGtype CGENTRY cgGetParameterNamedType(CGparameter param);
+CG_API const char * CGENTRY cgGetParameterSemantic(CGparameter param);
+CG_API CGresource CGENTRY cgGetParameterResource(CGparameter param);
+CG_API CGresource CGENTRY cgGetParameterBaseResource(CGparameter param);
+CG_API unsigned long CGENTRY cgGetParameterResourceIndex(CGparameter param);
+CG_API CGenum CGENTRY cgGetParameterVariability(CGparameter param);
+CG_API CGenum CGENTRY cgGetParameterDirection(CGparameter param);
+CG_API CGbool CGENTRY cgIsParameterReferenced(CGparameter param);
+CG_API CGbool CGENTRY cgIsParameterUsed(CGparameter param, CGhandle handle);
+CG_API const double * CGENTRY cgGetParameterValues(CGparameter param,
+ CGenum value_type,
+ int *nvalues);
+CG_API void CGENTRY cgSetParameterValuedr(CGparameter param, int n, const double *vals);
+CG_API void CGENTRY cgSetParameterValuedc(CGparameter param, int n, const double *vals);
+CG_API void CGENTRY cgSetParameterValuefr(CGparameter param, int n, const float *vals);
+CG_API void CGENTRY cgSetParameterValuefc(CGparameter param, int n, const float *vals);
+CG_API void CGENTRY cgSetParameterValueir(CGparameter param, int n, const int *vals);
+CG_API void CGENTRY cgSetParameterValueic(CGparameter param, int n, const int *vals);
+CG_API int CGENTRY cgGetParameterValuedr(CGparameter param, int n, double *vals);
+CG_API int CGENTRY cgGetParameterValuedc(CGparameter param, int n, double *vals);
+CG_API int CGENTRY cgGetParameterValuefr(CGparameter param, int n, float *vals);
+CG_API int CGENTRY cgGetParameterValuefc(CGparameter param, int n, float *vals);
+CG_API int CGENTRY cgGetParameterValueir(CGparameter param, int n, int *vals);
+CG_API int CGENTRY cgGetParameterValueic(CGparameter param, int n, int *vals);
+CG_API int CGENTRY cgGetParameterDefaultValuedr(CGparameter param, int n, double *vals);
+CG_API int CGENTRY cgGetParameterDefaultValuedc(CGparameter param, int n, double *vals);
+CG_API int CGENTRY cgGetParameterDefaultValuefr(CGparameter param, int n, float *vals);
+CG_API int CGENTRY cgGetParameterDefaultValuefc(CGparameter param, int n, float *vals);
+CG_API int CGENTRY cgGetParameterDefaultValueir(CGparameter param, int n, int *vals);
+CG_API int CGENTRY cgGetParameterDefaultValueic(CGparameter param, int n, int *vals);
+CG_API const char * CGENTRY cgGetStringParameterValue(CGparameter param);
+CG_API void CGENTRY cgSetStringParameterValue(CGparameter param, const char *str);
+
+CG_API int CGENTRY cgGetParameterOrdinalNumber(CGparameter param);
+CG_API CGbool CGENTRY cgIsParameterGlobal(CGparameter param);
+CG_API int CGENTRY cgGetParameterIndex(CGparameter param);
+
+CG_API void CGENTRY cgSetParameterVariability(CGparameter param, CGenum vary);
+CG_API void CGENTRY cgSetParameterSemantic(CGparameter param, const char *semantic);
+
+CG_API void CGENTRY cgSetParameter1f(CGparameter param, float x);
+CG_API void CGENTRY cgSetParameter2f(CGparameter param, float x, float y);
+CG_API void CGENTRY cgSetParameter3f(CGparameter param, float x, float y, float z);
+CG_API void CGENTRY cgSetParameter4f(CGparameter param,
+ float x,
+ float y,
+ float z,
+ float w);
+CG_API void CGENTRY cgSetParameter1d(CGparameter param, double x);
+CG_API void CGENTRY cgSetParameter2d(CGparameter param, double x, double y);
+CG_API void CGENTRY cgSetParameter3d(CGparameter param,
+ double x,
+ double y,
+ double z);
+CG_API void CGENTRY cgSetParameter4d(CGparameter param,
+ double x,
+ double y,
+ double z,
+ double w);
+CG_API void CGENTRY cgSetParameter1i(CGparameter param, int x);
+CG_API void CGENTRY cgSetParameter2i(CGparameter param, int x, int y);
+CG_API void CGENTRY cgSetParameter3i(CGparameter param, int x, int y, int z);
+CG_API void CGENTRY cgSetParameter4i(CGparameter param,
+ int x,
+ int y,
+ int z,
+ int w);
+
+CG_API void CGENTRY cgSetParameter1iv(CGparameter param, const int *v);
+CG_API void CGENTRY cgSetParameter2iv(CGparameter param, const int *v);
+CG_API void CGENTRY cgSetParameter3iv(CGparameter param, const int *v);
+CG_API void CGENTRY cgSetParameter4iv(CGparameter param, const int *v);
+CG_API void CGENTRY cgSetParameter1fv(CGparameter param, const float *v);
+CG_API void CGENTRY cgSetParameter2fv(CGparameter param, const float *v);
+CG_API void CGENTRY cgSetParameter3fv(CGparameter param, const float *v);
+CG_API void CGENTRY cgSetParameter4fv(CGparameter param, const float *v);
+CG_API void CGENTRY cgSetParameter1dv(CGparameter param, const double *v);
+CG_API void CGENTRY cgSetParameter2dv(CGparameter param, const double *v);
+CG_API void CGENTRY cgSetParameter3dv(CGparameter param, const double *v);
+CG_API void CGENTRY cgSetParameter4dv(CGparameter param, const double *v);
+
+CG_API void CGENTRY cgSetMatrixParameterir(CGparameter param, const int *matrix);
+CG_API void CGENTRY cgSetMatrixParameterdr(CGparameter param, const double *matrix);
+CG_API void CGENTRY cgSetMatrixParameterfr(CGparameter param, const float *matrix);
+CG_API void CGENTRY cgSetMatrixParameteric(CGparameter param, const int *matrix);
+CG_API void CGENTRY cgSetMatrixParameterdc(CGparameter param, const double *matrix);
+CG_API void CGENTRY cgSetMatrixParameterfc(CGparameter param, const float *matrix);
+
+CG_API void CGENTRY cgGetMatrixParameterir(CGparameter param, int *matrix);
+CG_API void CGENTRY cgGetMatrixParameterdr(CGparameter param, double *matrix);
+CG_API void CGENTRY cgGetMatrixParameterfr(CGparameter param, float *matrix);
+CG_API void CGENTRY cgGetMatrixParameteric(CGparameter param, int *matrix);
+CG_API void CGENTRY cgGetMatrixParameterdc(CGparameter param, double *matrix);
+CG_API void CGENTRY cgGetMatrixParameterfc(CGparameter param, float *matrix);
+
+CG_API CGenum CGENTRY cgGetMatrixParameterOrder(CGparameter param);
+
+CG_API CGparameter CGENTRY cgGetNamedSubParameter(CGparameter param, const char *name);
+
+/*** Type Functions ***/
+
+CG_API const char * CGENTRY cgGetTypeString(CGtype type);
+CG_API CGtype CGENTRY cgGetType(const char *type_string);
+
+CG_API CGtype CGENTRY cgGetNamedUserType(CGhandle handle, const char *name);
+
+CG_API int CGENTRY cgGetNumUserTypes(CGhandle handle);
+CG_API CGtype CGENTRY cgGetUserType(CGhandle handle, int index);
+
+CG_API int CGENTRY cgGetNumParentTypes(CGtype type);
+CG_API CGtype CGENTRY cgGetParentType(CGtype type, int index);
+
+CG_API CGbool CGENTRY cgIsParentType(CGtype parent, CGtype child);
+CG_API CGbool CGENTRY cgIsInterfaceType(CGtype type);
+
+/*** Resource Functions ***/
+
+CG_API const char * CGENTRY cgGetResourceString(CGresource resource);
+CG_API CGresource CGENTRY cgGetResource(const char *resource_string);
+
+/*** Enum Functions ***/
+
+CG_API const char * CGENTRY cgGetEnumString(CGenum en);
+CG_API CGenum CGENTRY cgGetEnum(const char *enum_string);
+
+/*** Profile Functions ***/
+
+CG_API const char * CGENTRY cgGetProfileString(CGprofile profile);
+CG_API CGprofile CGENTRY cgGetProfile(const char *profile_string);
+CG_API int CGENTRY cgGetNumSupportedProfiles(void);
+CG_API CGprofile CGENTRY cgGetSupportedProfile(int index);
+CG_API CGbool CGENTRY cgIsProfileSupported(CGprofile profile);
+CG_API CGbool CGENTRY cgGetProfileProperty(CGprofile profile, CGenum query);
+
+/*** ParameterClass Functions ***/
+
+CG_API const char * CGENTRY cgGetParameterClassString(CGparameterclass pc);
+CG_API CGparameterclass CGENTRY cgGetParameterClassEnum(const char * pString);
+
+/*** Domain Functions ***/
+
+CG_API const char * CGENTRY cgGetDomainString(CGdomain domain);
+CG_API CGdomain CGENTRY cgGetDomain(const char *domain_string);
+CG_API CGdomain CGENTRY cgGetProgramDomain(CGprogram program);
+
+/*** Error Functions ***/
+
+CG_API CGerror CGENTRY cgGetError(void);
+CG_API CGerror CGENTRY cgGetFirstError(void);
+CG_API const char * CGENTRY cgGetErrorString(CGerror error);
+CG_API const char * CGENTRY cgGetLastErrorString(CGerror *error);
+CG_API void CGENTRY cgSetErrorCallback(CGerrorCallbackFunc func);
+CG_API CGerrorCallbackFunc CGENTRY cgGetErrorCallback(void);
+CG_API void CGENTRY cgSetErrorHandler(CGerrorHandlerFunc func, void *data);
+CG_API CGerrorHandlerFunc CGENTRY cgGetErrorHandler(void **data);
+
+/*** Misc Functions ***/
+
+CG_API const char * CGENTRY cgGetString(CGenum sname);
+
+
+/*** CgFX Functions ***/
+
+CG_API CGeffect CGENTRY cgCreateEffect(CGcontext, const char *code, const char **args);
+CG_API CGeffect CGENTRY cgCreateEffectFromFile(CGcontext, const char *filename,
+ const char **args);
+CG_API CGeffect CGENTRY cgCopyEffect(CGeffect effect);
+CG_API void CGENTRY cgDestroyEffect(CGeffect);
+CG_API CGcontext CGENTRY cgGetEffectContext(CGeffect);
+CG_API CGbool CGENTRY cgIsEffect(CGeffect effect);
+
+CG_API CGeffect CGENTRY cgGetFirstEffect(CGcontext);
+CG_API CGeffect CGENTRY cgGetNextEffect(CGeffect);
+
+CG_API CGprogram CGENTRY cgCreateProgramFromEffect(CGeffect effect,
+ CGprofile profile,
+ const char *entry,
+ const char **args);
+
+CG_API CGtechnique CGENTRY cgGetFirstTechnique(CGeffect);
+CG_API CGtechnique CGENTRY cgGetNextTechnique(CGtechnique);
+CG_API CGtechnique CGENTRY cgGetNamedTechnique(CGeffect, const char *name);
+CG_API const char * CGENTRY cgGetTechniqueName(CGtechnique);
+CG_API CGbool CGENTRY cgIsTechnique(CGtechnique);
+CG_API CGbool CGENTRY cgValidateTechnique(CGtechnique);
+CG_API CGbool CGENTRY cgIsTechniqueValidated(CGtechnique);
+CG_API CGeffect CGENTRY cgGetTechniqueEffect(CGtechnique);
+
+CG_API CGpass CGENTRY cgGetFirstPass(CGtechnique);
+CG_API CGpass CGENTRY cgGetNamedPass(CGtechnique, const char *name);
+CG_API CGpass CGENTRY cgGetNextPass(CGpass);
+CG_API CGbool CGENTRY cgIsPass(CGpass);
+CG_API const char * CGENTRY cgGetPassName(CGpass);
+CG_API CGtechnique CGENTRY cgGetPassTechnique(CGpass);
+CG_API CGprogram CGENTRY cgGetPassProgram(CGpass pass, CGdomain domain);
+
+CG_API void CGENTRY cgSetPassState(CGpass);
+CG_API void CGENTRY cgResetPassState(CGpass);
+
+CG_API CGstateassignment CGENTRY cgGetFirstStateAssignment(CGpass);
+CG_API CGstateassignment CGENTRY cgGetNamedStateAssignment(CGpass, const char *name);
+CG_API CGstateassignment CGENTRY cgGetNextStateAssignment(CGstateassignment);
+CG_API CGbool CGENTRY cgIsStateAssignment(CGstateassignment);
+CG_API CGbool CGENTRY cgCallStateSetCallback(CGstateassignment);
+CG_API CGbool CGENTRY cgCallStateValidateCallback(CGstateassignment);
+CG_API CGbool CGENTRY cgCallStateResetCallback(CGstateassignment);
+CG_API CGpass CGENTRY cgGetStateAssignmentPass(CGstateassignment);
+CG_API CGparameter CGENTRY cgGetSamplerStateAssignmentParameter(CGstateassignment);
+
+CG_API const float * CGENTRY cgGetFloatStateAssignmentValues(CGstateassignment, int *nVals);
+CG_API const int * CGENTRY cgGetIntStateAssignmentValues(CGstateassignment, int *nVals);
+CG_API const CGbool * CGENTRY cgGetBoolStateAssignmentValues(CGstateassignment, int *nVals);
+CG_API const char * CGENTRY cgGetStringStateAssignmentValue(CGstateassignment);
+CG_API CGprogram CGENTRY cgGetProgramStateAssignmentValue(CGstateassignment);
+CG_API CGparameter CGENTRY cgGetTextureStateAssignmentValue(CGstateassignment);
+CG_API CGparameter CGENTRY cgGetSamplerStateAssignmentValue(CGstateassignment);
+CG_API int CGENTRY cgGetStateAssignmentIndex(CGstateassignment);
+
+CG_API int CGENTRY cgGetNumDependentStateAssignmentParameters(CGstateassignment);
+CG_API CGparameter CGENTRY cgGetDependentStateAssignmentParameter(CGstateassignment, int index);
+
+CG_API CGparameter CGENTRY cgGetConnectedStateAssignmentParameter(CGstateassignment);
+
+CG_API CGstate CGENTRY cgGetStateAssignmentState(CGstateassignment);
+CG_API CGstate CGENTRY cgGetSamplerStateAssignmentState(CGstateassignment);
+
+CG_API CGstate CGENTRY cgCreateState(CGcontext, const char *name, CGtype);
+CG_API CGstate CGENTRY cgCreateArrayState(CGcontext, const char *name, CGtype, int nelems);
+CG_API void CGENTRY cgSetStateCallbacks(CGstate, CGstatecallback set, CGstatecallback reset,
+ CGstatecallback validate);
+CG_API void CGENTRY cgSetStateLatestProfile(CGstate, CGprofile);
+CG_API CGstatecallback CGENTRY cgGetStateSetCallback(CGstate);
+CG_API CGstatecallback CGENTRY cgGetStateResetCallback(CGstate);
+CG_API CGstatecallback CGENTRY cgGetStateValidateCallback(CGstate);
+CG_API CGprofile CGENTRY cgGetStateLatestProfile(CGstate);
+CG_API CGcontext CGENTRY cgGetStateContext(CGstate);
+CG_API CGtype CGENTRY cgGetStateType(CGstate);
+CG_API const char * CGENTRY cgGetStateName(CGstate);
+CG_API CGstate CGENTRY cgGetNamedState(CGcontext, const char *name);
+CG_API CGstate CGENTRY cgGetFirstState(CGcontext);
+CG_API CGstate CGENTRY cgGetNextState(CGstate);
+CG_API CGbool CGENTRY cgIsState(CGstate);
+CG_API void CGENTRY cgAddStateEnumerant(CGstate, const char *name, int value);
+
+CG_API CGstate CGENTRY cgCreateSamplerState(CGcontext, const char *name, CGtype);
+CG_API CGstate CGENTRY cgCreateArraySamplerState(CGcontext, const char *name, CGtype, int nelems);
+CG_API CGstate CGENTRY cgGetNamedSamplerState(CGcontext, const char *name);
+CG_API CGstate CGENTRY cgGetFirstSamplerState(CGcontext);
+
+CG_API CGstateassignment CGENTRY cgGetFirstSamplerStateAssignment(CGparameter);
+CG_API CGstateassignment CGENTRY cgGetNamedSamplerStateAssignment(CGparameter, const char *);
+CG_API void CGENTRY cgSetSamplerState(CGparameter);
+
+CG_API CGparameter CGENTRY cgGetNamedEffectParameter(CGeffect, const char *);
+CG_API CGparameter CGENTRY cgGetFirstLeafEffectParameter(CGeffect);
+CG_API CGparameter CGENTRY cgGetFirstEffectParameter(CGeffect);
+CG_API CGparameter CGENTRY cgGetEffectParameterBySemantic(CGeffect, const char *);
+
+CG_API CGannotation CGENTRY cgGetFirstTechniqueAnnotation(CGtechnique);
+CG_API CGannotation CGENTRY cgGetFirstPassAnnotation(CGpass);
+CG_API CGannotation CGENTRY cgGetFirstParameterAnnotation(CGparameter);
+CG_API CGannotation CGENTRY cgGetFirstProgramAnnotation(CGprogram);
+CG_API CGannotation CGENTRY cgGetFirstEffectAnnotation(CGeffect);
+CG_API CGannotation CGENTRY cgGetNextAnnotation(CGannotation);
+
+CG_API CGannotation CGENTRY cgGetNamedTechniqueAnnotation(CGtechnique, const char *);
+CG_API CGannotation CGENTRY cgGetNamedPassAnnotation(CGpass, const char *);
+CG_API CGannotation CGENTRY cgGetNamedParameterAnnotation(CGparameter, const char *);
+CG_API CGannotation CGENTRY cgGetNamedProgramAnnotation(CGprogram, const char *);
+CG_API CGannotation CGENTRY cgGetNamedEffectAnnotation(CGeffect, const char *);
+
+CG_API CGbool CGENTRY cgIsAnnotation(CGannotation);
+
+CG_API const char * CGENTRY cgGetAnnotationName(CGannotation);
+CG_API CGtype CGENTRY cgGetAnnotationType(CGannotation);
+
+CG_API const float * CGENTRY cgGetFloatAnnotationValues(CGannotation, int *nvalues);
+CG_API const int * CGENTRY cgGetIntAnnotationValues(CGannotation, int *nvalues);
+CG_API const char * CGENTRY cgGetStringAnnotationValue(CGannotation);
+CG_API const char * const * CGENTRY cgGetStringAnnotationValues(CGannotation, int *nvalues);
+CG_API const CGbool * CGENTRY cgGetBoolAnnotationValues(CGannotation, int *nvalues);
+CG_API const int * CGENTRY cgGetBooleanAnnotationValues(CGannotation, int *nvalues);
+
+CG_API int CGENTRY cgGetNumDependentAnnotationParameters(CGannotation);
+CG_API CGparameter CGENTRY cgGetDependentAnnotationParameter(CGannotation, int index);
+
+CG_API void CGENTRY cgEvaluateProgram(CGprogram, float *, int ncomps, int nx, int ny, int nz);
+
+/*** Cg 1.5 Additions ***/
+
+CG_API CGbool CGENTRY cgSetEffectName(CGeffect, const char *name);
+CG_API const char * CGENTRY cgGetEffectName(CGeffect);
+CG_API CGeffect CGENTRY cgGetNamedEffect(CGcontext, const char *name);
+CG_API CGparameter CGENTRY cgCreateEffectParameter(CGeffect, const char *name, CGtype);
+
+CG_API CGtechnique CGENTRY cgCreateTechnique(CGeffect, const char *name);
+
+CG_API CGparameter CGENTRY cgCreateEffectParameterArray(CGeffect, const char *name, CGtype type, int length);
+CG_API CGparameter CGENTRY cgCreateEffectParameterMultiDimArray(CGeffect, const char *name, CGtype type, int dim, const int *lengths);
+
+CG_API CGpass CGENTRY cgCreatePass(CGtechnique, const char *name);
+
+CG_API CGstateassignment CGENTRY cgCreateStateAssignment(CGpass, CGstate);
+CG_API CGstateassignment CGENTRY cgCreateStateAssignmentIndex(CGpass, CGstate, int index);
+CG_API CGstateassignment CGENTRY cgCreateSamplerStateAssignment(CGparameter, CGstate);
+
+CG_API CGbool CGENTRY cgSetFloatStateAssignment(CGstateassignment, float);
+CG_API CGbool CGENTRY cgSetIntStateAssignment(CGstateassignment, int);
+CG_API CGbool CGENTRY cgSetBoolStateAssignment(CGstateassignment, CGbool);
+CG_API CGbool CGENTRY cgSetStringStateAssignment(CGstateassignment, const char *);
+CG_API CGbool CGENTRY cgSetProgramStateAssignment(CGstateassignment, CGprogram);
+CG_API CGbool CGENTRY cgSetSamplerStateAssignment(CGstateassignment, CGparameter);
+CG_API CGbool CGENTRY cgSetTextureStateAssignment(CGstateassignment, CGparameter);
+
+CG_API CGbool CGENTRY cgSetFloatArrayStateAssignment(CGstateassignment, const float *vals);
+CG_API CGbool CGENTRY cgSetIntArrayStateAssignment(CGstateassignment, const int *vals);
+CG_API CGbool CGENTRY cgSetBoolArrayStateAssignment(CGstateassignment, const CGbool *vals);
+
+CG_API CGannotation CGENTRY cgCreateTechniqueAnnotation(CGtechnique, const char *name, CGtype);
+CG_API CGannotation CGENTRY cgCreatePassAnnotation(CGpass, const char *name, CGtype);
+CG_API CGannotation CGENTRY cgCreateParameterAnnotation(CGparameter, const char *name, CGtype);
+CG_API CGannotation CGENTRY cgCreateProgramAnnotation(CGprogram, const char *name, CGtype);
+CG_API CGannotation CGENTRY cgCreateEffectAnnotation(CGeffect, const char *name, CGtype);
+
+CG_API CGbool CGENTRY cgSetIntAnnotation(CGannotation, int value);
+CG_API CGbool CGENTRY cgSetFloatAnnotation(CGannotation, float value);
+CG_API CGbool CGENTRY cgSetBoolAnnotation(CGannotation, CGbool value);
+CG_API CGbool CGENTRY cgSetStringAnnotation(CGannotation, const char *value);
+
+CG_API int CGENTRY cgGetNumStateEnumerants(CGstate);
+CG_API const char * CGENTRY cgGetStateEnumerant(CGstate, int index, int* value);
+CG_API const char * CGENTRY cgGetStateEnumerantName(CGstate, int value);
+CG_API int CGENTRY cgGetStateEnumerantValue(CGstate, const char *name);
+
+CG_API CGeffect CGENTRY cgGetParameterEffect(CGparameter param);
+
+CG_API CGparameterclass CGENTRY cgGetTypeClass(CGtype type);
+CG_API CGtype CGENTRY cgGetTypeBase(CGtype type);
+CG_API CGbool CGENTRY cgGetTypeSizes(CGtype type, int *nrows, int *ncols);
+CG_API void CGENTRY cgGetMatrixSize(CGtype type, int *nrows, int *ncols);
+
+CG_API int CGENTRY cgGetNumProgramDomains( CGprogram program );
+CG_API CGdomain CGENTRY cgGetProfileDomain( CGprofile profile );
+CG_API CGprogram CGENTRY cgCombinePrograms( int n, const CGprogram *exeList );
+CG_API CGprogram CGENTRY cgCombinePrograms2( const CGprogram exe1, const CGprogram exe2 );
+CG_API CGprogram CGENTRY cgCombinePrograms3( const CGprogram exe1, const CGprogram exe2, const CGprogram exe3 );
+CG_API CGprofile CGENTRY cgGetProgramDomainProfile(CGprogram program, int index);
+CG_API CGprogram CGENTRY cgGetProgramDomainProgram(CGprogram program, int index);
+
+/*** CGobj Functions ***/
+CG_API CGobj CGENTRY cgCreateObj( CGcontext context, CGenum program_type, const char *source, CGprofile profile, const char **args );
+CG_API CGobj CGENTRY cgCreateObjFromFile( CGcontext context, CGenum program_type, const char *source_file, CGprofile profile, const char **args );
+CG_API void CGENTRY cgDestroyObj( CGobj obj );
+
+CG_API long CGENTRY cgGetParameterResourceSize(CGparameter);
+CG_API CGtype CGENTRY cgGetParameterResourceType(CGparameter);
+CG_API const char* CGENTRY cgGetParameterResourceName(CGparameter param);
+CG_API int CGENTRY cgGetParameterBufferIndex(CGparameter);
+CG_API int CGENTRY cgGetParameterBufferOffset(CGparameter);
+
+CG_API CGbuffer CGENTRY cgCreateBuffer(CGcontext, int size, const void *data, CGbufferusage bufferUsage);
+CG_API void CGENTRY cgSetBufferData(CGbuffer, int size, const void *data);
+CG_API void CGENTRY cgSetBufferSubData(CGbuffer, int offset, int size, const void *data);
+CG_API void CGENTRY cgSetProgramBuffer(CGprogram program, int bufferIndex, CGbuffer buffer);
+
+CG_API void * CGENTRY cgMapBuffer(CGbuffer buffer, CGbufferaccess access);
+CG_API void CGENTRY cgUnmapBuffer(CGbuffer buffer);
+CG_API void CGENTRY cgDestroyBuffer(CGbuffer buffer);
+CG_API CGbuffer CGENTRY cgGetProgramBuffer(CGprogram, int bufferIndex);
+CG_API int CGENTRY cgGetBufferSize(CGbuffer);
+CG_API int CGENTRY cgGetProgramBufferMaxSize(CGprofile profile);
+CG_API int CGENTRY cgGetProgramBufferMaxIndex(CGprofile profile);
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef CG_APIENTRY_DEFINED
+# undef CG_APIENTRY_DEFINED
+# undef APIENTRY
+#endif
+
+#ifdef CG_WINGDIAPI_DEFINED
+# undef CG_WINGDIAPI_DEFINED
+# undef WINGDIAPI
+#endif
+
+#endif
diff --git a/Externals/cg/2.2/include/Cg/cgD3D10.h b/Externals/cg/2.2/include/Cg/cgD3D10.h
new file mode 100644
index 00000000..0a0b6b72
--- /dev/null
+++ b/Externals/cg/2.2/include/Cg/cgD3D10.h
@@ -0,0 +1,238 @@
+/*
+ *
+ * Copyright (c) 2008-2010, NVIDIA Corporation.
+ *
+ *
+ *
+ * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
+ * of your agreement to the following terms, and your use, installation,
+ * modification or redistribution of this NVIDIA software constitutes
+ * acceptance of these terms. If you do not agree with these terms, please do
+ * not use, install, modify or redistribute this NVIDIA software.
+ *
+ *
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
+ * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
+ * Software"), to use, reproduce, modify and redistribute the NVIDIA
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the NVIDIA Software, you must retain the
+ * copyright notice of NVIDIA, this notice and the following text and
+ * disclaimers in all such redistributions of the NVIDIA Software. Neither the
+ * name, trademarks, service marks nor logos of NVIDIA Corporation may be used
+ * to endorse or promote products derived from the NVIDIA Software without
+ * specific prior written permission from NVIDIA. Except as expressly stated
+ * in this notice, no other rights or licenses express or implied, are granted
+ * by NVIDIA herein, including but not limited to any patent rights that may be
+ * infringed by your derivative works or by other works in which the NVIDIA
+ * Software may be incorporated. No hardware is licensed hereunder.
+ *
+ *
+ *
+ * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
+ * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
+ * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
+ *
+ *
+ *
+ * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
+ * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
+ * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
+ * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
+ * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
+ * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+#ifndef __CGD3D10_H__
+#define __CGD3D10_H__
+
+#ifdef _WIN32
+
+#pragma once
+
+#include <windows.h>
+#include <d3d10.h>
+
+#include "Cg/cg.h"
+
+
+
+// Set up for either Win32 import/export/lib.
+#ifdef CGD3D10DLL_EXPORTS
+#define CGD3D10DLL_API __declspec(dllexport)
+#elif defined (CG_LIB)
+#define CGD3D10DLL_API
+#else
+#define CGD3D10DLL_API __declspec(dllimport)
+#endif
+
+#ifndef CGD3D10ENTRY
+# ifdef _WIN32
+# define CGD3D10ENTRY __cdecl
+# else
+# define CGD3D10ENTRY
+# endif
+#endif
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#ifndef CGD3D10_EXPLICIT
+
+/* ----- D3D Device Control ----- */
+
+CGD3D10DLL_API ID3D10Device * CGD3D10ENTRY
+cgD3D10GetDevice(
+ CGcontext Context
+);
+
+CGD3D10DLL_API HRESULT CGD3D10ENTRY
+cgD3D10SetDevice(
+ CGcontext Context,
+ ID3D10Device * pDevice
+);
+
+/* ----- Texture Functions ----- */
+
+CGD3D10DLL_API void CGD3D10ENTRY
+cgD3D10SetTextureParameter(
+ CGparameter Parameter,
+ ID3D10Resource * pTexture
+);
+
+CGD3D10DLL_API void CGD3D10ENTRY
+cgD3D10SetSamplerStateParameter(
+ CGparameter Parameter,
+ ID3D10SamplerState * pSamplerState
+);
+
+CGD3D10DLL_API void CGD3D10ENTRY
+cgD3D10SetTextureSamplerStateParameter(
+ CGparameter Parameter,
+ ID3D10Resource * pTexture,
+ ID3D10SamplerState * pSamplerState
+);
+
+/* ----- Shader Management ----- */
+
+CGD3D10DLL_API HRESULT CGD3D10ENTRY
+cgD3D10LoadProgram(
+ CGprogram Program,
+ UINT Flags
+);
+
+CGD3D10DLL_API ID3D10Blob * CGD3D10ENTRY
+cgD3D10GetCompiledProgram(
+ CGprogram Program
+);
+
+CGD3D10DLL_API ID3D10Blob * CGD3D10ENTRY
+cgD3D10GetProgramErrors(
+ CGprogram Program
+);
+
+CGD3D10DLL_API CGbool CGD3D10ENTRY
+cgD3D10IsProgramLoaded(
+ CGprogram Program
+);
+
+CGD3D10DLL_API HRESULT CGD3D10ENTRY
+cgD3D10BindProgram(
+ CGprogram Program
+);
+
+CGD3D10DLL_API void CGD3D10ENTRY
+cgD3D10UnloadProgram(
+ CGprogram Program
+);
+
+/* ----- Buffer Management ----- */
+
+CGD3D10DLL_API ID3D10Buffer * CGD3D10ENTRY
+cgD3D10GetBufferByIndex(
+ CGprogram Program,
+ UINT Index
+);
+
+/* ----- CgFX ----- */
+
+CGD3D10DLL_API void CGD3D10ENTRY
+cgD3D10RegisterStates(
+ CGcontext Context
+);
+
+CGD3D10DLL_API void CGD3D10ENTRY
+cgD3D10SetManageTextureParameters(
+ CGcontext Context,
+ CGbool Flag
+);
+
+CGD3D10DLL_API CGbool CGD3D10ENTRY
+cgD3D10GetManageTextureParameters(
+ CGcontext Context
+);
+
+CGD3D10DLL_API ID3D10Blob * CGD3D10ENTRY
+cgD3D10GetIASignatureByPass(
+ CGpass Pass
+);
+
+/* ----- Profile Options ----- */
+
+CGD3D10DLL_API CGprofile CGD3D10ENTRY
+cgD3D10GetLatestVertexProfile();
+
+CGD3D10DLL_API CGprofile CGD3D10ENTRY
+cgD3D10GetLatestGeometryProfile();
+
+CGD3D10DLL_API CGprofile CGD3D10ENTRY
+cgD3D10GetLatestPixelProfile();
+
+CGD3D10DLL_API CGbool CGD3D10ENTRY
+cgD3D10IsProfileSupported(
+ CGprofile Profile
+);
+
+/* ----- Utility Functions ----- */
+
+CGD3D10DLL_API DWORD CGD3D10ENTRY
+cgD3D10TypeToSize(
+ CGtype Type
+);
+
+CGD3D10DLL_API HRESULT CGD3D10ENTRY
+cgD3D10GetLastError();
+
+CGD3D10DLL_API const char ** CGD3D10ENTRY
+cgD3D10GetOptimalOptions(
+ CGprofile Profile
+);
+
+CGD3D10DLL_API const char * CGD3D10ENTRY
+cgD3D10TranslateCGerror(
+ CGerror Error
+);
+
+CGD3D10DLL_API const char * CGD3D10ENTRY
+cgD3D10TranslateHRESULT(
+ HRESULT hr
+);
+
+#endif // #ifndef CGD3D10_EXPLICIT
+
+#ifdef __cplusplus
+}; // extern "C"
+#endif
+
+#endif // #ifdef _WIN32
+
+#endif // #ifndef __CGD3D10_H__
diff --git a/Externals/cg/2.2/include/Cg/cgD3D8.h b/Externals/cg/2.2/include/Cg/cgD3D8.h
new file mode 100644
index 00000000..f92cee16
--- /dev/null
+++ b/Externals/cg/2.2/include/Cg/cgD3D8.h
@@ -0,0 +1,279 @@
+/*
+ *
+ * Copyright (c) 2002-2010, NVIDIA Corporation.
+ *
+ *
+ *
+ * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
+ * of your agreement to the following terms, and your use, installation,
+ * modification or redistribution of this NVIDIA software constitutes
+ * acceptance of these terms. If you do not agree with these terms, please do
+ * not use, install, modify or redistribute this NVIDIA software.
+ *
+ *
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
+ * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
+ * Software"), to use, reproduce, modify and redistribute the NVIDIA
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the NVIDIA Software, you must retain the
+ * copyright notice of NVIDIA, this notice and the following text and
+ * disclaimers in all such redistributions of the NVIDIA Software. Neither the
+ * name, trademarks, service marks nor logos of NVIDIA Corporation may be used
+ * to endorse or promote products derived from the NVIDIA Software without
+ * specific prior written permission from NVIDIA. Except as expressly stated
+ * in this notice, no other rights or licenses express or implied, are granted
+ * by NVIDIA herein, including but not limited to any patent rights that may be
+ * infringed by your derivative works or by other works in which the NVIDIA
+ * Software may be incorporated. No hardware is licensed hereunder.
+ *
+ *
+ *
+ * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
+ * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
+ * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
+ *
+ *
+ *
+ * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
+ * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
+ * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
+ * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
+ * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
+ * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+#ifndef CGD3D8_INCLUDED
+#define CGD3D8_INCLUDED
+
+#ifdef _WIN32
+
+#pragma once
+
+#include "cg.h"
+#include <d3d8.h>
+#include <d3dx8.h>
+
+// Set up for either Win32 import/export/lib.
+#include <windows.h>
+#ifdef CGD3D8DLL_EXPORTS
+#define CGD3D8DLL_API __declspec(dllexport)
+#elif defined (CG_LIB)
+#define CGD3D8DLL_API
+#else
+#define CGD3D8DLL_API __declspec(dllimport)
+#endif
+
+#ifndef CGD3D8ENTRY
+# ifdef _WIN32
+# define CGD3D8ENTRY __cdecl
+# else
+# define CGD3D8ENTRY
+# endif
+#endif
+
+/*---------------------------------------------------------------------------
+// CGerrors that will be fed to cgSetError
+// Use cgD3D8TranslateCGerror() to translate these errors into strings.
+---------------------------------------------------------------------------*/
+enum cgD3D8Errors
+{
+ cgD3D8Failed = 1000,
+ cgD3D8DebugTrace = 1001,
+};
+
+/*---------------------------------------------------------------------------
+// HRESULTs specific to cgD3D8. When the CGerror is set to cgD3D8Failed
+// cgD3D8GetLastError will return an HRESULT that could be one these.
+// Use cgD3D8TranslateHRESULT() to translate these errors into strings.
+---------------------------------------------------------------------------*/
+static const HRESULT CGD3D8ERR_NOTLOADED = MAKE_HRESULT(1, 0x877, 1);
+static const HRESULT CGD3D8ERR_NODEVICE = MAKE_HRESULT(1, 0x877, 2);
+static const HRESULT CGD3D8ERR_NOTSAMPLER = MAKE_HRESULT(1, 0x877, 3);
+static const HRESULT CGD3D8ERR_INVALIDPROFILE = MAKE_HRESULT(1, 0x877, 4);
+static const HRESULT CGD3D8ERR_NULLVALUE = MAKE_HRESULT(1, 0x877, 5);
+static const HRESULT CGD3D8ERR_OUTOFRANGE = MAKE_HRESULT(1, 0x877, 6);
+static const HRESULT CGD3D8ERR_NOTUNIFORM = MAKE_HRESULT(1, 0x877, 7);
+static const HRESULT CGD3D8ERR_NOTMATRIX = MAKE_HRESULT(1, 0x877, 8);
+static const HRESULT CGD3D8ERR_INVALIDPARAM = MAKE_HRESULT(1, 0x877, 9);
+
+static const HRESULT CGD3D8ERR_INVALIDSAMPLERSTATE = MAKE_HRESULT(1, 0x877, 100);
+static const HRESULT CGD3D8ERR_INVALIDVEREXDECL = MAKE_HRESULT(1, 0x877, 101);
+
+/*---------------------------------------------------------------------------
+// Other error return values
+---------------------------------------------------------------------------*/
+static const DWORD CGD3D8_INVALID_REG = 0xFFFFFFFF;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/*---------------------------------------------------------------------------
+// Minimal Interface
+---------------------------------------------------------------------------*/
+
+CGD3D8DLL_API DWORD CGD3D8ENTRY
+cgD3D8TypeToSize(
+ CGtype type
+);
+
+CGD3D8DLL_API DWORD CGD3D8ENTRY
+cgD3D8ResourceToInputRegister(
+ CGresource resource
+);
+
+CGD3D8DLL_API CGbool CGD3D8ENTRY
+cgD3D8GetVertexDeclaration(
+ CGprogram prog,
+ DWORD decl[MAX_FVF_DECL_SIZE]
+);
+
+CGD3D8DLL_API CGbool CGD3D8ENTRY
+cgD3D8ValidateVertexDeclaration(
+ CGprogram prog,
+ const DWORD* decl
+);
+
+/*---------------------------------------------------------------------------
+// Expanded Interface
+---------------------------------------------------------------------------*/
+
+/* ----- D3D Device Control ----------- */
+CGD3D8DLL_API IDirect3DDevice8 * CGD3D8ENTRY
+cgD3D8GetDevice();
+
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8SetDevice(
+ IDirect3DDevice8* pDevice
+);
+
+/* ----- Shader Management ----------- */
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8LoadProgram(
+ CGprogram prog,
+ CGbool paramShadowing,
+ DWORD assemFlags,
+ DWORD vshaderUsage,
+ const DWORD* vertexDecl
+);
+
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8UnloadProgram(
+ CGprogram prog
+);
+
+CGD3D8DLL_API CGbool CGD3D8ENTRY
+cgD3D8IsProgramLoaded(
+ CGprogram prog
+);
+
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8BindProgram(
+ CGprogram prog
+);
+
+/* ----- Parameter Management ----------- */
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8SetUniform(
+ CGparameter param,
+ const void* floats
+);
+
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8SetUniformArray(
+ CGparameter param,
+ DWORD offset,
+ DWORD numItems,
+ const void* values
+);
+
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8SetUniformMatrix(
+ CGparameter param,
+ const D3DMATRIX* matrix
+);
+
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8SetUniformMatrixArray(
+ CGparameter param,
+ DWORD offset,
+ DWORD numItems,
+ const D3DMATRIX* matrices
+);
+
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8SetTexture(
+ CGparameter param,
+ IDirect3DBaseTexture8* tex
+);
+
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8SetTextureStageState(
+ CGparameter param,
+ D3DTEXTURESTAGESTATETYPE type,
+ DWORD value
+);
+
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8SetTextureWrapMode(
+ CGparameter param,
+ DWORD value
+);
+
+/* ----- Parameter Management (Shadowing) ----------- */
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8EnableParameterShadowing(
+ CGprogram prog,
+ CGbool enable
+);
+
+CGD3D8DLL_API CGbool CGD3D8ENTRY
+cgD3D8IsParameterShadowingEnabled(
+ CGprogram prog
+);
+
+/* --------- Profile Options ----------------- */
+CGD3D8DLL_API CGprofile CGD3D8ENTRY
+cgD3D8GetLatestVertexProfile();
+
+CGD3D8DLL_API CGprofile CGD3D8ENTRY
+cgD3D8GetLatestPixelProfile();
+
+CGD3D8DLL_API const char * CGD3D8ENTRY
+cgD3D8GetOptimalOptions(
+ CGprofile profile
+);
+
+/* --------- Error reporting ----------------- */
+CGD3D8DLL_API HRESULT CGD3D8ENTRY
+cgD3D8GetLastError();
+
+CGD3D8DLL_API const char * CGD3D8ENTRY
+cgD3D8TranslateCGerror(
+ CGerror error
+);
+
+CGD3D8DLL_API const char * CGD3D8ENTRY
+cgD3D8TranslateHRESULT(
+ HRESULT hr
+);
+
+CGD3D8DLL_API void CGD3D8ENTRY
+cgD3D8EnableDebugTracing(
+ CGbool enable
+);
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif // _WIN32
+
+#endif
diff --git a/Externals/cg/2.2/include/Cg/cgD3D9.h b/Externals/cg/2.2/include/Cg/cgD3D9.h
new file mode 100644
index 00000000..af6db187
--- /dev/null
+++ b/Externals/cg/2.2/include/Cg/cgD3D9.h
@@ -0,0 +1,317 @@
+/*
+ *
+ * Copyright (c) 2002-2010, NVIDIA Corporation.
+ *
+ *
+ *
+ * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
+ * of your agreement to the following terms, and your use, installation,
+ * modification or redistribution of this NVIDIA software constitutes
+ * acceptance of these terms. If you do not agree with these terms, please do
+ * not use, install, modify or redistribute this NVIDIA software.
+ *
+ *
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
+ * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
+ * Software"), to use, reproduce, modify and redistribute the NVIDIA
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the NVIDIA Software, you must retain the
+ * copyright notice of NVIDIA, this notice and the following text and
+ * disclaimers in all such redistributions of the NVIDIA Software. Neither the
+ * name, trademarks, service marks nor logos of NVIDIA Corporation may be used
+ * to endorse or promote products derived from the NVIDIA Software without
+ * specific prior written permission from NVIDIA. Except as expressly stated
+ * in this notice, no other rights or licenses express or implied, are granted
+ * by NVIDIA herein, including but not limited to any patent rights that may be
+ * infringed by your derivative works or by other works in which the NVIDIA
+ * Software may be incorporated. No hardware is licensed hereunder.
+ *
+ *
+ *
+ * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
+ * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
+ * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
+ *
+ *
+ *
+ * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
+ * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
+ * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
+ * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
+ * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
+ * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+#ifndef CGD3D9_INCLUDED
+#define CGD3D9_INCLUDED
+
+#ifdef _WIN32
+
+#pragma once
+
+#include "cg.h"
+#include <d3d9.h>
+#include <d3dx9.h>
+
+// Set up for either Win32 import/export/lib.
+#include <windows.h>
+#ifdef CGD3D9DLL_EXPORTS
+#define CGD3D9DLL_API __declspec(dllexport)
+#elif defined (CG_LIB)
+#define CGD3D9DLL_API
+#else
+#define CGD3D9DLL_API __declspec(dllimport)
+#endif
+
+#ifndef CGD3D9ENTRY
+# ifdef _WIN32
+# define CGD3D9ENTRY __cdecl
+# else
+# define CGD3D9ENTRY
+# endif
+#endif
+
+/*---------------------------------------------------------------------------
+// CGerrors that will be fed to cgSetError
+// Use cgD3D9TranslateCGerror() to translate these errors into strings.
+---------------------------------------------------------------------------*/
+enum cgD3D9Errors
+{
+ cgD3D9Failed = 1000,
+ cgD3D9DebugTrace = 1001,
+};
+
+/*---------------------------------------------------------------------------
+// HRESULTs specific to cgD3D9. When the CGerror is set to cgD3D9Failed
+// cgD3D9GetLastError will return an HRESULT that could be one these.
+// Use cgD3D9TranslateHRESULT() to translate these errors into strings.
+---------------------------------------------------------------------------*/
+static const HRESULT CGD3D9ERR_NOTLOADED = MAKE_HRESULT(1, 0x877, 1);
+static const HRESULT CGD3D9ERR_NODEVICE = MAKE_HRESULT(1, 0x877, 2);
+static const HRESULT CGD3D9ERR_NOTSAMPLER = MAKE_HRESULT(1, 0x877, 3);
+static const HRESULT CGD3D9ERR_INVALIDPROFILE = MAKE_HRESULT(1, 0x877, 4);
+static const HRESULT CGD3D9ERR_NULLVALUE = MAKE_HRESULT(1, 0x877, 5);
+static const HRESULT CGD3D9ERR_OUTOFRANGE = MAKE_HRESULT(1, 0x877, 6);
+static const HRESULT CGD3D9ERR_NOTUNIFORM = MAKE_HRESULT(1, 0x877, 7);
+static const HRESULT CGD3D9ERR_NOTMATRIX = MAKE_HRESULT(1, 0x877, 8);
+static const HRESULT CGD3D9ERR_INVALIDPARAM = MAKE_HRESULT(1, 0x877, 9);
+
+/*---------------------------------------------------------------------------
+// Other error return values
+---------------------------------------------------------------------------*/
+static const DWORD CGD3D9_INVALID_USAGE = 0xFF;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#ifndef CGD3D9_EXPLICIT
+
+/*---------------------------------------------------------------------------
+// Minimal Interface
+---------------------------------------------------------------------------*/
+
+CGD3D9DLL_API DWORD CGD3D9ENTRY
+cgD3D9TypeToSize(
+ CGtype type
+);
+
+CGD3D9DLL_API BYTE CGD3D9ENTRY
+cgD3D9ResourceToDeclUsage(
+ CGresource resource
+);
+
+CGD3D9DLL_API CGbool CGD3D9ENTRY
+cgD3D9GetVertexDeclaration(
+ CGprogram prog,
+ D3DVERTEXELEMENT9 decl[MAXD3DDECLLENGTH]
+);
+
+CGD3D9DLL_API CGbool CGD3D9ENTRY
+cgD3D9ValidateVertexDeclaration(
+ CGprogram prog,
+ const D3DVERTEXELEMENT9* decl
+);
+
+/*---------------------------------------------------------------------------
+// Expanded Interface
+---------------------------------------------------------------------------*/
+
+/* ----- D3D Device Control ----------- */
+CGD3D9DLL_API IDirect3DDevice9 * CGD3D9ENTRY
+cgD3D9GetDevice();
+
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9SetDevice(
+ IDirect3DDevice9* pDevice
+);
+
+/* ----- Shader Management ----------- */
+
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9LoadProgram(
+ CGprogram prog,
+ CGbool paramShadowing,
+ DWORD assemFlags
+);
+
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9UnloadProgram(
+ CGprogram prog
+);
+
+CGD3D9DLL_API CGbool CGD3D9ENTRY
+cgD3D9IsProgramLoaded(
+ CGprogram prog
+);
+
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9BindProgram(
+ CGprogram prog
+);
+
+/* ----- Parameter Management ----------- */
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9SetUniform(
+ CGparameter param,
+ const void* floats
+);
+
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9SetUniformArray(
+ CGparameter param,
+ DWORD offset,
+ DWORD numItems,
+ const void* values
+);
+
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9SetUniformMatrix(
+ CGparameter param,
+ const D3DMATRIX* matrix
+);
+
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9SetUniformMatrixArray(
+ CGparameter param,
+ DWORD offset,
+ DWORD numItems,
+ const D3DMATRIX* matrices
+);
+
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9SetTexture(
+ CGparameter param,
+ IDirect3DBaseTexture9* tex
+);
+
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9SetSamplerState(
+ CGparameter param,
+ D3DSAMPLERSTATETYPE type,
+ DWORD value
+);
+
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9SetTextureWrapMode(
+ CGparameter param,
+ DWORD value
+);
+
+/* ----- Parameter Management (Shadowing) ----------- */
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9EnableParameterShadowing(
+ CGprogram prog,
+ CGbool enable
+);
+
+CGD3D9DLL_API CGbool CGD3D9ENTRY
+cgD3D9IsParameterShadowingEnabled(
+ CGprogram prog
+);
+
+/* --------- Profile Options ----------------- */
+CGD3D9DLL_API CGprofile CGD3D9ENTRY
+cgD3D9GetLatestVertexProfile();
+
+CGD3D9DLL_API CGprofile CGD3D9ENTRY
+cgD3D9GetLatestPixelProfile();
+
+CGD3D9DLL_API const char * * CGD3D9ENTRY
+cgD3D9GetOptimalOptions(
+ CGprofile profile
+);
+
+CGD3D9DLL_API CGbool CGD3D9ENTRY
+cgD3D9IsProfileSupported(
+ CGprofile profile
+);
+
+/* --------- Error reporting ----------------- */
+CGD3D9DLL_API HRESULT CGD3D9ENTRY
+cgD3D9GetLastError();
+
+CGD3D9DLL_API const char * CGD3D9ENTRY
+cgD3D9TranslateCGerror(
+ CGerror error
+);
+
+CGD3D9DLL_API const char * CGD3D9ENTRY
+cgD3D9TranslateHRESULT(
+ HRESULT hr
+);
+
+CGD3D9DLL_API void CGD3D9ENTRY
+cgD3D9EnableDebugTracing(
+ CGbool enable
+);
+
+/* --------- CgFX support -------------------- */
+
+CGD3D9DLL_API void CGD3D9ENTRY
+cgD3D9RegisterStates(
+ CGcontext ctx
+);
+
+CGD3D9DLL_API void CGD3D9ENTRY
+cgD3D9SetManageTextureParameters(
+ CGcontext ctx,
+ CGbool flag
+);
+
+CGD3D9DLL_API CGbool CGD3D9ENTRY
+cgD3D9GetManageTextureParameters(
+ CGcontext ctx
+);
+
+CGD3D9DLL_API IDirect3DBaseTexture9 * CGD3D9ENTRY
+cgD3D9GetTextureParameter(
+ CGparameter param
+);
+
+CGD3D9DLL_API void CGD3D9ENTRY
+cgD3D9SetTextureParameter(
+ CGparameter param,
+ IDirect3DBaseTexture9 *tex
+);
+
+CGD3D9DLL_API void CGD3D9ENTRY
+cgD3D9UnloadAllPrograms( void );
+
+
+#endif
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif // _WIN32
+
+#endif
diff --git a/Externals/cg/2.2/include/Cg/cgGL.h b/Externals/cg/2.2/include/Cg/cgGL.h
new file mode 100644
index 00000000..48806a69
--- /dev/null
+++ b/Externals/cg/2.2/include/Cg/cgGL.h
@@ -0,0 +1,427 @@
+/*
+ *
+ * Copyright (c) 2002-2010, NVIDIA Corporation.
+ *
+ *
+ *
+ * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
+ * of your agreement to the following terms, and your use, installation,
+ * modification or redistribution of this NVIDIA software constitutes
+ * acceptance of these terms. If you do not agree with these terms, please do
+ * not use, install, modify or redistribute this NVIDIA software.
+ *
+ *
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
+ * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
+ * Software"), to use, reproduce, modify and redistribute the NVIDIA
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the NVIDIA Software, you must retain the
+ * copyright notice of NVIDIA, this notice and the following text and
+ * disclaimers in all such redistributions of the NVIDIA Software. Neither the
+ * name, trademarks, service marks nor logos of NVIDIA Corporation may be used
+ * to endorse or promote products derived from the NVIDIA Software without
+ * specific prior written permission from NVIDIA. Except as expressly stated
+ * in this notice, no other rights or licenses express or implied, are granted
+ * by NVIDIA herein, including but not limited to any patent rights that may be
+ * infringed by your derivative works or by other works in which the NVIDIA
+ * Software may be incorporated. No hardware is licensed hereunder.
+ *
+ *
+ *
+ * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
+ * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
+ * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
+ *
+ *
+ *
+ * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
+ * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
+ * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
+ * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
+ * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
+ * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef _cggl_h
+#define _cggl_h
+
+#include <Cg/cg.h>
+
+#ifdef _WIN32
+# ifndef APIENTRY /* From Win32's <windef.h> */
+# define CGGL_APIENTRY_DEFINED
+# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__)
+# define APIENTRY __stdcall
+# else
+# define APIENTRY
+# endif
+# endif
+# ifndef WINGDIAPI /* From Win32's <wingdi.h> and <winnt.h> */
+# define CGGL_WINGDIAPI_DEFINED
+# define WINGDIAPI __declspec(dllimport)
+# endif
+#endif /* _WIN32 */
+
+/* Set up for either Win32 import/export/lib. */
+#ifndef CGGL_API
+# ifdef CGGL_EXPORTS
+# ifdef _WIN32
+# define CGGL_API __declspec(dllexport)
+# elif defined(__GNUC__) && __GNUC__>=4
+# define CGGL_API __attribute__ ((visibility("default")))
+# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
+# define CGGL_API __global
+# else
+# define CGGL_API
+# endif
+# else
+# define CGGL_API
+# endif
+#endif
+
+#ifndef CGGLENTRY
+# ifdef _WIN32
+# define CGGLENTRY __cdecl
+# else
+# define CGGLENTRY
+# endif
+#endif
+
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#else
+#include <GL/gl.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*****************************************************************************/
+/*** cgGL Type Definitions ***/
+/*****************************************************************************/
+
+typedef enum
+ {
+ CG_GL_MATRIX_IDENTITY = 0,
+ CG_GL_MATRIX_TRANSPOSE = 1,
+ CG_GL_MATRIX_INVERSE = 2,
+ CG_GL_MATRIX_INVERSE_TRANSPOSE = 3,
+
+ CG_GL_MODELVIEW_MATRIX,
+ CG_GL_PROJECTION_MATRIX,
+ CG_GL_TEXTURE_MATRIX,
+ CG_GL_MODELVIEW_PROJECTION_MATRIX,
+
+ CG_GL_VERTEX,
+ CG_GL_FRAGMENT,
+ CG_GL_GEOMETRY
+
+ } CGGLenum;
+
+
+#ifndef CGGL_EXPLICIT
+
+/******************************************************************************
+ *** Profile Functions
+ *****************************************************************************/
+
+CGGL_API CGbool CGGLENTRY cgGLIsProfileSupported(CGprofile profile);
+
+CGGL_API void CGGLENTRY cgGLEnableProfile(CGprofile profile);
+CGGL_API void CGGLENTRY cgGLDisableProfile(CGprofile profile);
+
+CGGL_API CGprofile CGGLENTRY cgGLGetLatestProfile(CGGLenum profile_type);
+CGGL_API void CGGLENTRY cgGLSetOptimalOptions(CGprofile profile);
+CGGL_API char const ** CGGLENTRY cgGLGetOptimalOptions(CGprofile profile);
+
+/******************************************************************************
+ *** Program Managment Functions
+ *****************************************************************************/
+
+CGGL_API void CGGLENTRY cgGLLoadProgram(CGprogram program);
+CGGL_API void CGGLENTRY cgGLUnloadProgram(CGprogram program);
+CGGL_API CGbool CGGLENTRY cgGLIsProgramLoaded(CGprogram program);
+CGGL_API void CGGLENTRY cgGLBindProgram(CGprogram program);
+CGGL_API void CGGLENTRY cgGLUnbindProgram(CGprofile profile);
+CGGL_API GLuint CGGLENTRY cgGLGetProgramID(CGprogram program);
+
+/******************************************************************************
+ *** Parameter Managment Functions
+ *****************************************************************************/
+
+CGGL_API void CGGLENTRY cgGLSetParameter1f(CGparameter param,
+ float x);
+
+CGGL_API void CGGLENTRY cgGLSetParameter2f(CGparameter param,
+ float x,
+ float y);
+
+CGGL_API void CGGLENTRY cgGLSetParameter3f(CGparameter param,
+ float x,
+ float y,
+ float z);
+
+CGGL_API void CGGLENTRY cgGLSetParameter4f(CGparameter param,
+ float x,
+ float y,
+ float z,
+ float w);
+
+CGGL_API void CGGLENTRY cgGLSetParameter1fv(CGparameter param, const float *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameter2fv(CGparameter param, const float *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameter3fv(CGparameter param, const float *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameter4fv(CGparameter param, const float *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameter1d(CGparameter param,
+ double x);
+
+CGGL_API void CGGLENTRY cgGLSetParameter2d(CGparameter param,
+ double x,
+ double y);
+
+CGGL_API void CGGLENTRY cgGLSetParameter3d(CGparameter param,
+ double x,
+ double y,
+ double z);
+
+CGGL_API void CGGLENTRY cgGLSetParameter4d(CGparameter param,
+ double x,
+ double y,
+ double z,
+ double w);
+
+CGGL_API void CGGLENTRY cgGLSetParameter1dv(CGparameter param, const double *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameter2dv(CGparameter param, const double *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameter3dv(CGparameter param, const double *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameter4dv(CGparameter param, const double *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameter1f(CGparameter param, float *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameter2f(CGparameter param, float *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameter3f(CGparameter param, float *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameter4f(CGparameter param, float *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameter1d(CGparameter param, double *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameter2d(CGparameter param, double *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameter3d(CGparameter param, double *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameter4d(CGparameter param, double *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameterArray1f(CGparameter param,
+ long offset,
+ long nelements,
+ const float *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameterArray2f(CGparameter param,
+ long offset,
+ long nelements,
+ const float *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameterArray3f(CGparameter param,
+ long offset,
+ long nelements,
+ const float *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameterArray4f(CGparameter param,
+ long offset,
+ long nelements,
+ const float *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameterArray1d(CGparameter param,
+ long offset,
+ long nelements,
+ const double *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameterArray2d(CGparameter param,
+ long offset,
+ long nelements,
+ const double *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameterArray3d(CGparameter param,
+ long offset,
+ long nelements,
+ const double *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameterArray4d(CGparameter param,
+ long offset,
+ long nelements,
+ const double *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameterArray1f(CGparameter param,
+ long offset,
+ long nelements,
+ float *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameterArray2f(CGparameter param,
+ long offset,
+ long nelements,
+ float *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameterArray3f(CGparameter param,
+ long offset,
+ long nelements,
+ float *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameterArray4f(CGparameter param,
+ long offset,
+ long nelements,
+ float *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameterArray1d(CGparameter param,
+ long offset,
+ long nelements,
+ double *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameterArray2d(CGparameter param,
+ long offset,
+ long nelements,
+ double *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameterArray3d(CGparameter param,
+ long offset,
+ long nelements,
+ double *v);
+
+CGGL_API void CGGLENTRY cgGLGetParameterArray4d(CGparameter param,
+ long offset,
+ long nelements,
+ double *v);
+
+CGGL_API void CGGLENTRY cgGLSetParameterPointer(CGparameter param,
+ GLint fsize,
+ GLenum type,
+ GLsizei stride,
+ const GLvoid *pointer);
+
+CGGL_API void CGGLENTRY cgGLEnableClientState(CGparameter param);
+CGGL_API void CGGLENTRY cgGLDisableClientState(CGparameter param);
+
+/******************************************************************************
+ *** Matrix Parameter Managment Functions
+ *****************************************************************************/
+
+CGGL_API void CGGLENTRY cgGLSetMatrixParameterdr(CGparameter param,
+ const double *matrix);
+CGGL_API void CGGLENTRY cgGLSetMatrixParameterfr(CGparameter param,
+ const float *matrix);
+CGGL_API void CGGLENTRY cgGLSetMatrixParameterdc(CGparameter param,
+ const double *matrix);
+CGGL_API void CGGLENTRY cgGLSetMatrixParameterfc(CGparameter param,
+ const float *matrix);
+
+CGGL_API void CGGLENTRY cgGLGetMatrixParameterdr(CGparameter param, double *matrix);
+CGGL_API void CGGLENTRY cgGLGetMatrixParameterfr(CGparameter param, float *matrix);
+CGGL_API void CGGLENTRY cgGLGetMatrixParameterdc(CGparameter param, double *matrix);
+CGGL_API void CGGLENTRY cgGLGetMatrixParameterfc(CGparameter param, float *matrix);
+
+CGGL_API void CGGLENTRY cgGLSetStateMatrixParameter(CGparameter param,
+ CGGLenum matrix,
+ CGGLenum transform);
+
+CGGL_API void CGGLENTRY cgGLSetMatrixParameterArrayfc(CGparameter param,
+ long offset,
+ long nelements,
+ const float *matrices);
+
+CGGL_API void CGGLENTRY cgGLSetMatrixParameterArrayfr(CGparameter param,
+ long offset,
+ long nelements,
+ const float *matrices);
+
+CGGL_API void CGGLENTRY cgGLSetMatrixParameterArraydc(CGparameter param,
+ long offset,
+ long nelements,
+ const double *matrices);
+
+CGGL_API void CGGLENTRY cgGLSetMatrixParameterArraydr(CGparameter param,
+ long offset,
+ long nelements,
+ const double *matrices);
+
+CGGL_API void CGGLENTRY cgGLGetMatrixParameterArrayfc(CGparameter param,
+ long offset,
+ long nelements,
+ float *matrices);
+
+CGGL_API void CGGLENTRY cgGLGetMatrixParameterArrayfr(CGparameter param,
+ long offset,
+ long nelements,
+ float *matrices);
+
+CGGL_API void CGGLENTRY cgGLGetMatrixParameterArraydc(CGparameter param,
+ long offset,
+ long nelements,
+ double *matrices);
+
+CGGL_API void CGGLENTRY cgGLGetMatrixParameterArraydr(CGparameter param,
+ long offset,
+ long nelements,
+ double *matrices);
+
+/******************************************************************************
+ *** Texture Parameter Managment Functions
+ *****************************************************************************/
+
+CGGL_API void CGGLENTRY cgGLSetTextureParameter(CGparameter param, GLuint texobj);
+CGGL_API GLuint CGGLENTRY cgGLGetTextureParameter(CGparameter param);
+CGGL_API void CGGLENTRY cgGLEnableTextureParameter(CGparameter param);
+CGGL_API void CGGLENTRY cgGLDisableTextureParameter(CGparameter param);
+CGGL_API GLenum CGGLENTRY cgGLGetTextureEnum(CGparameter param);
+
+CGGL_API void CGGLENTRY cgGLSetManageTextureParameters(CGcontext ctx, CGbool flag);
+CGGL_API CGbool CGGLENTRY cgGLGetManageTextureParameters(CGcontext ctx);
+
+CGGL_API void CGGLENTRY cgGLSetupSampler(CGparameter param, GLuint texobj);
+CGGL_API void CGGLENTRY cgGLRegisterStates(CGcontext);
+
+CGGL_API void CGGLENTRY cgGLEnableProgramProfiles( CGprogram program );
+CGGL_API void CGGLENTRY cgGLDisableProgramProfiles( CGprogram program );
+
+/******************************************************************************
+ *** Misc Functions
+ *****************************************************************************/
+
+CGGL_API void CGGLENTRY cgGLSetDebugMode( CGbool debug );
+
+/******************************************************************************
+ *** Buffer Functions
+ *****************************************************************************/
+
+CGGL_API CGbuffer CGGLENTRY cgGLCreateBuffer(CGcontext context, int size, const void *data, GLenum bufferUsage);
+CGGL_API GLuint CGGLENTRY cgGLGetBufferObject(CGbuffer buffer);
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef CGGL_APIENTRY_DEFINED
+# undef CGGL_APIENTRY_DEFINED
+# undef APIENTRY
+#endif
+
+#ifdef CGGL_WINGDIAPI_DEFINED
+# undef CGGL_WINGDIAPI_DEFINED
+# undef WINGDIAPI
+#endif
+
+#endif
diff --git a/Externals/cg/2.2/include/Cg/cgGL_profiles.h b/Externals/cg/2.2/include/Cg/cgGL_profiles.h
new file mode 100644
index 00000000..8a7cb0b8
--- /dev/null
+++ b/Externals/cg/2.2/include/Cg/cgGL_profiles.h
@@ -0,0 +1,75 @@
+/*
+ *
+ * Copyright (c) 2002-2010, NVIDIA Corporation.
+ *
+ *
+ *
+ * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
+ * of your agreement to the following terms, and your use, installation,
+ * modification or redistribution of this NVIDIA software constitutes
+ * acceptance of these terms. If you do not agree with these terms, please do
+ * not use, install, modify or redistribute this NVIDIA software.
+ *
+ *
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
+ * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
+ * Software"), to use, reproduce, modify and redistribute the NVIDIA
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the NVIDIA Software, you must retain the
+ * copyright notice of NVIDIA, this notice and the following text and
+ * disclaimers in all such redistributions of the NVIDIA Software. Neither the
+ * name, trademarks, service marks nor logos of NVIDIA Corporation may be used
+ * to endorse or promote products derived from the NVIDIA Software without
+ * specific prior written permission from NVIDIA. Except as expressly stated
+ * in this notice, no other rights or licenses express or implied, are granted
+ * by NVIDIA herein, including but not limited to any patent rights that may be
+ * infringed by your derivative works or by other works in which the NVIDIA
+ * Software may be incorporated. No hardware is licensed hereunder.
+ *
+ *
+ *
+ * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
+ * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
+ * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
+ *
+ *
+ *
+ * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
+ * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
+ * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
+ * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
+ * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
+ * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+CG_PROFILE_MACRO(Vertex,vp20,VP20,"vp20",6146,1)
+CG_PROFILE_MACRO(Fragment20,fp20,FP20,"fp20",6147,0)
+CG_PROFILE_MACRO(Vertex30,vp30,VP30,"vp30",6148,1)
+CG_PROFILE_MACRO(Fragment,fp30,FP30,"fp30",6149,0)
+CG_PROFILE_MACRO(ARBVertex,arbvp1,ARBVP1,"arbvp1",6150,1)
+CG_PROFILE_MACRO(Fragment40,fp40,FP40,"fp40",6151,0)
+CG_PROFILE_MACRO(ARBFragment,arbfp1,ARBFP1,"arbfp1",7000,0)
+CG_PROFILE_MACRO(Vertex40,vp40,VP40,"vp40",7001,1)
+CG_PROFILE_MACRO(GLSLVertex,glslv,GLSLV,"glslv",7007,1)
+CG_PROFILE_MACRO(GLSLFragment,glslf,GLSLF,"glslf",7008,0)
+CG_PROFILE_MACRO(GLSLGeometry,glslg,GLSLG,"glslg",7016,0)
+CG_PROFILE_MACRO(GLSLCombined, glslc, GLSLC, "glslc", 7009, 0)
+CG_PROFILE_MACRO(GPUFragment,gpu_fp,GPU_FP,"gp4fp",7010,0)
+CG_PROFILE_MACRO(GPUVertex,gpu_vp,GPU_VP,"gp4vp",7011,1)
+CG_PROFILE_MACRO(GPUGeometry,gpu_gp,GPU_GP,"gp4gp",7012,0)
+
+CG_PROFILE_ALIAS(GPUFragment,gp4fp,GP4FP,"gp4fp",7010,0)
+CG_PROFILE_ALIAS(GPUVertex,gp4vp,GP4VP,"gp4vp",7011,1)
+CG_PROFILE_ALIAS(GPUGeometry,gp4gp,GP4GP,"gp4gp",7012,0)
+
+#ifndef CG_IN_PROFILES_INCLUDE
+# undef CG_PROFILE_MACRO
+#endif
diff --git a/Externals/cg/2.2/include/Cg/cg_bindlocations.h b/Externals/cg/2.2/include/Cg/cg_bindlocations.h
new file mode 100644
index 00000000..921fd975
--- /dev/null
+++ b/Externals/cg/2.2/include/Cg/cg_bindlocations.h
@@ -0,0 +1,382 @@
+
+
+/*
+ *
+ * Copyright (c) 2002-2010, NVIDIA Corporation.
+ *
+ *
+ *
+ * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
+ * of your agreement to the following terms, and your use, installation,
+ * modification or redistribution of this NVIDIA software constitutes
+ * acceptance of these terms. If you do not agree with these terms, please do
+ * not use, install, modify or redistribute this NVIDIA software.
+ *
+ *
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
+ * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
+ * Software"), to use, reproduce, modify and redistribute the NVIDIA
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the NVIDIA Software, you must retain the
+ * copyright notice of NVIDIA, this notice and the following text and
+ * disclaimers in all such redistributions of the NVIDIA Software. Neither the
+ * name, trademarks, service marks nor logos of NVIDIA Corporation may be used
+ * to endorse or promote products derived from the NVIDIA Software without
+ * specific prior written permission from NVIDIA. Except as expressly stated
+ * in this notice, no other rights or licenses express or implied, are granted
+ * by NVIDIA herein, including but not limited to any patent rights that may be
+ * infringed by your derivative works or by other works in which the NVIDIA
+ * Software may be incorporated. No hardware is licensed hereunder.
+ *
+ *
+ *
+ * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
+ * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
+ * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
+ *
+ *
+ *
+ * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
+ * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
+ * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
+ * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
+ * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
+ * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+/*
+ * The following macro invocations define the supported CG basic hardware
+ * bind locations.
+ *
+ * The macros have the form :
+ *
+ * CG_BINDLOCATION_MACRO(name, compiler_name, enum_int)
+ *
+ * name : The name of the location.
+ * enum_name : The C enumerant.
+ * compiler_name : The name of the location within the compiler syntax.
+ * int_id : Integer enumerant associated with this bind location.
+ * (3256 is reservered for CG_UNDEFINED)
+ * addressable : The bind location must have an integer address
+ * associated with it.
+ * ParamType : the cgParamType of this register.
+ *
+ */
+
+
+CG_BINDLOCATION_MACRO(TexUnit0,CG_TEXUNIT0,"texunit 0",2048,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit1,CG_TEXUNIT1,"texunit 1",2049,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit2,CG_TEXUNIT2,"texunit 2",2050,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit3,CG_TEXUNIT3,"texunit 3",2051,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit4,CG_TEXUNIT4,"texunit 4",2052,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit5,CG_TEXUNIT5,"texunit 5",2053,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit6,CG_TEXUNIT6,"texunit 6",2054,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit7,CG_TEXUNIT7,"texunit 7",2055,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit8,CG_TEXUNIT8,"texunit 8",2056,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit9,CG_TEXUNIT9,"texunit 9",2057,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit10,CG_TEXUNIT10,"texunit 10",2058,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit11,CG_TEXUNIT11,"texunit 11",2059,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit12,CG_TEXUNIT12,"texunit 12",2060,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit13,CG_TEXUNIT13,"texunit 13",2061,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit14,CG_TEXUNIT14,"texunit 14",2062,0,CG_TEXOBJ_PARAM)
+CG_BINDLOCATION_MACRO(TexUnit15,CG_TEXUNIT15,"texunit 15",2063,0,CG_TEXOBJ_PARAM)
+
+CG_BINDLOCATION_MACRO(Buffer0, CG_BUFFER0, "buffer[0]", 2064, 1, CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Buffer1, CG_BUFFER1, "buffer[1]", 2065, 1, CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Buffer2, CG_BUFFER2, "buffer[2]", 2066, 1, CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Buffer3, CG_BUFFER3, "buffer[3]", 2067, 1, CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Buffer4, CG_BUFFER4, "buffer[4]", 2068, 1, CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Buffer5, CG_BUFFER5, "buffer[5]", 2069, 1, CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Buffer6, CG_BUFFER6, "buffer[6]", 2070, 1, CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Buffer7, CG_BUFFER7, "buffer[7]", 2071, 1, CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Buffer8, CG_BUFFER8, "buffer[8]", 2072, 1, CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Buffer9, CG_BUFFER9, "buffer[9]", 2073, 1, CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Buffer10, CG_BUFFER10, "buffer[10]", 2074, 1, CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Buffer11, CG_BUFFER11, "buffer[11]", 2075, 1, CGI_UNIFORM_PARAM)
+
+CG_BINDLOCATION_MACRO(Attr0,CG_ATTR0,"ATTR0",2113,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr1,CG_ATTR1,"ATTR1",2114,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr2,CG_ATTR2,"ATTR2",2115,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr3,CG_ATTR3,"ATTR3",2116,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr4,CG_ATTR4,"ATTR4",2117,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr5,CG_ATTR5,"ATTR5",2118,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr6,CG_ATTR6,"ATTR6",2119,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr7,CG_ATTR7,"ATTR7",2120,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr8,CG_ATTR8,"ATTR8",2121,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr9,CG_ATTR9,"ATTR9",2122,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr10,CG_ATTR10,"ATTR10",2123,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr11,CG_ATTR11,"ATTR11",2124,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr12,CG_ATTR12,"ATTR12",2125,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr13,CG_ATTR13,"ATTR13",2126,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr14,CG_ATTR14,"ATTR14",2127,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Attr15,CG_ATTR15,"ATTR15",2128,0,CG_VARYING_PARAM)
+
+CG_BINDLOCATION_MACRO(VertUniform,CG_C,"c",2178,1,CGI_UNIFORM_PARAM)
+
+CG_BINDLOCATION_MACRO(Tex0,CG_TEX0,"TEX0",2179,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tex1,CG_TEX1,"TEX1",2180,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tex2,CG_TEX2,"TEX2",2181,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tex3,CG_TEX3,"TEX3",2192,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tex4,CG_TEX4,"TEX4",2193,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tex5,CG_TEX5,"TEX5",2194,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tex6,CG_TEX6,"TEX6",2195,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tex7,CG_TEX7,"TEX7",2196,0,CG_VARYING_PARAM)
+
+CG_BINDLOCATION_MACRO(HPos,CG_HPOS,"HPOS",2243,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Col0,CG_COL0,"COL0",2245,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Col1,CG_COL1,"COL1",2246,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Col2,CG_COL2,"COL2",2247,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Col3,CG_COL3,"COL3",2248,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSiz,CG_PSIZ,"PSIZ",2309,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Clp0,CG_CLP0,"CLP0",2310,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Clp1,CG_CLP1,"CLP1",2311,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Clp2,CG_CLP2,"CLP2",2312,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Clp3,CG_CLP3,"CLP3",2313,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Clp4,CG_CLP4,"CLP4",2314,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Clp5,CG_CLP5,"CLP5",2315,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(WPos,CG_WPOS,"WPOS",2373,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PointCoord,CG_POINTCOORD,"POINTCOORD",2374,0,CG_VARYING_PARAM)
+
+CG_BINDLOCATION_MACRO(Position0,CG_POSITION0,"POSITION0",2437,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position1,CG_POSITION1,"POSITION1",2438,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position2,CG_POSITION2,"POSITION2",2439,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position3,CG_POSITION3,"POSITION3",2440,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position4,CG_POSITION4,"POSITION4",2441,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position5,CG_POSITION5,"POSITION5",2442,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position6,CG_POSITION6,"POSITION6",2443,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position7,CG_POSITION7,"POSITION7",2444,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position8,CG_POSITION8,"POSITION8",2445,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position9,CG_POSITION9,"POSITION9",2446,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position10,CG_POSITION10,"POSITION10",2447,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position11,CG_POSITION11,"POSITION11",2448,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position12,CG_POSITION12,"POSITION12",2449,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position13,CG_POSITION13,"POSITION13",2450,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position14,CG_POSITION14,"POSITION14",2451,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Position15,CG_POSITION15,"POSITION15",2452,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Diffuse0,CG_DIFFUSE0,"DIFFUSE0",2501,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent0,CG_TANGENT0,"TANGENT0",2565,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent1,CG_TANGENT1,"TANGENT1",2566,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent2,CG_TANGENT2,"TANGENT2",2567,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent3,CG_TANGENT3,"TANGENT3",2568,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent4,CG_TANGENT4,"TANGENT4",2569,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent5,CG_TANGENT5,"TANGENT5",2570,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent6,CG_TANGENT6,"TANGENT6",2571,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent7,CG_TANGENT7,"TANGENT7",2572,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent8,CG_TANGENT8,"TANGENT8",2573,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent9,CG_TANGENT9,"TANGENT9",2574,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent10,CG_TANGENT10,"TANGENT10",2575,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent11,CG_TANGENT11,"TANGENT11",2576,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent12,CG_TANGENT12,"TANGENT12",2577,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent13,CG_TANGENT13,"TANGENT13",2578,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent14,CG_TANGENT14,"TANGENT14",2579,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Tangent15,CG_TANGENT15,"TANGENT15",2580,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Specular0,CG_SPECULAR0,"SPECULAR0",2629,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices0,CG_BLENDINDICES0,"BLENDINDICES0",2693,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices1,CG_BLENDINDICES1,"BLENDINDICES1",2694,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices2,CG_BLENDINDICES2,"BLENDINDICES2",2695,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices3,CG_BLENDINDICES3,"BLENDINDICES3",2696,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices4,CG_BLENDINDICES4,"BLENDINDICES4",2697,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices5,CG_BLENDINDICES5,"BLENDINDICES5",2698,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices6,CG_BLENDINDICES6,"BLENDINDICES6",2699,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices7,CG_BLENDINDICES7,"BLENDINDICES7",2700,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices8,CG_BLENDINDICES8,"BLENDINDICES8",2701,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices9,CG_BLENDINDICES9,"BLENDINDICES9",2702,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices10,CG_BLENDINDICES10,"BLENDINDICES10",2703,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices11,CG_BLENDINDICES11,"BLENDINDICES11",2704,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices12,CG_BLENDINDICES12,"BLENDINDICES12",2705,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices13,CG_BLENDINDICES13,"BLENDINDICES13",2706,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices14,CG_BLENDINDICES14,"BLENDINDICES14",2707,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendIndices15,CG_BLENDINDICES15,"BLENDINDICES15",2708,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color0,CG_COLOR0,"COLOR0",2757,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color1,CG_COLOR1,"COLOR1",2758,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color2,CG_COLOR2,"COLOR2",2759,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color3,CG_COLOR3,"COLOR3",2760,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color4,CG_COLOR4,"COLOR4",2761,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color5,CG_COLOR5,"COLOR5",2762,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color6,CG_COLOR6,"COLOR6",2763,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color7,CG_COLOR7,"COLOR7",2764,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color8,CG_COLOR8,"COLOR8",2765,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color9,CG_COLOR9,"COLOR9",2766,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color10,CG_COLOR10,"COLOR10",2767,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color11,CG_COLOR11,"COLOR11",2768,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color12,CG_COLOR12,"COLOR12",2769,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color13,CG_COLOR13,"COLOR13",2770,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color14,CG_COLOR14,"COLOR14",2771,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Color15,CG_COLOR15,"COLOR15",2772,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize0,CG_PSIZE0,"PSIZE0",2821,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize1,CG_PSIZE1,"PSIZE1",2822,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize2,CG_PSIZE2,"PSIZE2",2823,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize3,CG_PSIZE3,"PSIZE3",2824,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize4,CG_PSIZE4,"PSIZE4",2825,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize5,CG_PSIZE5,"PSIZE5",2826,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize6,CG_PSIZE6,"PSIZE6",2827,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize7,CG_PSIZE7,"PSIZE7",2828,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize8,CG_PSIZE8,"PSIZE8",2829,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize9,CG_PSIZE9,"PSIZE9",2830,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize10,CG_PSIZE10,"PSIZE10",2831,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize11,CG_PSIZE11,"PSIZE11",2832,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize12,CG_PSIZE12,"PSIZE12",2833,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize13,CG_PSIZE13,"PSIZE13",2834,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize14,CG_PSIZE14,"PSIZE14",2835,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PSize15,CG_PSIZE15,"PSIZE15",2836,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal0,CG_BINORMAL0,"BINORMAL0",2885,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal1,CG_BINORMAL1,"BINORMAL1",2886,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal2,CG_BINORMAL2,"BINORMAL2",2887,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal3,CG_BINORMAL3,"BINORMAL3",2888,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal4,CG_BINORMAL4,"BINORMAL4",2889,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal5,CG_BINORMAL5,"BINORMAL5",2890,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal6,CG_BINORMAL6,"BINORMAL6",2891,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal7,CG_BINORMAL7,"BINORMAL7",2892,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal8,CG_BINORMAL8,"BINORMAL8",2893,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal9,CG_BINORMAL9,"BINORMAL9",2894,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal10,CG_BINORMAL10,"BINORMAL10",2895,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal11,CG_BINORMAL11,"BINORMAL11",2896,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal12,CG_BINORMAL12,"BINORMAL12",2897,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal13,CG_BINORMAL13,"BINORMAL13",2898,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal14,CG_BINORMAL14,"BINORMAL14",2899,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BiNormal15,CG_BINORMAL15,"BINORMAL15",2900,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG0,CG_FOG0,"FOG0",2917,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG1,CG_FOG1,"FOG1",2918,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG2,CG_FOG2,"FOG2",2919,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG3,CG_FOG3,"FOG3",2920,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG4,CG_FOG4,"FOG4",2921,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG5,CG_FOG5,"FOG5",2922,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG6,CG_FOG6,"FOG6",2923,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG7,CG_FOG7,"FOG7",2924,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG8,CG_FOG8,"FOG8",2925,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG9,CG_FOG9,"FOG9",2926,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG10,CG_FOG10,"FOG10",2927,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG11,CG_FOG11,"FOG11",2928,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG12,CG_FOG12,"FOG12",2929,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG13,CG_FOG13,"FOG13",2930,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG14,CG_FOG14,"FOG14",2931,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FOG15,CG_FOG15,"FOG15",2932,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH0,CG_DEPTH0,"DEPTH0",2933,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH1,CG_DEPTH1,"DEPTH1",2934,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH2,CG_DEPTH2,"DEPTH2",2935,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH3,CG_DEPTH3,"DEPTH3",2936,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH4,CG_DEPTH4,"DEPTH4",2937,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH5,CG_DEPTH5,"DEPTH5",2938,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH6,CG_DEPTH6,"DEPTH6",2939,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH7,CG_DEPTH7,"DEPTH7",2940,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH8,CG_DEPTH8,"DEPTH8",2941,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH9,CG_DEPTH9,"DEPTH9",2942,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH10,CG_DEPTH10,"DEPTH10",2943,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH11,CG_DEPTH11,"DEPTH11",2944,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH12,CG_DEPTH12,"DEPTH12",2945,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH13,CG_DEPTH13,"DEPTH13",2946,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH14,CG_DEPTH14,"DEPTH14",2947,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(DEPTH15,CG_DEPTH15,"DEPTH15",2948,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE0,CG_SAMPLE0,"SAMPLE0",2949,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE1,CG_SAMPLE1,"SAMPLE1",2950,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE2,CG_SAMPLE2,"SAMPLE2",2951,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE3,CG_SAMPLE3,"SAMPLE3",2952,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE4,CG_SAMPLE4,"SAMPLE4",2953,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE5,CG_SAMPLE5,"SAMPLE5",2954,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE6,CG_SAMPLE6,"SAMPLE6",2955,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE7,CG_SAMPLE7,"SAMPLE7",2956,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE8,CG_SAMPLE8,"SAMPLE8",2957,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE9,CG_SAMPLE9,"SAMPLE9",2958,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE10,CG_SAMPLE10,"SAMPLE10",2959,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE11,CG_SAMPLE11,"SAMPLE11",2960,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE12,CG_SAMPLE12,"SAMPLE12",2961,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE13,CG_SAMPLE13,"SAMPLE13",2962,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE14,CG_SAMPLE14,"SAMPLE14",2963,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SAMPLE15,CG_SAMPLE15,"SAMPLE15",2964,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight0,CG_BLENDWEIGHT0,"BLENDWEIGHT0",3028,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight1,CG_BLENDWEIGHT1,"BLENDWEIGHT1",3029,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight2,CG_BLENDWEIGHT2,"BLENDWEIGHT2",3030,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight3,CG_BLENDWEIGHT3,"BLENDWEIGHT3",3031,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight4,CG_BLENDWEIGHT4,"BLENDWEIGHT4",3032,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight5,CG_BLENDWEIGHT5,"BLENDWEIGHT5",3033,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight6,CG_BLENDWEIGHT6,"BLENDWEIGHT6",3034,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight7,CG_BLENDWEIGHT7,"BLENDWEIGHT7",3035,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight8,CG_BLENDWEIGHT8,"BLENDWEIGHT8",3036,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight9,CG_BLENDWEIGHT9,"BLENDWEIGHT9",3037,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight10,CG_BLENDWEIGHT10,"BLENDWEIGHT10",3038,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight11,CG_BLENDWEIGHT11,"BLENDWEIGHT11",3039,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight12,CG_BLENDWEIGHT12,"BLENDWEIGHT12",3040,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight13,CG_BLENDWEIGHT13,"BLENDWEIGHT13",3041,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight14,CG_BLENDWEIGHT14,"BLENDWEIGHT14",3042,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(BlendWeight15,CG_BLENDWEIGHT15,"BLENDWEIGHT15",3043,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal0,CG_NORMAL0,"NORMAL0",3092,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal1,CG_NORMAL1,"NORMAL1",3093,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal2,CG_NORMAL2,"NORMAL2",3094,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal3,CG_NORMAL3,"NORMAL3",3095,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal4,CG_NORMAL4,"NORMAL4",3096,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal5,CG_NORMAL5,"NORMAL5",3097,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal6,CG_NORMAL6,"NORMAL6",3098,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal7,CG_NORMAL7,"NORMAL7",3099,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal8,CG_NORMAL8,"NORMAL8",3100,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal9,CG_NORMAL9,"NORMAL9",3101,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal10,CG_NORMAL10,"NORMAL10",3102,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal11,CG_NORMAL11,"NORMAL11",3103,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal12,CG_NORMAL12,"NORMAL12",3104,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal13,CG_NORMAL13,"NORMAL13",3105,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal14,CG_NORMAL14,"NORMAL14",3106,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Normal15,CG_NORMAL15,"NORMAL15",3107,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(FogCoord,CG_FOGCOORD,"FOGCOORD",3156,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord0,CG_TEXCOORD0,"TEXCOORD0",3220,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord1,CG_TEXCOORD1,"TEXCOORD1",3221,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord2,CG_TEXCOORD2,"TEXCOORD2",3222,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord3,CG_TEXCOORD3,"TEXCOORD3",3223,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord4,CG_TEXCOORD4,"TEXCOORD4",3224,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord5,CG_TEXCOORD5,"TEXCOORD5",3225,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord6,CG_TEXCOORD6,"TEXCOORD6",3226,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord7,CG_TEXCOORD7,"TEXCOORD7",3227,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord8,CG_TEXCOORD8,"TEXCOORD8",3228,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord9,CG_TEXCOORD9,"TEXCOORD9",3229,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord10,CG_TEXCOORD10,"TEXCOORD10",3230,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord11,CG_TEXCOORD11,"TEXCOORD11",3231,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord12,CG_TEXCOORD12,"TEXCOORD12",3232,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord13,CG_TEXCOORD13,"TEXCOORD13",3233,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord14,CG_TEXCOORD14,"TEXCOORD14",3234,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(TexCoord15,CG_TEXCOORD15,"TEXCOORD15",3235,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(CombinerConst0,CG_COMBINER_CONST0,"COMBINER_CONST0",3284,0,CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(CombinerConst1,CG_COMBINER_CONST1,"COMBINER_CONST1",3285,0,CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(CombinerStageConst0,CG_COMBINER_STAGE_CONST0,"COMBINER_STAGE_CONST0",3286,1,CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(CombinerStageConst1,CG_COMBINER_STAGE_CONST1,"COMBINER_STAGE_CONST1",3287,1,CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(OffsetTextureMatrix,CG_OFFSET_TEXTURE_MATRIX,"OFFSET_TEXTURE_MATRIX",3288,0,CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(OffsetTextureScale,CG_OFFSET_TEXTURE_SCALE,"OFFSET_TEXTURE_SCALE",3289,0,CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(OffsetTextureBias,CG_OFFSET_TEXTURE_BIAS,"OFFSET_TEXTURE_BIAS",3290,0,CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(ConstEye,CG_CONST_EYE,"CONST_EYE",3291,0,CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(Coverage, CG_COVERAGE, "COVERAGE", 3292, 0, CG_VARYING_PARAM)
+
+CG_BINDLOCATION_MACRO(TessFactor,CG_TESSFACTOR,"TESSFACTOR",3255,0,CG_VARYING_PARAM)
+
+CG_BINDLOCATION_MACRO(GLSLUniform,CG_GLSL_UNIFORM,"glsl_uniform",3300,1,CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(GLSLAttrib,CG_GLSL_ATTRIB,"glsl_attrib",3301,1,CG_VARYING_PARAM)
+
+CG_BINDLOCATION_MACRO(Env,CG_ENV,"ENV",3302,1,CG_VARYING_PARAM)
+
+CG_BINDLOCATION_MACRO(HLSLUniform,CG_HLSL_UNIFORM,"hlsl_uniform",3559,1,CGI_UNIFORM_PARAM)
+CG_BINDLOCATION_MACRO(HLSLAttrib,CG_HLSL_VARYING,"hlsl_attrib",3560,1,CG_VARYING_PARAM)
+
+CG_BINDLOCATION_MACRO(SamplerResource,CG_SAMPLER_RES, "SAMPLER_RES", 3561, 1, CGI_UNIFORM_PARAM)
+
+CG_BINDLOCATION_MACRO(LastColor0, CG_LASTCOL0, "LASTCOL0", 4400, 0, CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(LastColor1, CG_LASTCOL1, "LASTCOL1", 4401, 0, CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(LastColor2, CG_LASTCOL2, "LASTCOL2", 4402, 0, CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(LastColor3, CG_LASTCOL3, "LASTCOL3", 4403, 0, CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(LastColor4, CG_LASTCOL4, "LASTCOL4", 4404, 0, CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(LastColor5, CG_LASTCOL5, "LASTCOL5", 4405, 0, CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(LastColor6, CG_LASTCOL6, "LASTCOL6", 4406, 0, CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(LastColor7, CG_LASTCOL7, "LASTCOL7", 4407, 0, CG_VARYING_PARAM)
+
+CG_BINDLOCATION_MACRO(Face,CG_FACE,"FACE",4410,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(PrimitiveId,CG_PRIMITIVEID,"PRIMITIVEID",4411,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(InstanceId,CG_INSTANCEID,"INSTANCEID",4412,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SampleId,CG_SAMPLEID,"SAMPLEID",4413,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(VertexId,CG_VERTEXID,"VERTEXID",4414,0,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(Layer,CG_LAYER,"LAYER",4415,1,CG_VARYING_PARAM)
+CG_BINDLOCATION_MACRO(SampleMask,CG_SAMPLEMASK,"SAMPLEMASK",4416,0,CG_VARYING_PARAM)
+
+#undef CG_BINDLOCATION_MACRO
diff --git a/Externals/cg/2.2/include/Cg/cg_datatypes.h b/Externals/cg/2.2/include/Cg/cg_datatypes.h
new file mode 100644
index 00000000..8076d506
--- /dev/null
+++ b/Externals/cg/2.2/include/Cg/cg_datatypes.h
@@ -0,0 +1,196 @@
+/*
+ *
+ * Copyright (c) 2002-2010, NVIDIA Corporation.
+ *
+ *
+ *
+ * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
+ * of your agreement to the following terms, and your use, installation,
+ * modification or redistribution of this NVIDIA software constitutes
+ * acceptance of these terms. If you do not agree with these terms, please do
+ * not use, install, modify or redistribute this NVIDIA software.
+ *
+ *
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
+ * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
+ * Software"), to use, reproduce, modify and redistribute the NVIDIA
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the NVIDIA Software, you must retain the
+ * copyright notice of NVIDIA, this notice and the following text and
+ * disclaimers in all such redistributions of the NVIDIA Software. Neither the
+ * name, trademarks, service marks nor logos of NVIDIA Corporation may be used
+ * to endorse or promote products derived from the NVIDIA Software without
+ * specific prior written permission from NVIDIA. Except as expressly stated
+ * in this notice, no other rights or licenses express or implied, are granted
+ * by NVIDIA herein, including but not limited to any patent rights that may be
+ * infringed by your derivative works or by other works in which the NVIDIA
+ * Software may be incorporated. No hardware is licensed hereunder.
+ *
+ *
+ *
+ * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
+ * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
+ * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
+ *
+ *
+ *
+ * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
+ * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
+ * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
+ * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
+ * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
+ * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+/*
+ * The following macro invocations define the supported CG basic data types.
+ *
+ * The macros have the form :
+ *
+ * CG_DATATYPE_MACRO(name, compiler_name, enum_name, base_name, nrows, ncols, pc_name)
+ *
+ * name : The name of the data type.
+ * compiler_name : The name of the data type within the compiler syntax.
+ * enum_name : The C enumerant.
+ * base_name : The C enumerant of the base type.
+ * nrows : Number of rows for matrix types. Should be 0 other-wise.
+ * ncols : Number of columns for scalar, vector, and matrix types.
+ * pc_name : The C enumerant of the parameter class.
+ *
+ */
+
+/*
+ * ADD NEW DATA TYPES TO THE END OF THIS MACRO LIST!
+ *
+ */
+
+
+CG_DATATYPE_MACRO(Half,half,CG_HALF,CG_HALF,0,1,CG_PARAMETERCLASS_SCALAR)
+CG_DATATYPE_MACRO(Half2,half2,CG_HALF2,CG_HALF,0,2,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Half3,half3,CG_HALF3,CG_HALF,0,3,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Half4,half4,CG_HALF4,CG_HALF,0,4,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Half1x1,half1x1,CG_HALF1x1,CG_HALF,1,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half1x2,half1x2,CG_HALF1x2,CG_HALF,1,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half1x3,half1x3,CG_HALF1x3,CG_HALF,1,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half1x4,half1x4,CG_HALF1x4,CG_HALF,1,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half2x1,half2x1,CG_HALF2x1,CG_HALF,2,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half2x2,half2x2,CG_HALF2x2,CG_HALF,2,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half2x3,half2x3,CG_HALF2x3,CG_HALF,2,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half2x4,half2x4,CG_HALF2x4,CG_HALF,2,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half3x1,half3x1,CG_HALF3x1,CG_HALF,3,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half3x2,half3x2,CG_HALF3x2,CG_HALF,3,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half3x3,half3x3,CG_HALF3x3,CG_HALF,3,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half3x4,half3x4,CG_HALF3x4,CG_HALF,3,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half4x1,half4x1,CG_HALF4x1,CG_HALF,4,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half4x2,half4x2,CG_HALF4x2,CG_HALF,4,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half4x3,half4x3,CG_HALF4x3,CG_HALF,4,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half4x4,half4x4,CG_HALF4x4,CG_HALF,4,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float,float,CG_FLOAT,CG_FLOAT,0,1,CG_PARAMETERCLASS_SCALAR)
+CG_DATATYPE_MACRO(Float2,float2,CG_FLOAT2,CG_FLOAT,0,2,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Float3,float3,CG_FLOAT3,CG_FLOAT,0,3,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Float4,float4,CG_FLOAT4,CG_FLOAT,0,4,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Float1x1,float1x1,CG_FLOAT1x1,CG_FLOAT,1,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float1x2,float1x2,CG_FLOAT1x2,CG_FLOAT,1,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float1x3,float1x3,CG_FLOAT1x3,CG_FLOAT,1,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float1x4,float1x4,CG_FLOAT1x4,CG_FLOAT,1,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float2x1,float2x1,CG_FLOAT2x1,CG_FLOAT,2,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float2x2,float2x2,CG_FLOAT2x2,CG_FLOAT,2,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float2x3,float2x3,CG_FLOAT2x3,CG_FLOAT,2,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float2x4,float2x4,CG_FLOAT2x4,CG_FLOAT,2,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float3x1,float3x1,CG_FLOAT3x1,CG_FLOAT,3,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float3x2,float3x2,CG_FLOAT3x2,CG_FLOAT,3,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float3x3,float3x3,CG_FLOAT3x3,CG_FLOAT,3,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float3x4,float3x4,CG_FLOAT3x4,CG_FLOAT,3,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float4x1,float4x1,CG_FLOAT4x1,CG_FLOAT,4,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float4x2,float4x2,CG_FLOAT4x2,CG_FLOAT,4,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float4x3,float4x3,CG_FLOAT4x3,CG_FLOAT,4,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Float4x4,float4x4,CG_FLOAT4x4,CG_FLOAT,4,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Sampler1D,sampler1D,CG_SAMPLER1D,CG_SAMPLER1D,0,0,CG_PARAMETERCLASS_SAMPLER)
+CG_DATATYPE_MACRO(Sampler2D,sampler2D,CG_SAMPLER2D,CG_SAMPLER2D,0,0,CG_PARAMETERCLASS_SAMPLER)
+CG_DATATYPE_MACRO(Sampler3D,sampler3D,CG_SAMPLER3D,CG_SAMPLER3D,0,0,CG_PARAMETERCLASS_SAMPLER)
+CG_DATATYPE_MACRO(SamplerRECT,samplerRECT,CG_SAMPLERRECT,CG_SAMPLERRECT,0,0,CG_PARAMETERCLASS_SAMPLER)
+CG_DATATYPE_MACRO(SamplerCUBE,samplerCUBE,CG_SAMPLERCUBE,CG_SAMPLERCUBE,0,0,CG_PARAMETERCLASS_SAMPLER)
+CG_DATATYPE_MACRO(Fixed,fixed,CG_FIXED,CG_FIXED,0,1,CG_PARAMETERCLASS_SCALAR)
+CG_DATATYPE_MACRO(Fixed2,fixed2,CG_FIXED2,CG_FIXED,0,2,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Fixed3,fixed3,CG_FIXED3,CG_FIXED,0,3,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Fixed4,fixed4,CG_FIXED4,CG_FIXED,0,4,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Fixed1x1,fixed1x1,CG_FIXED1x1,CG_FIXED,1,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed1x2,fixed1x2,CG_FIXED1x2,CG_FIXED,1,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed1x3,fixed1x3,CG_FIXED1x3,CG_FIXED,1,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed1x4,fixed1x4,CG_FIXED1x4,CG_FIXED,1,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed2x1,fixed2x1,CG_FIXED2x1,CG_FIXED,2,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed2x2,fixed2x2,CG_FIXED2x2,CG_FIXED,2,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed2x3,fixed2x3,CG_FIXED2x3,CG_FIXED,2,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed2x4,fixed2x4,CG_FIXED2x4,CG_FIXED,2,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed3x1,fixed3x1,CG_FIXED3x1,CG_FIXED,3,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed3x2,fixed3x2,CG_FIXED3x2,CG_FIXED,3,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed3x3,fixed3x3,CG_FIXED3x3,CG_FIXED,3,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed3x4,fixed3x4,CG_FIXED3x4,CG_FIXED,3,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed4x1,fixed4x1,CG_FIXED4x1,CG_FIXED,4,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed4x2,fixed4x2,CG_FIXED4x2,CG_FIXED,4,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed4x3,fixed4x3,CG_FIXED4x3,CG_FIXED,4,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Fixed4x4,fixed4x4,CG_FIXED4x4,CG_FIXED,4,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Half1,half1,CG_HALF1,CG_HALF,0,1,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Float1,float1,CG_FLOAT1,CG_FLOAT,0,1,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Fixed1,fixed1,CG_FIXED1,CG_FIXED,0,1,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Int,int,CG_INT,CG_INT,0,1,CG_PARAMETERCLASS_SCALAR)
+CG_DATATYPE_MACRO(Int1,int1,CG_INT1,CG_INT,0,1,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Int2,int2,CG_INT2,CG_INT,0,2,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Int3,int3,CG_INT3,CG_INT,0,3,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Int4,int4,CG_INT4,CG_INT,0,4,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Int1x1,int1x1,CG_INT1x1,CG_INT,1,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int1x2,int1x2,CG_INT1x2,CG_INT,1,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int1x3,int1x3,CG_INT1x3,CG_INT,1,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int1x4,int1x4,CG_INT1x4,CG_INT,1,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int2x1,int2x1,CG_INT2x1,CG_INT,2,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int2x2,int2x2,CG_INT2x2,CG_INT,2,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int2x3,int2x3,CG_INT2x3,CG_INT,2,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int2x4,int2x4,CG_INT2x4,CG_INT,2,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int3x1,int3x1,CG_INT3x1,CG_INT,3,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int3x2,int3x2,CG_INT3x2,CG_INT,3,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int3x3,int3x3,CG_INT3x3,CG_INT,3,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int3x4,int3x4,CG_INT3x4,CG_INT,3,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int4x1,int4x1,CG_INT4x1,CG_INT,4,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int4x2,int4x2,CG_INT4x2,CG_INT,4,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int4x3,int4x3,CG_INT4x3,CG_INT,4,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Int4x4,int4x4,CG_INT4x4,CG_INT,4,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool,bool,CG_BOOL,CG_BOOL,0,1,CG_PARAMETERCLASS_SCALAR)
+CG_DATATYPE_MACRO(Bool1,bool1,CG_BOOL1,CG_BOOL,0,1,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Bool2,bool2,CG_BOOL2,CG_BOOL,0,2,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Bool3,bool3,CG_BOOL3,CG_BOOL,0,3,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Bool4,bool4,CG_BOOL4,CG_BOOL,0,4,CG_PARAMETERCLASS_VECTOR)
+CG_DATATYPE_MACRO(Bool1x1,bool1x1,CG_BOOL1x1,CG_BOOL,1,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool1x2,bool1x2,CG_BOOL1x2,CG_BOOL,1,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool1x3,bool1x3,CG_BOOL1x3,CG_BOOL,1,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool1x4,bool1x4,CG_BOOL1x4,CG_BOOL,1,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool2x1,bool2x1,CG_BOOL2x1,CG_BOOL,2,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool2x2,bool2x2,CG_BOOL2x2,CG_BOOL,2,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool2x3,bool2x3,CG_BOOL2x3,CG_BOOL,2,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool2x4,bool2x4,CG_BOOL2x4,CG_BOOL,2,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool3x1,bool3x1,CG_BOOL3x1,CG_BOOL,3,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool3x2,bool3x2,CG_BOOL3x2,CG_BOOL,3,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool3x3,bool3x3,CG_BOOL3x3,CG_BOOL,3,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool3x4,bool3x4,CG_BOOL3x4,CG_BOOL,3,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool4x1,bool4x1,CG_BOOL4x1,CG_BOOL,4,1,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool4x2,bool4x2,CG_BOOL4x2,CG_BOOL,4,2,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool4x3,bool4x3,CG_BOOL4x3,CG_BOOL,4,3,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(Bool4x4,bool4x4,CG_BOOL4x4,CG_BOOL,4,4,CG_PARAMETERCLASS_MATRIX)
+CG_DATATYPE_MACRO(String,string,CG_STRING,CG_STRING,0,1,CG_PARAMETERCLASS_OBJECT)
+CG_DATATYPE_MACRO(Program,program,CG_PROGRAM_TYPE,CG_PROGRAM_TYPE,0,0,CG_PARAMETERCLASS_OBJECT)
+CG_DATATYPE_MACRO(Texture,texture,CG_TEXTURE,CG_TEXTURE,0,0,CG_PARAMETERCLASS_OBJECT)
+CG_DATATYPE_MACRO(Sampler1DARRAY,sampler1DARRAY,CG_SAMPLER1DARRAY,CG_SAMPLER1DARRAY,0,0,CG_PARAMETERCLASS_SAMPLER)
+CG_DATATYPE_MACRO(Sampler2DARRAY,sampler2DARRAY,CG_SAMPLER2DARRAY,CG_SAMPLER2DARRAY,0,0,CG_PARAMETERCLASS_SAMPLER)
+CG_DATATYPE_MACRO(SamplerCUBEARRAY,samplerCUBEARRAY,CG_SAMPLERCUBEARRAY,CG_SAMPLERCUBEARRAY,0,0,CG_PARAMETERCLASS_SAMPLER)
+CG_DATATYPE_MACRO(VertexShader, vertexshader, CG_VERTEXSHADER_TYPE, CG_VERTEXSHADER_TYPE, 0, 0, CG_PARAMETERCLASS_OBJECT)
+CG_DATATYPE_MACRO(PixelShader, pixelshader, CG_PIXELSHADER_TYPE, CG_PIXELSHADER_TYPE, 0, 0, CG_PARAMETERCLASS_OBJECT)
+CG_DATATYPE_MACRO(Sampler, sampler, CG_SAMPLER, CG_SAMPLER, 0, 0, CG_PARAMETERCLASS_SAMPLER)
+CG_DATATYPE_MACRO(SamplerBUF,samplerBUF,CG_SAMPLERBUF,CG_SAMPLERBUF,0,0,CG_PARAMETERCLASS_SAMPLER)
+#undef CG_DATATYPE_MACRO
diff --git a/Externals/cg/2.2/include/Cg/cg_enums.h b/Externals/cg/2.2/include/Cg/cg_enums.h
new file mode 100644
index 00000000..d31352b3
--- /dev/null
+++ b/Externals/cg/2.2/include/Cg/cg_enums.h
@@ -0,0 +1,128 @@
+
+/*
+ *
+ * Copyright (c) 2002-2010, NVIDIA Corporation.
+ *
+ *
+ *
+ * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
+ * of your agreement to the following terms, and your use, installation,
+ * modification or redistribution of this NVIDIA software constitutes
+ * acceptance of these terms. If you do not agree with these terms, please do
+ * not use, install, modify or redistribute this NVIDIA software.
+ *
+ *
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
+ * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
+ * Software"), to use, reproduce, modify and redistribute the NVIDIA
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the NVIDIA Software, you must retain the
+ * copyright notice of NVIDIA, this notice and the following text and
+ * disclaimers in all such redistributions of the NVIDIA Software. Neither the
+ * name, trademarks, service marks nor logos of NVIDIA Corporation may be used
+ * to endorse or promote products derived from the NVIDIA Software without
+ * specific prior written permission from NVIDIA. Except as expressly stated
+ * in this notice, no other rights or licenses express or implied, are granted
+ * by NVIDIA herein, including but not limited to any patent rights that may be
+ * infringed by your derivative works or by other works in which the NVIDIA
+ * Software may be incorporated. No hardware is licensed hereunder.
+ *
+ *
+ *
+ * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
+ * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
+ * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
+ *
+ *
+ *
+ * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
+ * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
+ * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
+ * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
+ * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
+ * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+/*
+ * The following macro invocations define the supported CG basic data types.
+ *
+ * The macros have the form :
+ *
+ * CG_ENUM_MACRO(enum_name, enum_val)
+ *
+ * enum_name : The C enumerant name.
+ * enum_val : The enumerant value.
+ *
+ */
+
+
+
+CG_ENUM_MACRO(CG_UNKNOWN, 4096)
+CG_ENUM_MACRO(CG_IN, 4097)
+CG_ENUM_MACRO(CG_OUT, 4098)
+CG_ENUM_MACRO(CG_INOUT, 4099)
+CG_ENUM_MACRO(CG_MIXED, 4100)
+CG_ENUM_MACRO(CG_VARYING, 4101)
+CG_ENUM_MACRO(CG_UNIFORM, 4102)
+CG_ENUM_MACRO(CG_CONSTANT, 4103)
+CG_ENUM_MACRO(CG_PROGRAM_SOURCE, 4104)
+CG_ENUM_MACRO(CG_PROGRAM_ENTRY, 4105)
+CG_ENUM_MACRO(CG_COMPILED_PROGRAM, 4106)
+CG_ENUM_MACRO(CG_PROGRAM_PROFILE, 4107)
+CG_ENUM_MACRO(CG_GLOBAL, 4108)
+CG_ENUM_MACRO(CG_PROGRAM, 4109)
+CG_ENUM_MACRO(CG_DEFAULT, 4110)
+CG_ENUM_MACRO(CG_ERROR, 4111)
+CG_ENUM_MACRO(CG_SOURCE, 4112)
+CG_ENUM_MACRO(CG_OBJECT, 4113)
+CG_ENUM_MACRO(CG_COMPILE_MANUAL, 4114)
+CG_ENUM_MACRO(CG_COMPILE_IMMEDIATE, 4115)
+CG_ENUM_MACRO(CG_COMPILE_LAZY, 4116)
+CG_ENUM_MACRO(CG_CURRENT, 4117)
+CG_ENUM_MACRO(CG_LITERAL, 4118)
+CG_ENUM_MACRO(CG_VERSION, 4119)
+CG_ENUM_MACRO(CG_ROW_MAJOR, 4120)
+CG_ENUM_MACRO(CG_COLUMN_MAJOR, 4121)
+CG_ENUM_MACRO(CG_FRAGMENT, 4122)
+CG_ENUM_MACRO(CG_VERTEX, 4123)
+CG_ENUM_MACRO(CG_POINT, 4124)
+CG_ENUM_MACRO(CG_LINE, 4125)
+CG_ENUM_MACRO(CG_LINE_ADJ, 4126)
+CG_ENUM_MACRO(CG_TRIANGLE, 4127)
+CG_ENUM_MACRO(CG_TRIANGLE_ADJ, 4128)
+CG_ENUM_MACRO(CG_POINT_OUT, 4129)
+CG_ENUM_MACRO(CG_LINE_OUT, 4130)
+CG_ENUM_MACRO(CG_TRIANGLE_OUT, 4131)
+CG_ENUM_MACRO(CG_IMMEDIATE_PARAMETER_SETTING, 4132)
+CG_ENUM_MACRO(CG_DEFERRED_PARAMETER_SETTING, 4133)
+CG_ENUM_MACRO(CG_NO_LOCKS_POLICY, 4134)
+CG_ENUM_MACRO(CG_THREAD_SAFE_POLICY, 4135)
+CG_ENUM_MACRO(CG_FORCE_UPPER_CASE_POLICY, 4136)
+CG_ENUM_MACRO(CG_UNCHANGED_CASE_POLICY, 4137)
+CG_ENUM_MACRO(CG_IS_OPENGL_PROFILE, 4138)
+CG_ENUM_MACRO(CG_IS_DIRECT3D_PROFILE, 4139)
+CG_ENUM_MACRO(CG_IS_DIRECT3D_8_PROFILE, 4140)
+CG_ENUM_MACRO(CG_IS_DIRECT3D_9_PROFILE, 4141)
+CG_ENUM_MACRO(CG_IS_DIRECT3D_10_PROFILE, 4142)
+CG_ENUM_MACRO(CG_IS_VERTEX_PROFILE, 4143)
+CG_ENUM_MACRO(CG_IS_FRAGMENT_PROFILE, 4144)
+CG_ENUM_MACRO(CG_IS_GEOMETRY_PROFILE, 4145)
+CG_ENUM_MACRO(CG_IS_TRANSLATION_PROFILE, 4146)
+CG_ENUM_MACRO(CG_IS_HLSL_PROFILE, 4147)
+CG_ENUM_MACRO(CG_IS_GLSL_PROFILE, 4148)
+
+/*
+ if you add any enums here, you must also change
+ the last enum value in the definition of cgiEnumStringMap
+ (currently found in common/cg_enum.cpp)
+*/
+
+#undef CG_ENUM_MACRO
diff --git a/Externals/cg/2.2/include/Cg/cg_errors.h b/Externals/cg/2.2/include/Cg/cg_errors.h
new file mode 100644
index 00000000..16a6f83d
--- /dev/null
+++ b/Externals/cg/2.2/include/Cg/cg_errors.h
@@ -0,0 +1,325 @@
+/*
+ *
+ * Copyright (c) 2002-2010, NVIDIA Corporation.
+ *
+ *
+ *
+ * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
+ * of your agreement to the following terms, and your use, installation,
+ * modification or redistribution of this NVIDIA software constitutes
+ * acceptance of these terms. If you do not agree with these terms, please do
+ * not use, install, modify or redistribute this NVIDIA software.
+ *
+ *
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
+ * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
+ * Software"), to use, reproduce, modify and redistribute the NVIDIA
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the NVIDIA Software, you must retain the
+ * copyright notice of NVIDIA, this notice and the following text and
+ * disclaimers in all such redistributions of the NVIDIA Software. Neither the
+ * name, trademarks, service marks nor logos of NVIDIA Corporation may be used
+ * to endorse or promote products derived from the NVIDIA Software without
+ * specific prior written permission from NVIDIA. Except as expressly stated
+ * in this notice, no other rights or licenses express or implied, are granted
+ * by NVIDIA herein, including but not limited to any patent rights that may be
+ * infringed by your derivative works or by other works in which the NVIDIA
+ * Software may be incorporated. No hardware is licensed hereunder.
+ *
+ *
+ *
+ * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
+ * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
+ * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
+ *
+ *
+ *
+ * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
+ * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
+ * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
+ * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
+ * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
+ * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/*
+ * The following macro invocations define error codes returned by various cg
+ * API functions.
+ *
+ * The macros have the form :
+ *
+ * CG_ERROR_MACRO(code, enum_name, message)
+ *
+ * code : The integer error code associated with the error.
+ * enum_name : The name of enumerant of the error code in the API.
+ * message : A description string associated with the error.
+ *
+ */
+
+
+CG_ERROR_MACRO(0,
+ CG_NO_ERROR,
+ "No error has occurred.")
+
+CG_ERROR_MACRO(1,
+ CG_COMPILER_ERROR,
+ "The compile returned an error.")
+
+CG_ERROR_MACRO(2,
+ CG_INVALID_PARAMETER_ERROR,
+ "The parameter used is invalid.")
+
+CG_ERROR_MACRO(3,
+ CG_INVALID_PROFILE_ERROR,
+ "The profile is not supported.")
+
+CG_ERROR_MACRO(4,
+ CG_PROGRAM_LOAD_ERROR,
+ "The program could not load.")
+
+CG_ERROR_MACRO(5,
+ CG_PROGRAM_BIND_ERROR,
+ "The program could not bind.")
+
+CG_ERROR_MACRO(6,
+ CG_PROGRAM_NOT_LOADED_ERROR,
+ "The program must be loaded before this operation may be used.")
+
+CG_ERROR_MACRO(7,
+ CG_UNSUPPORTED_GL_EXTENSION_ERROR,
+ "An unsupported GL extension was required to perform this operation.")
+
+CG_ERROR_MACRO(8,
+ CG_INVALID_VALUE_TYPE_ERROR,
+ "An unknown value type was assigned to a parameter.")
+
+CG_ERROR_MACRO(9,
+ CG_NOT_MATRIX_PARAM_ERROR,
+ "The parameter is not of matrix type.")
+
+CG_ERROR_MACRO(10,
+ CG_INVALID_ENUMERANT_ERROR,
+ "The enumerant parameter has an invalid value.")
+
+CG_ERROR_MACRO(11,
+ CG_NOT_4x4_MATRIX_ERROR,
+ "The parameter must be a 4x4 matrix type.")
+
+CG_ERROR_MACRO(12,
+ CG_FILE_READ_ERROR,
+ "The file could not be read.")
+
+CG_ERROR_MACRO(13,
+ CG_FILE_WRITE_ERROR,
+ "The file could not be written.")
+
+CG_ERROR_MACRO(14,
+ CG_NVPARSE_ERROR,
+ "nvparse could not successfully parse the output from the Cg "
+ "compiler backend.")
+
+CG_ERROR_MACRO(15,
+ CG_MEMORY_ALLOC_ERROR,
+ "Memory allocation failed.")
+
+CG_ERROR_MACRO(16,
+ CG_INVALID_CONTEXT_HANDLE_ERROR,
+ "Invalid context handle.")
+
+CG_ERROR_MACRO(17,
+ CG_INVALID_PROGRAM_HANDLE_ERROR,
+ "Invalid program handle.")
+
+CG_ERROR_MACRO(18,
+ CG_INVALID_PARAM_HANDLE_ERROR,
+ "Invalid parameter handle.")
+
+CG_ERROR_MACRO(19,
+ CG_UNKNOWN_PROFILE_ERROR,
+ "The specified profile is unknown.")
+
+CG_ERROR_MACRO(20,
+ CG_VAR_ARG_ERROR,
+ "The variable arguments were specified incorrectly.")
+
+CG_ERROR_MACRO(21,
+ CG_INVALID_DIMENSION_ERROR,
+ "The dimension value is invalid.")
+
+CG_ERROR_MACRO(22,
+ CG_ARRAY_PARAM_ERROR,
+ "The parameter must be an array.")
+
+CG_ERROR_MACRO(23,
+ CG_OUT_OF_ARRAY_BOUNDS_ERROR,
+ "Index into the array is out of bounds.")
+
+CG_ERROR_MACRO(24,
+ CG_CONFLICTING_TYPES_ERROR,
+ "A type being added to the context conflicts with an "
+ "existing type.")
+
+CG_ERROR_MACRO(25,
+ CG_CONFLICTING_PARAMETER_TYPES_ERROR,
+ "The parameters being bound have conflicting types.")
+
+CG_ERROR_MACRO(26,
+ CG_PARAMETER_IS_NOT_SHARED_ERROR,
+ "The parameter must be global.")
+
+CG_ERROR_MACRO(27,
+ CG_INVALID_PARAMETER_VARIABILITY_ERROR,
+ "The parameter could not be changed to the given variability.")
+
+CG_ERROR_MACRO(28,
+ CG_CANNOT_DESTROY_PARAMETER_ERROR,
+ "Cannot destroy the parameter. It is bound to other parameters "
+ "or is not a root parameter.")
+
+
+CG_ERROR_MACRO(29,
+ CG_NOT_ROOT_PARAMETER_ERROR,
+ "The parameter is not a root parameter.")
+
+CG_ERROR_MACRO(30,
+ CG_PARAMETERS_DO_NOT_MATCH_ERROR,
+ "The two parameters being bound do not match.")
+
+CG_ERROR_MACRO(31,
+ CG_IS_NOT_PROGRAM_PARAMETER_ERROR,
+ "The parameter is not a program parameter.")
+
+CG_ERROR_MACRO(32,
+ CG_INVALID_PARAMETER_TYPE_ERROR,
+ "The type of the parameter is invalid.")
+
+CG_ERROR_MACRO(33,
+ CG_PARAMETER_IS_NOT_RESIZABLE_ARRAY_ERROR,
+ "The parameter must be a resizable array.")
+
+CG_ERROR_MACRO(34,
+ CG_INVALID_SIZE_ERROR,
+ "The size value is invalid.")
+
+CG_ERROR_MACRO(35,
+ CG_BIND_CREATES_CYCLE_ERROR,
+ "Cannot bind the given parameters. Binding will form a cycle.")
+
+CG_ERROR_MACRO(36,
+ CG_ARRAY_TYPES_DO_NOT_MATCH_ERROR,
+ "Cannot bind the given parameters. Array types do not match.")
+
+CG_ERROR_MACRO(37,
+ CG_ARRAY_DIMENSIONS_DO_NOT_MATCH_ERROR,
+ "Cannot bind the given parameters. "
+ "Array dimensions do not match.")
+
+CG_ERROR_MACRO(38,
+ CG_ARRAY_HAS_WRONG_DIMENSION_ERROR,
+ "The array has the wrong dimension.")
+
+CG_ERROR_MACRO(39,
+ CG_TYPE_IS_NOT_DEFINED_IN_PROGRAM_ERROR,
+ "Connecting the parameters failed because The type of the "
+ "source parameter is not defined within the given program "
+ "or does not match the type with the same name in the program.")
+
+CG_ERROR_MACRO(40,
+ CG_INVALID_EFFECT_HANDLE_ERROR,
+ "Invalid effect handle.")
+
+CG_ERROR_MACRO(41,
+ CG_INVALID_STATE_HANDLE_ERROR,
+ "Invalid state handle.")
+
+CG_ERROR_MACRO(42,
+ CG_INVALID_STATE_ASSIGNMENT_HANDLE_ERROR,
+ "Invalid stateassignment handle.")
+
+CG_ERROR_MACRO(43,
+ CG_INVALID_PASS_HANDLE_ERROR,
+ "Invalid pass handle.")
+
+CG_ERROR_MACRO(44,
+ CG_INVALID_ANNOTATION_HANDLE_ERROR,
+ "Invalid annotation handle.")
+
+CG_ERROR_MACRO(45,
+ CG_INVALID_TECHNIQUE_HANDLE_ERROR,
+ "Invalid technique handle.")
+
+/* Do not use this! Use CG_INVALID_PARAM_HANDLE_ERROR instead. */
+
+CG_ERROR_MACRO(46,
+ CG_INVALID_PARAMETER_HANDLE_ERROR,
+ "Invalid parameter handle.")
+
+CG_ERROR_MACRO(47,
+ CG_STATE_ASSIGNMENT_TYPE_MISMATCH_ERROR,
+ "Operation is not valid for this type of stateassignment.")
+
+CG_ERROR_MACRO(48,
+ CG_INVALID_FUNCTION_HANDLE_ERROR,
+ "Invalid function handle.")
+
+CG_ERROR_MACRO(49,
+ CG_INVALID_TECHNIQUE_ERROR,
+ "Technique did not pass validation.")
+
+CG_ERROR_MACRO(50,
+ CG_INVALID_POINTER_ERROR,
+ "The supplied pointer is NULL.")
+
+CG_ERROR_MACRO(51,
+ CG_NOT_ENOUGH_DATA_ERROR,
+ "Not enough data was provided.")
+
+CG_ERROR_MACRO(52,
+ CG_NON_NUMERIC_PARAMETER_ERROR,
+ "The parameter is not of a numeric type.")
+
+CG_ERROR_MACRO(53,
+ CG_ARRAY_SIZE_MISMATCH_ERROR,
+ "The specified array sizes are not compatible with the given array.")
+
+CG_ERROR_MACRO(54,
+ CG_CANNOT_SET_NON_UNIFORM_PARAMETER_ERROR,
+ "Cannot set the value of a non-uniform parameter.")
+
+CG_ERROR_MACRO(55,
+ CG_DUPLICATE_NAME_ERROR,
+ "This name is already in use.")
+
+CG_ERROR_MACRO(56,
+ CG_INVALID_OBJ_HANDLE_ERROR,
+ "Invalid object handle.")
+
+CG_ERROR_MACRO(57,
+ CG_INVALID_BUFFER_HANDLE_ERROR,
+ "Invalid buffer handle.")
+
+CG_ERROR_MACRO(58,
+ CG_BUFFER_INDEX_OUT_OF_RANGE_ERROR,
+ "Buffer index is out of bounds.")
+
+CG_ERROR_MACRO(59,
+ CG_BUFFER_ALREADY_MAPPED_ERROR,
+ "The buffer is already mapped.")
+
+CG_ERROR_MACRO(60,
+ CG_BUFFER_UPDATE_NOT_ALLOWED_ERROR,
+ "The buffer cannot be updated.")
+
+CG_ERROR_MACRO(61,
+ CG_GLSLG_UNCOMBINED_LOAD_ERROR,
+ "The GLSL geometry program can not load without being combined with a vertex program.")
+
+#undef CG_ERROR_MACRO
+
diff --git a/Externals/cg/2.2/include/Cg/cg_profiles.h b/Externals/cg/2.2/include/Cg/cg_profiles.h
new file mode 100644
index 00000000..b5e287e2
--- /dev/null
+++ b/Externals/cg/2.2/include/Cg/cg_profiles.h
@@ -0,0 +1,105 @@
+/*
+ *
+ * Copyright (c) 2002-2010, NVIDIA Corporation.
+ *
+ *
+ *
+ * NVIDIA Corporation("NVIDIA") supplies this software to you in consideration
+ * of your agreement to the following terms, and your use, installation,
+ * modification or redistribution of this NVIDIA software constitutes
+ * acceptance of these terms. If you do not agree with these terms, please do
+ * not use, install, modify or redistribute this NVIDIA software.
+ *
+ *
+ *
+ * In consideration of your agreement to abide by the following terms, and
+ * subject to these terms, NVIDIA grants you a personal, non-exclusive license,
+ * under NVIDIA's copyrights in this original NVIDIA software (the "NVIDIA
+ * Software"), to use, reproduce, modify and redistribute the NVIDIA
+ * Software, with or without modifications, in source and/or binary forms;
+ * provided that if you redistribute the NVIDIA Software, you must retain the
+ * copyright notice of NVIDIA, this notice and the following text and
+ * disclaimers in all such redistributions of the NVIDIA Software. Neither the
+ * name, trademarks, service marks nor logos of NVIDIA Corporation may be used
+ * to endorse or promote products derived from the NVIDIA Software without
+ * specific prior written permission from NVIDIA. Except as expressly stated
+ * in this notice, no other rights or licenses express or implied, are granted
+ * by NVIDIA herein, including but not limited to any patent rights that may be
+ * infringed by your derivative works or by other works in which the NVIDIA
+ * Software may be incorporated. No hardware is licensed hereunder.
+ *
+ *
+ *
+ * THE NVIDIA SOFTWARE IS BEING PROVIDED ON AN "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING
+ * WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR ITS USE AND OPERATION
+ * EITHER ALONE OR IN COMBINATION WITH OTHER PRODUCTS.
+ *
+ *
+ *
+ * IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL,
+ * EXEMPLARY, CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, LOST
+ * PROFITS; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) OR ARISING IN ANY WAY OUT OF THE USE,
+ * REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE NVIDIA SOFTWARE,
+ * HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING
+ * NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF NVIDIA HAS BEEN ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+/*
+ * The following macro invocations define the supported CG profiles.
+ *
+ * The macros have the form :
+ *
+ * CG_PROFILE_MACRO(name, compiler_id, compiler_id_caps, compiler_opt, int_id, vertex_profile)
+ *
+ * name : The name of the profile. Used consistently with the API.
+ * compiler_id : The identifier string for the profile used by the compiler.
+ * compiler_id_caps : compiler_id in caps.
+ * compiler_opt : The command-line switch used to force compilation into
+ * the profile.
+ * int_id : Integer enumerant associated with this bind location.
+ * vertex_profile : Non-zero if this is a vertex profile, otherwise it
+ * is considered to be a fragment profile.
+ *
+ *
+ */
+
+#define CG_IN_PROFILES_INCLUDE
+
+/* Used for profile enumeration aliases */
+#ifndef CG_PROFILE_ALIAS
+#define CG_PROFILE_ALIAS(name, compiler_id, compiler_id_caps, compiler_opt, int_id, vertex_profile) /*nothing*/
+#endif
+
+#include <Cg/cgGL_profiles.h>
+
+
+CG_PROFILE_MACRO(DX9Vertex11,vs_1_1,VS_1_1,"vs_1_1",6153,1)
+CG_PROFILE_MACRO(DX9Vertex20,vs_2_0,VS_2_0,"vs_2_0",6154,1)
+CG_PROFILE_MACRO(DX9Vertex2x,vs_2_x,VS_2_X,"vs_2_x",6155,1)
+CG_PROFILE_MACRO(DX9Vertex2sw,vs_2_sw,VS_2_SW,"vs_2_sw",6156,1)
+CG_PROFILE_MACRO(DX9Vertex30,vs_3_0,VS_3_0,"vs_3_0",6157,1)
+CG_PROFILE_MACRO(DX9VertexHLSL,hlslv, HLSLV,"hlslv",6158,1)
+
+CG_PROFILE_MACRO(DX9Pixel11,ps_1_1,PS_1_1,"ps_1_1",6159,0)
+CG_PROFILE_MACRO(DX9Pixel12,ps_1_2,PS_1_2,"ps_1_2",6160,0)
+CG_PROFILE_MACRO(DX9Pixel13,ps_1_3,PS_1_3,"ps_1_3",6161,0)
+CG_PROFILE_MACRO(DX9Pixel20,ps_2_0,PS_2_0,"ps_2_0",6162,0)
+CG_PROFILE_MACRO(DX9Pixel2x,ps_2_x,PS_2_X,"ps_2_x",6163,0)
+CG_PROFILE_MACRO(DX9Pixel2sw,ps_2_sw,PS_2_SW,"ps_2_sw",6164,0)
+CG_PROFILE_MACRO(DX9Pixel30,ps_3_0,PS_3_0,"ps_3_0",6165,0)
+CG_PROFILE_MACRO(DX9PixelHLSL,hlslf,HLSLF,"hlslf",6166,0)
+
+CG_PROFILE_MACRO(DX10Vertex40,vs_4_0,VS_4_0,"vs_4_0",6167,1)
+CG_PROFILE_MACRO(DX10Pixel40,ps_4_0,PS_4_0,"ps_4_0",6168,0)
+CG_PROFILE_MACRO(DX10Geometry40,gs_4_0,GS_4_0,"gs_4_0",6169,0)
+
+CG_PROFILE_MACRO(Generic, generic, GENERIC, "generic", 7002,0)
+
+#undef CG_PROFILE_MACRO
+#undef CG_PROFILE_ALIAS
+#undef CG_IN_PROFILES_INCLUDE