This commit is contained in:
romkazvo
2023-08-07 19:29:24 +08:00
commit 34d6c5d489
4832 changed files with 1389451 additions and 0 deletions

View File

@@ -0,0 +1,369 @@
/*
*
* Copyright (c) 2002, 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<49>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
#define CG_VERSION_1_2 1
#define CG_VERSION_NUM 1200
//
// This #define foreces the old API for now. This will be removed soon, but
// the user will still have the ability to enable it.
//
// #define CG_DEPRECATED_1_1_API 1
// Set up for either Win32 import/export/lib.
#ifndef CGDLL_API
#ifdef WIN32
#ifdef CGDLL_EXPORTS
#define CGDLL_API __declspec(dllexport)
#elif defined (CG_LIB)
#define CGDLL_API
#else
#define CGDLL_API __declspec(dllimport)
#endif
#else
#define CGDLL_API
#endif
#endif
/*************************************************************************/
/*** CG Run-Time Library API ***/
/*************************************************************************/
/*************************************************************************/
/*** 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;
//!!! PREPROCESS BEGIN
typedef enum
{
CG_UNKNOWN_TYPE,
CG_STRUCT,
CG_ARRAY,
CG_TYPE_START_ENUM = 1024,
# define CG_DATATYPE_MACRO(name, compiler_name, enum_name, ncols, nrows) \
enum_name ,
#include "Cg/cg_datatypes.h"
} 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,
} 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,
#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"
} CGerror;
//!!! PREPROCESS END
typedef enum
{
# define CG_ENUM_MACRO(enum_name, enum_val) \
enum_name = enum_val,
# include "Cg/cg_enums.h"
} CGenum;
#include <stdarg.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef void (*CGerrorCallbackFunc)(void);
/*************************************************************************/
/*** Functions ***/
/*************************************************************************/
#ifndef CG_EXPLICIT
/*** Context functions ***/
CGDLL_API CGcontext cgCreateContext(void);
CGDLL_API void cgDestroyContext(CGcontext ctx);
CGDLL_API CGbool cgIsContext(CGcontext ctx);
CGDLL_API const char *cgGetLastListing(CGcontext ctx);
CGDLL_API void cgSetAutoCompile(CGcontext ctx, CGenum flag);
/*** Program functions ***/
CGDLL_API CGprogram cgCreateProgram(CGcontext ctx,
CGenum program_type,
const char *program,
CGprofile profile,
const char *entry,
const char **args);
CGDLL_API CGprogram cgCreateProgramFromFile(CGcontext ctx,
CGenum program_type,
const char *program_file,
CGprofile profile,
const char *entry,
const char **args);
CGDLL_API CGprogram cgCopyProgram(CGprogram program);
CGDLL_API void cgDestroyProgram(CGprogram program);
CGDLL_API CGprogram cgGetFirstProgram(CGcontext ctx);
CGDLL_API CGprogram cgGetNextProgram(CGprogram current);
CGDLL_API CGcontext cgGetProgramContext(CGprogram prog);
CGDLL_API CGbool cgIsProgram(CGprogram program);
CGDLL_API void cgCompileProgram(CGprogram program);
CGDLL_API CGbool cgIsProgramCompiled(CGprogram program);
CGDLL_API const char *cgGetProgramString(CGprogram prog, CGenum pname);
CGDLL_API CGprofile cgGetProgramProfile(CGprogram prog);
/*** Parameter functions ***/
CGDLL_API CGparameter cgCreateParameter(CGcontext ctx, CGtype type);
CGDLL_API CGparameter cgCreateParameterArray(CGcontext ctx,
CGtype type,
int length);
CGDLL_API CGparameter cgCreateParameterMultiDimArray(CGcontext ctx,
CGtype type,
int dim,
const int *lengths);
CGDLL_API void cgDestroyParameter(CGparameter param);
CGDLL_API void cgConnectParameter(CGparameter from, CGparameter to);
CGDLL_API void cgDisconnectParameter(CGparameter param);
CGDLL_API CGparameter cgGetConnectedParameter(CGparameter param);
CGDLL_API int cgGetNumConnectedToParameters(CGparameter param);
CGDLL_API CGparameter cgGetConnectedToParameter(CGparameter param, int index);
CGDLL_API CGparameter cgGetNamedParameter(CGprogram prog, const char *name);
CGDLL_API CGparameter cgGetNamedProgramParameter(CGprogram prog,
CGenum name_space,
const char *name);
CGDLL_API CGparameter cgGetFirstParameter(CGprogram prog, CGenum name_space);
CGDLL_API CGparameter cgGetNextParameter(CGparameter current);
CGDLL_API CGparameter cgGetFirstLeafParameter(CGprogram prog, CGenum name_space);
CGDLL_API CGparameter cgGetNextLeafParameter(CGparameter current);
CGDLL_API CGparameter cgGetFirstStructParameter(CGparameter param);
CGDLL_API CGparameter cgGetNamedStructParameter(CGparameter param,
const char *name);
CGDLL_API CGparameter cgGetFirstDependentParameter(CGparameter param);
CGDLL_API CGparameter cgGetArrayParameter(CGparameter aparam, int index);
CGDLL_API int cgGetArrayDimension(CGparameter param);
CGDLL_API CGtype cgGetArrayType(CGparameter param);
CGDLL_API int cgGetArraySize(CGparameter param, int dimension);
CGDLL_API void cgSetArraySize(CGparameter param, int size);
CGDLL_API void cgSetMultiDimArraySize(CGparameter param, const int *sizes);
CGDLL_API CGprogram cgGetParameterProgram(CGparameter param);
CGDLL_API CGcontext cgGetParameterContext(CGparameter param);
CGDLL_API CGbool cgIsParameter(CGparameter param);
CGDLL_API const char *cgGetParameterName(CGparameter param);
CGDLL_API CGtype cgGetParameterType(CGparameter param);
CGDLL_API CGtype cgGetParameterNamedType(CGparameter param);
CGDLL_API const char *cgGetParameterSemantic(CGparameter param);
CGDLL_API CGresource cgGetParameterResource(CGparameter param);
CGDLL_API CGresource cgGetParameterBaseResource(CGparameter param);
CGDLL_API unsigned long cgGetParameterResourceIndex(CGparameter param);
CGDLL_API CGenum cgGetParameterVariability(CGparameter param);
CGDLL_API CGenum cgGetParameterDirection(CGparameter param);
CGDLL_API CGbool cgIsParameterReferenced(CGparameter param);
CGDLL_API const double *cgGetParameterValues(CGparameter param,
CGenum value_type,
int *nvalues);
CGDLL_API int cgGetParameterOrdinalNumber(CGparameter param);
CGDLL_API CGbool cgIsParameterGlobal(CGparameter param);
CGDLL_API int cgGetParameterIndex(CGparameter param);
CGDLL_API void cgSetParameterVariability(CGparameter param, CGenum vary);
CGDLL_API void cgSetParameterSemantic(CGparameter param, const char *semantic);
CGDLL_API void cgSetParameter1f(CGparameter param, float x);
CGDLL_API void cgSetParameter2f(CGparameter param, float x, float y);
CGDLL_API void cgSetParameter3f(CGparameter param, float x, float y, float z);
CGDLL_API void cgSetParameter4f(CGparameter param,
float x,
float y,
float z,
float w);
CGDLL_API void cgSetParameter1d(CGparameter param, double x);
CGDLL_API void cgSetParameter2d(CGparameter param, double x, double y);
CGDLL_API void cgSetParameter3d(CGparameter param,
double x,
double y,
double z);
CGDLL_API void cgSetParameter4d(CGparameter param,
double x,
double y,
double z,
double w);
CGDLL_API void cgSetParameter1fv(CGparameter param, const float *v);
CGDLL_API void cgSetParameter2fv(CGparameter param, const float *v);
CGDLL_API void cgSetParameter3fv(CGparameter param, const float *v);
CGDLL_API void cgSetParameter4fv(CGparameter param, const float *v);
CGDLL_API void cgSetParameter1dv(CGparameter param, const double *v);
CGDLL_API void cgSetParameter2dv(CGparameter param, const double *v);
CGDLL_API void cgSetParameter3dv(CGparameter param, const double *v);
CGDLL_API void cgSetParameter4dv(CGparameter param, const double *v);
CGDLL_API void cgSetMatrixParameterdr(CGparameter param, const double *matrix);
CGDLL_API void cgSetMatrixParameterfr(CGparameter param, const float *matrix);
CGDLL_API void cgSetMatrixParameterdc(CGparameter param, const double *matrix);
CGDLL_API void cgSetMatrixParameterfc(CGparameter param, const float *matrix);
/*** Type Functions ***/
CGDLL_API const char *cgGetTypeString(CGtype type);
CGDLL_API CGtype cgGetType(const char *type_string);
CGDLL_API CGtype cgGetNamedUserType(CGprogram program, const char *name);
CGDLL_API int cgGetNumUserTypes(CGprogram program);
CGDLL_API CGtype cgGetUserType(CGprogram program, int index);
CGDLL_API int cgGetNumParentTypes(CGtype type);
CGDLL_API CGtype cgGetParentType(CGtype type, int index);
CGDLL_API CGbool cgIsParentType(CGtype parent, CGtype child);
CGDLL_API CGbool cgIsInterfaceType(CGtype type);
/*** Resource Functions ***/
CGDLL_API const char *cgGetResourceString(CGresource resource);
CGDLL_API CGresource cgGetResource(const char *resource_string);
/*** Enum Functions ***/
CGDLL_API const char *cgGetEnumString(CGenum en);
CGDLL_API CGenum cgGetEnum(const char *enum_string);
/*** Profile Functions ***/
CGDLL_API const char *cgGetProfileString(CGprofile profile);
CGDLL_API CGprofile cgGetProfile(const char *profile_string);
/*** Error Functions ***/
CGDLL_API CGerror cgGetError(void);
CGDLL_API const char *cgGetErrorString(CGerror error);
CGDLL_API const char *cgGetLastErrorString(CGerror *error);
CGDLL_API void cgSetErrorCallback(CGerrorCallbackFunc func);
CGDLL_API CGerrorCallbackFunc cgGetErrorCallback(void);
/*** Misc Functions ***/
CGDLL_API const char *cgGetString(CGenum sname);
/*** Support for deprecated Cg 1.1 API ***/
CGDLL_API CGparameter cgGetNextParameter_depr1_1(CGparameter current);
CGDLL_API CGparameter cgGetNextLeafParameter_depr1_1(CGparameter current);
#ifdef CG_DEPRECATED_1_1_API
#define cgGetNextParameter cgGetNextParameter_depr1_1
#define cgGetNextLeafParameter cgGetNextLeafParameter_depr1_1
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,200 @@
/*
*
* Copyright (c) 2002, 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<49>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.
*
*/
/*********************************************************************NVMH2****
File: cgContextManager.h
Copyright (C) 1999, 2000 NVIDIA Corporation
This file is provided without support, instruction, or implied warranty of any
kind. NVIDIA makes no guarantee of its fitness for a particular purpose and is
not liable under any circumstances for any damages or loss whatsoever arising
from the use or inability to use this file or items derived from it.
Comments:
cgContextManager - a class for loading various cg programs,
******************************************************************************/
#ifndef __NV_CG_MANAGER_H
#define __NV_CG_MANAGER_H
#if WIN32
#pragma warning (disable:4786) // identifier was truncated to '255' characters in the browser information
#include <windows.h>
#include <d3d8.h>
#include <d3dx8.h>
#include <Cg/cgTemplates.h>
#include <Cg/cg.h>
#include <Cg/cgProgramManager.h>
class cgContextManager;
class cgContextContainer
{
public:
// retrieve the listing file for the last compile
const char *GetLastListing();
// loads and compiles the cg program
cgProgramContainer * LoadCGProgramFromFile(
const char * filename, // filename of the Cg program
const char * title, // title of the program
cgProfileType type, // profile of the program
cgVertexDefinition * va = 0, // optionally, set streams or allow different vetex definitions
DWORD * outIndex = 0,
const char * entry = 0);
cgProgramContainer * LoadCGProgramFromMemory(
const char * memory, // memory location that contain the cg program
const char * title, // name of the program
cgProfileType type, // profile of the program
cgVertexDefinition * va = 0, // optionally, set the streams for each vertex entry
DWORD * outIndex = 0,
const char * entry = 0);
// use outIndex returned from LoadCGProgramFrom to retriece the program iterator
cgProgramContainer * GetProgramIterator(DWORD index);
// program operators (for multiple programs(vertex, pixel) in one cg
// pass NULL to get first program
cgProgramIter *GetNextProgram(cgProgramIter *iter);
// get a specific program
cgProgramIter *ProgramByName(const char *name);
// get the vertexshader or pixel shader handle that is passed to
// SetVertexShader and SetPixelShader
DWORD GetShaderHandle(cgProfileType type)
{
return pm.GetShaderHandle( type);
}
~cgContextContainer( );
friend class cgContextManager;
protected:
cgContextContainer( LPDIRECT3DDEVICE8 pd3dDevice, cgContext * context);
private:
cgProgramContainer * CreateProgramContainer(DWORD * outIndex = 0);
cgProgramContainer * CreateProgramContainer(
cgProgramIter *ProgramIter,
LPDIRECT3DDEVICE8 pd3dDevice,
DWORD * outIndex = 0); // index of this
// loads and compiles the cg program
HRESULT AddProgramFromFile(const char * filename, const char * name, cgProfileType type, const char * entry = 0);
HRESULT AddProgramFromMemory(const char * memory, const char * name, cgProfileType type, const char * entry = 0);
void Free();
cgProgramManager pm; // manage the vertex or pixel shader that is derived from this
cgContext * m_Context;
cg_string m_ContextDefinition;
LPDIRECT3DDEVICE8 m_pd3dDevice;
};
class cgContextManager
{
private:
cg_vector < cgContextContainer *> m_ContextContainers;
cg_vector < DWORD > m_ContextIndices; // indirection to m_Shaders
// Programs hold an index to this array for
// their shaders. The array int at that index
// holds the index into the m_Shaders array.
// each context has a list of programs (up to one for each profile)
public:
cgContextManager();
~cgContextManager();
cgError Free();
cgContextContainer *CreateContextContainer(LPDIRECT3DDEVICE8 pd3dDevice, DWORD * outIndex);
};
#endif // WIN32
#endif

View File

@@ -0,0 +1,375 @@
/*
*
* Copyright (c) 2002, 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<49>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"
/* Set up for either Win32 import/export/lib. */
#ifndef CGGLDLL_API
#if WIN32
# include <windows.h>
#ifdef CGGLDLL_EXPORTS
#define CGGLDLL_API __declspec(dllexport)
#elif defined (CG_LIB)
#define CGGLDLL_API
#else
#define CGGLDLL_API __declspec(dllimport)
#endif
#else
#define CGGLDLL_API
#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,
} CGGLenum;
#ifndef CGGL_EXPLICIT
/******************************************************************************
*** Profile Functions
*****************************************************************************/
CGGLDLL_API CGbool cgGLIsProfileSupported(CGprofile profile);
CGGLDLL_API void cgGLEnableProfile(CGprofile profile);
CGGLDLL_API void cgGLDisableProfile(CGprofile profile);
CGGLDLL_API CGprofile cgGLGetLatestProfile(CGGLenum profile_type);
CGGLDLL_API void cgGLSetOptimalOptions(CGprofile profile);
/******************************************************************************
*** Program Managment Functions
*****************************************************************************/
CGGLDLL_API void cgGLLoadProgram(CGprogram program);
CGGLDLL_API CGbool cgGLIsProgramLoaded(CGprogram program);
CGGLDLL_API void cgGLBindProgram(CGprogram program);
CGGLDLL_API void cgGLUnbindProgram(CGprofile profile);
CGGLDLL_API GLuint cgGLGetProgramID(CGprogram program);
/******************************************************************************
*** Parameter Managment Functions
*****************************************************************************/
CGGLDLL_API void cgGLSetParameter1f(CGparameter param,
float x);
CGGLDLL_API void cgGLSetParameter2f(CGparameter param,
float x,
float y);
CGGLDLL_API void cgGLSetParameter3f(CGparameter param,
float x,
float y,
float z);
CGGLDLL_API void cgGLSetParameter4f(CGparameter param,
float x,
float y,
float z,
float w);
CGGLDLL_API void cgGLSetParameter1fv(CGparameter param, const float *v);
CGGLDLL_API void cgGLSetParameter2fv(CGparameter param, const float *v);
CGGLDLL_API void cgGLSetParameter3fv(CGparameter param, const float *v);
CGGLDLL_API void cgGLSetParameter4fv(CGparameter param, const float *v);
CGGLDLL_API void cgGLSetParameter1d(CGparameter param,
double x);
CGGLDLL_API void cgGLSetParameter2d(CGparameter param,
double x,
double y);
CGGLDLL_API void cgGLSetParameter3d(CGparameter param,
double x,
double y,
double z);
CGGLDLL_API void cgGLSetParameter4d(CGparameter param,
double x,
double y,
double z,
double w);
CGGLDLL_API void cgGLSetParameter1dv(CGparameter param, const double *v);
CGGLDLL_API void cgGLSetParameter2dv(CGparameter param, const double *v);
CGGLDLL_API void cgGLSetParameter3dv(CGparameter param, const double *v);
CGGLDLL_API void cgGLSetParameter4dv(CGparameter param, const double *v);
CGGLDLL_API void cgGLSetParameter4dv(CGparameter param, const double *v);
CGGLDLL_API void cgGLGetParameter1f(CGparameter param, float *v);
CGGLDLL_API void cgGLGetParameter2f(CGparameter param, float *v);
CGGLDLL_API void cgGLGetParameter3f(CGparameter param, float *v);
CGGLDLL_API void cgGLGetParameter4f(CGparameter param, float *v);
CGGLDLL_API void cgGLGetParameter1d(CGparameter param, double *v);
CGGLDLL_API void cgGLGetParameter2d(CGparameter param, double *v);
CGGLDLL_API void cgGLGetParameter3d(CGparameter param, double *v);
CGGLDLL_API void cgGLGetParameter4d(CGparameter param, double *v);
CGGLDLL_API void cgGLSetParameterArray1f(CGparameter param,
long offset,
long nelements,
const float *v);
CGGLDLL_API void cgGLSetParameterArray2f(CGparameter param,
long offset,
long nelements,
const float *v);
CGGLDLL_API void cgGLSetParameterArray3f(CGparameter param,
long offset,
long nelements,
const float *v);
CGGLDLL_API void cgGLSetParameterArray4f(CGparameter param,
long offset,
long nelements,
const float *v);
CGGLDLL_API void cgGLSetParameterArray1d(CGparameter param,
long offset,
long nelements,
const double *v);
CGGLDLL_API void cgGLSetParameterArray2d(CGparameter param,
long offset,
long nelements,
const double *v);
CGGLDLL_API void cgGLSetParameterArray3d(CGparameter param,
long offset,
long nelements,
const double *v);
CGGLDLL_API void cgGLSetParameterArray4d(CGparameter param,
long offset,
long nelements,
const double *v);
CGGLDLL_API void cgGLGetParameterArray1f(CGparameter param,
long offset,
long nelements,
float *v);
CGGLDLL_API void cgGLGetParameterArray2f(CGparameter param,
long offset,
long nelements,
float *v);
CGGLDLL_API void cgGLGetParameterArray3f(CGparameter param,
long offset,
long nelements,
float *v);
CGGLDLL_API void cgGLGetParameterArray4f(CGparameter param,
long offset,
long nelements,
float *v);
CGGLDLL_API void cgGLGetParameterArray1d(CGparameter param,
long offset,
long nelements,
double *v);
CGGLDLL_API void cgGLGetParameterArray2d(CGparameter param,
long offset,
long nelements,
double *v);
CGGLDLL_API void cgGLGetParameterArray3d(CGparameter param,
long offset,
long nelements,
double *v);
CGGLDLL_API void cgGLGetParameterArray4d(CGparameter param,
long offset,
long nelements,
double *v);
CGGLDLL_API void cgGLSetParameterPointer(CGparameter param,
GLint fsize,
GLenum type,
GLsizei stride,
const GLvoid *pointer);
CGGLDLL_API void cgGLEnableClientState(CGparameter param);
CGGLDLL_API void cgGLDisableClientState(CGparameter param);
/******************************************************************************
*** Matrix Parameter Managment Functions
*****************************************************************************/
CGGLDLL_API void cgGLSetMatrixParameterdr(CGparameter param,
const double *matrix);
CGGLDLL_API void cgGLSetMatrixParameterfr(CGparameter param,
const float *matrix);
CGGLDLL_API void cgGLSetMatrixParameterdc(CGparameter param,
const double *matrix);
CGGLDLL_API void cgGLSetMatrixParameterfc(CGparameter param,
const float *matrix);
CGGLDLL_API void cgGLGetMatrixParameterdr(CGparameter param, double *matrix);
CGGLDLL_API void cgGLGetMatrixParameterfr(CGparameter param, float *matrix);
CGGLDLL_API void cgGLGetMatrixParameterdc(CGparameter param, double *matrix);
CGGLDLL_API void cgGLGetMatrixParameterfc(CGparameter param, float *matrix);
CGGLDLL_API void cgGLSetStateMatrixParameter(CGparameter param,
CGGLenum matrix,
CGGLenum transform);
CGGLDLL_API void cgGLSetMatrixParameterArrayfc(CGparameter param,
long offset,
long nelements,
const float *matrices);
CGGLDLL_API void cgGLSetMatrixParameterArrayfr(CGparameter param,
long offset,
long nelements,
const float *matrices);
CGGLDLL_API void cgGLSetMatrixParameterArraydc(CGparameter param,
long offset,
long nelements,
const double *matrices);
CGGLDLL_API void cgGLSetMatrixParameterArraydr(CGparameter param,
long offset,
long nelements,
const double *matrices);
CGGLDLL_API void cgGLGetMatrixParameterArrayfc(CGparameter param,
long offset,
long nelements,
float *matrices);
CGGLDLL_API void cgGLGetMatrixParameterArrayfr(CGparameter param,
long offset,
long nelements,
float *matrices);
CGGLDLL_API void cgGLGetMatrixParameterArraydc(CGparameter param,
long offset,
long nelements,
double *matrices);
CGGLDLL_API void cgGLGetMatrixParameterArraydr(CGparameter param,
long offset,
long nelements,
double *matrices);
/******************************************************************************
*** Texture Parameter Managment Functions
*****************************************************************************/
CGGLDLL_API void cgGLSetTextureParameter(CGparameter param, GLuint texobj);
CGGLDLL_API GLuint cgGLGetTextureParameter(CGparameter param);
CGGLDLL_API void cgGLEnableTextureParameter(CGparameter param);
CGGLDLL_API void cgGLDisableTextureParameter(CGparameter param);
CGGLDLL_API GLenum cgGLGetTextureEnum(CGparameter param);
CGGLDLL_API void cgGLSetManageTextureParameters(CGcontext ctx, CGbool flag);
CGGLDLL_API CGbool cgGLGetManageTextureParameters(CGcontext ctx);
#endif
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,325 @@
/*
*
* Copyright (c) 2002, 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<49>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_deprecated_api_h
#define _cgGL_deprecated_api_h
#include <Cg/cg.h>
// Set up for either Win32 import/export/lib.
#ifndef CGGLDLL_API
#if WIN32
# include <windows.h>
#ifdef CGGLDLL_EXPORTS
#define CGGLDLL_API __declspec(dllexport)
#elif defined (CG_LIB)
#define CGGLDLL_API
#else
#define CGGLDLL_API __declspec(dllimport)
#endif
#else
#define CGGLDLL_API
#endif
#endif
#ifdef __APPLE__
#include <OpenGL/gl.h>
#else
#include <GL/gl.h>
#endif
#ifdef __cplusplus
extern "C" {
#endif
/*****************************************************************************/
/*** cgGL Type Definitions ***/
/*****************************************************************************/
typedef enum
{
cgGLMatrixIdentity = 0,
cgGLMatrixTranspose = 1,
cgGLMatrixInverse = 2,
} cgGLMatrixFormat;
typedef enum
{
cgGLModelViewMatrix,
cgGLProjectionMatrix,
cgGLTextureMatrix,
cgGLModelViewProjectionMatrix,
} cgGLMatrixType;
/*****************************************************************************/
/*** Resource Aliases ***/
/*****************************************************************************/
#define cgBindPosition cgBindPosition0
#define cgBindNormal cgBindNormal0
#define cgBindCol cgBindCol0
#define cgBindColor cgBindColor0
#define cgBindBlendWeight cgBindBlendWeight0
/*****************************************************************************/
/*** Program Loading and Binding Functions ***/
/*****************************************************************************/
CGGLDLL_API cgError cgGLLoadProgram(cgProgramIter *program, GLuint prog_id);
CGGLDLL_API cgError cgGLBindProgram(cgProgramIter *program);
CGGLDLL_API cgError cgGLEnableProgramType(cgProfileType profile);
CGGLDLL_API cgError cgGLDisableProgramType(cgProfileType profile);
/*****************************************************************************/
/*** Texture Unit Identifier Functions ***/
/*****************************************************************************/
CGGLDLL_API GLenum cgGLTextureUnit(const cgBindIter *param);
CGGLDLL_API cgError cgGLActiveTexture(const cgBindIter *param);
CGGLDLL_API cgError cgGLClientActiveTexture(const cgBindIter *param);
/*****************************************************************************/
/*** Uniform Parameter Binding Functions ***/
/*****************************************************************************/
CGGLDLL_API cgError cgGLBindUniform4f(cgProgramIter *program,
cgBindIter *param,
float x,
float y,
float z,
float w);
CGGLDLL_API cgError cgGLBindUniform4d(cgProgramIter *program,
cgBindIter *param,
double x,
double y,
double z,
double w);
CGGLDLL_API cgError cgGLBindUniform4fv(cgProgramIter *program,
cgBindIter *param,
const float v[]);
CGGLDLL_API cgError cgGLBindUniform4dv(cgProgramIter *program,
cgBindIter *param,
const double v[]);
CGGLDLL_API cgError cgGLBindUniformMatrixrf(cgProgramIter *program,
cgBindIter *param,
const float *matrix);
CGGLDLL_API cgError cgGLBindUniformMatrixrd(cgProgramIter *program,
cgBindIter *param,
const double *matrix);
CGGLDLL_API cgError cgGLBindUniformMatrixcf(cgProgramIter *program,
cgBindIter *param,
const float *matrix);
CGGLDLL_API cgError cgGLBindUniformMatrixcd(cgProgramIter *program,
cgBindIter *param,
const double *matrix);
CGGLDLL_API cgError cgGLBindUniformStateMatrix(cgProgramIter *program,
cgBindIter *param,
cgGLMatrixType matrix_type,
int format);
/*****************************************************************************/
/*** Varying Parameter Binding Functions ***/
/*****************************************************************************/
CGGLDLL_API cgError cgGLEnableClientState(cgProgramIter *program,
cgBindIter *param);
CGGLDLL_API cgError cgGLDisableClientState(cgProgramIter *program,
cgBindIter *param);
CGGLDLL_API cgError cgGLBindVaryingPointer(cgProgramIter *program,
cgBindIter *param,
GLint fsize,
GLenum type,
GLsizei stride,
GLvoid *pointer);
CGGLDLL_API cgError cgGLBindVarying1s(cgProgramIter *program,
cgBindIter *param,
GLshort x);
CGGLDLL_API cgError cgGLBindVarying1f(cgProgramIter *program,
cgBindIter *param,
GLfloat x);
CGGLDLL_API cgError cgGLBindVarying1d(cgProgramIter *program,
cgBindIter *param,
GLdouble x);
CGGLDLL_API cgError cgGLBindVarying2s(cgProgramIter *program,
cgBindIter *param,
GLshort x,
GLshort y);
CGGLDLL_API cgError cgGLBindVarying2f(cgProgramIter *program,
cgBindIter *param,
GLfloat x,
GLfloat y);
CGGLDLL_API cgError cgGLBindVarying2d(cgProgramIter *program,
cgBindIter *param,
GLdouble x,
GLdouble y);
CGGLDLL_API cgError cgGLBindVarying3s(cgProgramIter *program,
cgBindIter *param,
GLshort x,
GLshort y,
GLshort z);
CGGLDLL_API cgError cgGLBindVarying3f(cgProgramIter *program,
cgBindIter *param,
GLfloat x,
GLfloat y,
GLfloat z);
CGGLDLL_API cgError cgGLBindVarying3d(cgProgramIter *program,
cgBindIter *param,
GLdouble x,
GLdouble y,
GLdouble z);
CGGLDLL_API cgError cgGLBindVarying4s(cgProgramIter *program,
cgBindIter *param,
GLshort x,
GLshort y,
GLshort z,
GLshort w);
CGGLDLL_API cgError cgGLBindVarying4f(cgProgramIter *program,
cgBindIter *param,
GLfloat x,
GLfloat y,
GLfloat z,
GLfloat w);
CGGLDLL_API cgError cgGLBindVarying4d(cgProgramIter *program,
cgBindIter *param,
GLdouble x,
GLdouble y,
GLdouble z,
GLdouble w);
CGGLDLL_API cgError cgGLBindVarying4ub(cgProgramIter *program,
cgBindIter *param,
GLubyte x,
GLubyte y,
GLubyte z,
GLubyte w);
CGGLDLL_API cgError cgGLBindVarying1sv(cgProgramIter *program,
cgBindIter *param,
const GLshort *v);
CGGLDLL_API cgError cgGLBindVarying1fv(cgProgramIter *program,
cgBindIter *param,
const GLfloat *v);
CGGLDLL_API cgError cgGLBindVarying1dv(cgProgramIter *program,
cgBindIter *param,
const GLdouble *v);
CGGLDLL_API cgError cgGLBindVarying2sv(cgProgramIter *program,
cgBindIter *param,
const GLshort *v);
CGGLDLL_API cgError cgGLBindVarying2fv(cgProgramIter *program,
cgBindIter *param,
const GLfloat *v);
CGGLDLL_API cgError cgGLBindVarying2dv(cgProgramIter *program,
cgBindIter *param,
const GLdouble *v);
CGGLDLL_API cgError cgGLBindVarying3sv(cgProgramIter *program,
cgBindIter *param,
const GLshort *v);
CGGLDLL_API cgError cgGLBindVarying3fv(cgProgramIter *program,
cgBindIter *param,
const GLfloat *v);
CGGLDLL_API cgError cgGLBindVarying3dv(cgProgramIter *program,
cgBindIter *param,
const GLdouble *v);
CGGLDLL_API cgError cgGLBindVarying4sv(cgProgramIter *program,
cgBindIter *param,
const GLshort *v);
CGGLDLL_API cgError cgGLBindVarying4fv(cgProgramIter *program,
cgBindIter *param,
const GLfloat *v);
CGGLDLL_API cgError cgGLBindVarying4dv(cgProgramIter *program,
cgBindIter *param,
const GLdouble *v);
CGGLDLL_API cgError cgGLBindVarying4ubv(cgProgramIter *program,
cgBindIter *param,
const GLubyte *v);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,64 @@
/*
*
* Copyright (c) 2002, 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<49>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(ARBVertex,arbvp2,ARBVP2,"arbvp2",6151,1)
CG_PROFILE_MACRO(ARBFragment,arbfp1,ARBFP1,"arbfp1",7000,0)
CG_PROFILE_MACRO(ARBFragment,arbfp2,ARBFP2,"arbfp2",7001,0)
#ifndef CG_IN_PROFILES_INCLUDE
# undef CG_PROFILE_MACRO
#endif

View File

@@ -0,0 +1,326 @@
/*
*
* Copyright (c) 2002, 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<49>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.
*
*/
/*********************************************************************NVMH2****
File: cgProgramManager.h
Copyright (C) 1999, 2000 NVIDIA Corporation
This file is provided without support, instruction, or implied warranty of any
kind. NVIDIA makes no guarantee of its fitness for a particular purpose and is
not liable under any circumstances for any damages or loss whatsoever arising
from the use or inability to use this file or items derived from it.
Comments:
cgProgramManager - a class for loading various pixel & vertex shaders
******************************************************************************/
#ifndef __NV_PROGRAM_MANAGER_H
#define __NV_PROGRAM_MANAGER_H
#if WIN32
#pragma warning (disable:4786) // identifier was truncated to '255' characters in the browser information
#include <windows.h>
#include <d3d8.h>
#include <d3dx8.h>
#include <Cg/cgTemplates.h>
#include <Cg/cg.h>
// to allow multiple streams and user specifed vertex type
// D3DVSDT_FLOAT1 0x00 // 1D float expanded to (value, 0., 0., 1.)
// D3DVSDT_FLOAT2 0x01 // 2D float expanded to (value, value, 0., 1.)
// D3DVSDT_FLOAT3 0x02 // 3D float expanded to (value, value, value, 1.)
// D3DVSDT_FLOAT4 0x03 // 4D float
// D3DVSDT_D3DCOLOR 0x04 // 4D packed unsigned bytes mapped to 0. to 1. range
// // Input is in D3DCOLOR format (ARGB) expanded to (R, G, B, A)
// D3DVSDT_UBYTE4 0x05 // 4D unsigned byte
// D3DVSDT_SHORT2 0x06 // 2D signed short expanded to (value, value, 0., 1.)
// D3DVSDT_SHORT4 0x07 // 4D signed short
// was cgVertexAttribute
typedef struct cgVertexDefinition
{
int D3DVSDT_type; // one of D3DVSDT_*
char * name; // name of the entry
int stream; // stream to put the vertex in
} cgVertexDefinition;
#define CGVERTEXDEFINITIONEND {-1, 0, 0}
// internal cgDirect3D data structure
typedef struct cgiVertexAttribute
{
char name[64];
int D3DVSDT_type;
int bind_location;
cgBindIter * BindIter;
} cgiVertexAttribute;
typedef cg_vector<cgiVertexAttribute> cgiVertexAttributeList;
typedef cg_list<cgBindIter *> cgBindIterList;
class cgProgramManager;
class cgContextContainer;
class cgProgramContainer
{
public:
// get a text definition of what the runtime expects for the vertex
const char * GetVertexDeclaration();
/*
Example: returns string containing
"struct stream0
{
D3DXVECTOR3 position;
D3DXVECTOR2 tex0;
};"
*/
// convert D3DXMATRIX class to type specified in cg program
// even if your cg program uses 3x3, you can use this to pass a matrix to it
// upper left hand part of D3DXMATRIX is used to fill the cg matrix
HRESULT SetShaderConstantD3DXMATRIX(cgBindIter * iter, const D3DXMATRIX *, int nArrayElements = 0, int ArrayOffset = 0);
// All other data formats use this interface
// The D3D runtime records the size of your data and puts that in the constant fields
HRESULT SetShaderConstant(cgBindIter * iter, void * data, int nArrayElements = 0, int ArrayOffset = 0);
// for arrays:
// if nArrayElements is specified, write this number of elements rather than the whole array
// if ArrayOffset is specified, start writing at this array element
// otherwise nArrayElements and ArrayOffset are not specified
// returns texture position 0-8 for the iterator
// -1 is failure
int GetTexturePosition(cgBindIter * BindIter);
int GetTexturePosition(const char * name);
// set the texture via name (needs to search bindings by name, so this is the slowest
// not recommended
HRESULT SetTexture(const char * name, LPDIRECT3DBASETEXTURE8 pTexture);
// does a GetTexturePosition, then settexture(n, nTexture)
HRESULT SetTexture(cgBindIter * BindIter, LPDIRECT3DBASETEXTURE8 pTexture);
// does a GetTexturePosition, then SetTextureStageState(n, nTexture, Value)
HRESULT SetTextureStageState(cgBindIter * BindIter, D3DTEXTURESTAGESTATETYPE Type,DWORD Value);
// Direct3D hardcodes wrap state, D3DRS_WRAP1, D3DWRAPCOORD_0 | D3DWRAPCOORD_1
// WrapCoords : 0, D3DWRAPCOORD_0, D3DWRAPCOORD_1 or'd together
HRESULT SetTextureWrapMode(cgBindIter * BindIter, DWORD WrapCoords);
// activate this shader (SetVertexShader or SetPixelShader)
HRESULT SetShaderActive();
// locate a binding within a program by parameter name
// it is recommended to do this once and use the cgBindIter to reference data
cgBindIter *GetVertexBindByName(const char *vertex_attr_name);
cgBindIter *GetTextureBindByName(const char *texture_name);
cgBindIter *GetParameterBindByName(const char *parameter_name);
void FreeBindIter(cgBindIter *);
// Get the type for this bind iterator
cgValueType GetBindValueType(const cgBindIter *BindIter, int *array_size)
{
return cgGetBindValueType(BindIter, array_size);
}
// locate and bindinf iterator by full name
// e.g. appdata.texcoord0
cgBindIter *GetBindByFullName(const char *parameter_name);
// from the iterator, get the name of the program
const char *GetProgramName();
const char *GetProgramObjectCode();
cgProfileType GetProgramProfile() { return m_ProfileType;}
// get the shader handle passed to Direct3D
DWORD GetShaderHandle() {return m_dwShaderHandle;}
private:
cgBindIter *AllocBind();
void SaveBind(cgBindIter * BindIter); // for deleting
cgBindIterList m_BindIterList;
void GetParameterConstantPosition(cgBindIter * iter, int * pos, int *width, int * num4vectors, int *nArrayElements);
void GetParameterConstantPosition(const char * name, int * pos, int *width, int * num4vectors, int *nArrayElements);
HRESULT CreateProgramShader();
HRESULT CreateVertexShader();
HRESULT CreatePixelShader();
// take asm code, assembles it and create a handle
HRESULT CreateShaderHandleFromFile(
const cg_string & strFilePath,
const cg_string & strSourceFile,
const DWORD * pDeclaration,
DWORD Usage);
HRESULT CreateShaderHandleFromMemory(
const char * pShaderText,
const DWORD * pDeclaration,
DWORD Usage);
HRESULT Free();
// cgDX8VertexProfile or cgDX8PixelProfile (cg_profiles.h)
// These types are defined with macros:
// CG_PROFILE_MACRO(DX8Vertex,dx8vs,"dx8vs")
// CG_PROFILE_MACRO(DX8Pixel,dx8ps,"dx8ps")
friend cgProgramManager;
friend cgContextContainer;
DWORD m_dwShaderHandle; // DWORD handle returned by DX8 runtime
cgProfileType m_ProfileType; // profile for this program
HRESULT SetVertexDefinition(cgVertexDefinition * streams);
cgProgramContainer(LPDIRECT3DDEVICE8 pDev, cgProgramIter *m_ProgramIter,
cgProfileType ProfileType);
~cgProgramContainer();
HRESULT LoadShaderConstants();
cg_string m_ProgramSourceFile; // text file name
cg_string m_ProgramObjectFile; // compiled shader object file (.vso, .pso)
// for declaration of vertex positions
cgiVertexAttributeList m_VertexAttributes[MAX_STREAMS];
cgProgramIter *m_ProgramIter;
LPDIRECT3DDEVICE8 m_pd3dDevice;
};
class cgProgramManager
{
private:
cg_vector < cgProgramContainer * > m_ProgramContainers; // m_Shaders[0] is always = 0
cg_vector < DWORD > m_ProgramIndices; // indirection to m_Shaders
// Programs hold an index to this array for
// their shaders. The array int at that index
// holds the index into the m_Shaders array.
public:
cgProgramManager(LPDIRECT3DDEVICE8 pDev);
~cgProgramManager();
HRESULT Free();
cgProgramContainer * CreateProgramContainer(LPDIRECT3DDEVICE8 pDev,
cgProgramIter * ProgramIter,
DWORD Usage,
cgProfileType ProfileType,
DWORD * outIndex );
DWORD GetShaderHandle( DWORD Index );
DWORD GetShaderHandle( cgProfileType ProfileType );
//
cgProgramContainer * GetProgramIterator(DWORD index);
private:
// for creating programs
LPDIRECT3DDEVICE8 m_pd3dDevice;
};
#endif // WIN32
#endif

View File

@@ -0,0 +1,366 @@
/*
*
* Copyright (c) 2002, 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<49>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.
*
*/
/*********************************************************************NVMH2****
File: cgTemplates.h
Copyright (C) 1999, 2000 NVIDIA Corporation
This file is provided without support, instruction, or implied warranty of any
kind. NVIDIA makes no guarantee of its fitness for a particular purpose and is
not liable under any circumstances for any damages or loss whatsoever arising
from the use or inability to use this file or items derived from it.
Comments:
cgTemplates - cg utility templates
******************************************************************************/
#pragma once
#ifndef CG_TEMPLATE_H
#define CG_TEMPLATE_H
#include <stdlib.h>
//////////////////////////////////////////
//
// templated cg_vector class
//
//////////////////////////////////////////
template <class T>
class cg_vector{
public:
typedef int size_type;
cg_vector();
cg_vector( cg_vector<T>& v );
~cg_vector();
void clear();
int size() const;
T& operator [] ( int i );
void push_back( const T& t );
private:
T* data;
int num;
int capacity;
const static int initSize;
};
//definitions of cg_vector methods
template <class T>
const int cg_vector<T>::initSize = 16;
template <class T>
cg_vector<T>::cg_vector(){
data = NULL;
clear();
}
template <class T>
cg_vector<T>::cg_vector( cg_vector<T>& v ){
data = NULL;
clear();
for( int i=0; i<v.size(); i++ ){
push_back( v[i] );
}
}
template <class T>
cg_vector<T>::~cg_vector(){
delete[] data;
}
template <class T>
void cg_vector<T>::clear(){
if( data ){
delete[] data;
}
data = (T*)new T[initSize];
num = 0;
capacity = initSize;
}
template <class T>
int cg_vector<T>::size() const{
return num;
}
template <class T>
void cg_vector<T>::push_back( const T& t ){
if( num >= capacity ){
T* temp = new T[ 2 * capacity ];
for( int i = 0; i < num; i++ ){
temp[i] = data[i];
}
delete[] data;
data = temp;
capacity *= 2;
}
data[num] = t;
num++;
}
template <class T>
T& cg_vector<T>::operator [] ( int i ){
if( i>=0 && i < num ){
return data[i];
}else{
return data[0];
}
}
//////////////////////////////////////////
//
// templated cg_list class
//
//////////////////////////////////////////
template <class T>
class cg_list{
public:
class Node{
public:
Node( const T& _data, Node* _next, Node* _prev ){
data = _data;
next = _next;
prev = _prev;
}
T data;
Node* next;
Node* prev;
};
class iterator{
public:
iterator( Node* _node ){
node = _node;
}
iterator(){
node = NULL;
}
bool operator == ( const iterator& it ) const{
return node == it.node;
}
bool operator != ( const iterator& it ) const{
return !( *this == it );
}
T& operator * (){
return node -> data;
}
void operator ++ (){
node = node -> next;
}
void operator ++ (int){
node = node -> next;
}
Node* node;
};
cg_list();
cg_list( const cg_list<T>& l );
~cg_list();
iterator begin();
iterator end();
void push_back( const T& t );
void clear();
void remove( const T& value );
private:
Node* head;
Node* tail;
void insert( const T& t, Node* node );
void remove( Node* node );
};
// definitions of cg_list methods
template <class T>
cg_list<T>::cg_list(){
head = tail = new Node( T(), NULL, NULL );
}
template <class T>
cg_list<T>::~cg_list(){
clear();
delete head;
}
template <class T>
cg_list<T>::cg_list( const cg_list<T>& l ){
head = tail = new Node( T(), NULL, NULL );
cg_list<T>::iterator it = l.begin();
while( it != l.end() ){
push_back( *it );
it++;
}
}
template <class T>
cg_list<T>::iterator cg_list<T>::begin(){
return head;
}
template <class T>
cg_list<T>::iterator cg_list<T>::end(){
return tail;
}
template <class T>
void cg_list<T>::push_back( const T& t ){
insert( t, tail );
}
template <class T>
void cg_list<T>::clear(){
while( head != tail ){
remove( head );
}
}
template <class T>
void cg_list<T>::remove( const T& value ){
Node* curr = head;
Node* temp;
while( curr != tail ){
temp = curr;
curr = curr -> next;
if( temp -> data == value ){
remove( temp );
}
}
}
template <class T>
void cg_list<T>::insert( const T& t, cg_list<T>::Node* node ){
Node* newNode = new Node( t, node, node -> prev );
if( node -> prev == NULL ){
head = newNode;
}else{
node -> prev -> next = newNode;
}
node -> prev = newNode;
}
template <class T>
void cg_list<T>::remove( cg_list<T>::Node* node ){
if( node == tail ){
return;
}
node -> next -> prev = node -> prev;
if( node -> prev == NULL ){
head = node -> next;
}else{
node -> prev -> next = node -> next;
}
delete node;
}
//////////////////////////////////////////
//
// cg_string class
//
//////////////////////////////////////////
class cg_string{
public:
typedef int size_type;
cg_string();
cg_string( const char* s);
cg_string( const cg_string& s );
~cg_string();
int size() const;
const char* c_str() const;
void resize( int n, char c = '\0' );
cg_string& erase( int pos = 0, int n = npos );
int find_last_of( const cg_string& s, int pos = npos ) const;
cg_string substr( int pos = 0, int len = npos ) const;
char& operator [] ( int i );
const char& operator [] ( int i ) const;
cg_string& operator = ( const cg_string& s );
cg_string& operator += ( const cg_string& s );
cg_string operator + ( const cg_string& s ) const;
const static int npos;
private:
char* data;
int num; //length of the string, not counting the trailing '\0'.
int capacity;
const static int initSize;
void set( const char* s, int n );
};
#endif

View File

@@ -0,0 +1,332 @@
/*
*
* Copyright (c) 2002, 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<49>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.
* 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(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(WPos,CG_WPOS,"WPOS",2373,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",29542,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(TessFactor,CG_TESSFACTOR,"TESSFACTOR",3255,0,CG_VARYING_PARAM)
#undef CG_BINDLOCATION_MACRO

View File

@@ -0,0 +1,184 @@
/*
*
* Copyright (c) 2002, 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<49>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, nrows, ncols)
*
* name : The name of the data type.
* compiler_name : The name of the data type within the compiler syntax.
* enum_name : The C enumerant.
* nrows : Number of rows for matrix types. Should be 0 other-wise.
* ncols : Number of columns for matrix types. Should be 0
* other-wise.
*
*/
CG_DATATYPE_MACRO(Half,half,CG_HALF,0,1)
CG_DATATYPE_MACRO(Half2,half2,CG_HALF2,0,2)
CG_DATATYPE_MACRO(Half3,half3,CG_HALF3,0,3)
CG_DATATYPE_MACRO(Half4,half4,CG_HALF4,0,4)
CG_DATATYPE_MACRO(Half1x1,half1x1,CG_HALF1x1,1,1)
CG_DATATYPE_MACRO(Half1x2,half1x2,CG_HALF1x2,1,2)
CG_DATATYPE_MACRO(Half1x3,half1x3,CG_HALF1x3,1,3)
CG_DATATYPE_MACRO(Half1x4,half1x4,CG_HALF1x4,1,4)
CG_DATATYPE_MACRO(Half2x1,half2x1,CG_HALF2x1,2,1)
CG_DATATYPE_MACRO(Half2x2,half2x2,CG_HALF2x2,2,2)
CG_DATATYPE_MACRO(Half2x3,half2x3,CG_HALF2x3,2,3)
CG_DATATYPE_MACRO(Half2x4,half2x4,CG_HALF2x4,2,4)
CG_DATATYPE_MACRO(Half3x1,half3x1,CG_HALF3x1,3,1)
CG_DATATYPE_MACRO(Half3x2,half3x2,CG_HALF3x2,3,2)
CG_DATATYPE_MACRO(Half3x3,half3x3,CG_HALF3x3,3,3)
CG_DATATYPE_MACRO(Half3x4,half3x4,CG_HALF3x4,3,4)
CG_DATATYPE_MACRO(Half4x1,half4x1,CG_HALF4x1,4,1)
CG_DATATYPE_MACRO(Half4x2,half4x2,CG_HALF4x2,4,2)
CG_DATATYPE_MACRO(Half4x3,half4x3,CG_HALF4x3,4,3)
CG_DATATYPE_MACRO(Half4x4,half4x4,CG_HALF4x4,4,4)
CG_DATATYPE_MACRO(Float,float,CG_FLOAT,0,1)
CG_DATATYPE_MACRO(Float2,float2,CG_FLOAT2,0,2)
CG_DATATYPE_MACRO(Float3,float3,CG_FLOAT3,0,3)
CG_DATATYPE_MACRO(Float4,float4,CG_FLOAT4,0,4)
CG_DATATYPE_MACRO(Float1x1,float1x1,CG_FLOAT1x1,1,1)
CG_DATATYPE_MACRO(Float1x2,float1x2,CG_FLOAT1x2,1,2)
CG_DATATYPE_MACRO(Float1x3,float1x3,CG_FLOAT1x3,1,3)
CG_DATATYPE_MACRO(Float1x4,float1x4,CG_FLOAT1x4,1,4)
CG_DATATYPE_MACRO(Float2x1,float2x1,CG_FLOAT2x1,2,1)
CG_DATATYPE_MACRO(Float2x2,float2x2,CG_FLOAT2x2,2,2)
CG_DATATYPE_MACRO(Float2x3,float2x3,CG_FLOAT2x3,2,3)
CG_DATATYPE_MACRO(Float2x4,float2x4,CG_FLOAT2x4,2,4)
CG_DATATYPE_MACRO(Float3x1,float3x1,CG_FLOAT3x1,3,1)
CG_DATATYPE_MACRO(Float3x2,float3x2,CG_FLOAT3x2,3,2)
CG_DATATYPE_MACRO(Float3x3,float3x3,CG_FLOAT3x3,3,3)
CG_DATATYPE_MACRO(Float3x4,float3x4,CG_FLOAT3x4,3,4)
CG_DATATYPE_MACRO(Float4x1,float4x1,CG_FLOAT4x1,4,1)
CG_DATATYPE_MACRO(Float4x2,float4x2,CG_FLOAT4x2,4,2)
CG_DATATYPE_MACRO(Float4x3,float4x3,CG_FLOAT4x3,4,3)
CG_DATATYPE_MACRO(Float4x4,float4x4,CG_FLOAT4x4,4,4)
CG_DATATYPE_MACRO(Sampler1D,sampler1D,CG_SAMPLER1D,0,0)
CG_DATATYPE_MACRO(Sampler2D,sampler2D,CG_SAMPLER2D,0,0)
CG_DATATYPE_MACRO(Sampler3D,sampler3D,CG_SAMPLER3D,0,0)
CG_DATATYPE_MACRO(SamplerRECT,samplerRECT,CG_SAMPLERRECT,0,0)
CG_DATATYPE_MACRO(SamplerCUBE,samplerCUBE,CG_SAMPLERCUBE,0,0)
CG_DATATYPE_MACRO(Fixed,fixed,CG_FIXED,0,1)
CG_DATATYPE_MACRO(Fixed2,fixed2,CG_FIXED2,0,2)
CG_DATATYPE_MACRO(Fixed3,fixed3,CG_FIXED3,0,3)
CG_DATATYPE_MACRO(Fixed4,fixed4,CG_FIXED4,0,4)
CG_DATATYPE_MACRO(Fixed1x1,fixed1x1,CG_FIXED1x1,1,1)
CG_DATATYPE_MACRO(Fixed1x2,fixed1x2,CG_FIXED1x2,1,2)
CG_DATATYPE_MACRO(Fixed1x3,fixed1x3,CG_FIXED1x3,1,3)
CG_DATATYPE_MACRO(Fixed1x4,fixed1x4,CG_FIXED1x4,1,4)
CG_DATATYPE_MACRO(Fixed2x1,fixed2x1,CG_FIXED2x1,2,1)
CG_DATATYPE_MACRO(Fixed2x2,fixed2x2,CG_FIXED2x2,2,2)
CG_DATATYPE_MACRO(Fixed2x3,fixed2x3,CG_FIXED2x3,2,3)
CG_DATATYPE_MACRO(Fixed2x4,fixed2x4,CG_FIXED2x4,2,4)
CG_DATATYPE_MACRO(Fixed3x1,fixed3x1,CG_FIXED3x1,3,1)
CG_DATATYPE_MACRO(Fixed3x2,fixed3x2,CG_FIXED3x2,3,2)
CG_DATATYPE_MACRO(Fixed3x3,fixed3x3,CG_FIXED3x3,3,3)
CG_DATATYPE_MACRO(Fixed3x4,fixed3x4,CG_FIXED3x4,3,4)
CG_DATATYPE_MACRO(Fixed4x1,fixed4x1,CG_FIXED4x1,4,1)
CG_DATATYPE_MACRO(Fixed4x2,fixed4x2,CG_FIXED4x2,4,2)
CG_DATATYPE_MACRO(Fixed4x3,fixed4x3,CG_FIXED4x3,4,3)
CG_DATATYPE_MACRO(Fixed4x4,fixed4x4,CG_FIXED4x4,4,4)
CG_DATATYPE_MACRO(Half1,half1,CG_HALF1,0,1)
CG_DATATYPE_MACRO(Float1,float1,CG_FLOAT1,0,1)
CG_DATATYPE_MACRO(Fixed1,fixed1,CG_FIXED1,0,1)
CG_DATATYPE_MACRO(Int,int,CG_INT,0,1)
CG_DATATYPE_MACRO(Int1,int1,CG_INT1,0,1)
CG_DATATYPE_MACRO(Int2,int2,CG_INT2,0,2)
CG_DATATYPE_MACRO(Int3,int3,CG_INT3,0,3)
CG_DATATYPE_MACRO(Int4,int4,CG_INT4,0,4)
CG_DATATYPE_MACRO(Int1x1,int1x1,CG_INT1x1,1,1)
CG_DATATYPE_MACRO(Int1x2,int1x2,CG_INT1x2,1,2)
CG_DATATYPE_MACRO(Int1x3,int1x3,CG_INT1x3,1,3)
CG_DATATYPE_MACRO(Int1x4,int1x4,CG_INT1x4,1,4)
CG_DATATYPE_MACRO(Int2x1,int2x1,CG_INT2x1,2,1)
CG_DATATYPE_MACRO(Int2x2,int2x2,CG_INT2x2,2,2)
CG_DATATYPE_MACRO(Int2x3,int2x3,CG_INT2x3,2,3)
CG_DATATYPE_MACRO(Int2x4,int2x4,CG_INT2x4,2,4)
CG_DATATYPE_MACRO(Int3x1,int3x1,CG_INT3x1,3,1)
CG_DATATYPE_MACRO(Int3x2,int3x2,CG_INT3x2,3,2)
CG_DATATYPE_MACRO(Int3x3,int3x3,CG_INT3x3,3,3)
CG_DATATYPE_MACRO(Int3x4,int3x4,CG_INT3x4,3,4)
CG_DATATYPE_MACRO(Int4x1,int4x1,CG_INT4x1,4,1)
CG_DATATYPE_MACRO(Int4x2,int4x2,CG_INT4x2,4,2)
CG_DATATYPE_MACRO(Int4x3,int4x3,CG_INT4x3,4,3)
CG_DATATYPE_MACRO(Int4x4,int4x4,CG_INT4x4,4,4)
CG_DATATYPE_MACRO(Bool,bool,CG_BOOL,0,1)
CG_DATATYPE_MACRO(Bool1,bool1,CG_BOOL1,0,1)
CG_DATATYPE_MACRO(Bool2,bool2,CG_BOOL2,0,2)
CG_DATATYPE_MACRO(Bool3,bool3,CG_BOOL3,0,3)
CG_DATATYPE_MACRO(Bool4,bool4,CG_BOOL4,0,4)
CG_DATATYPE_MACRO(Bool1x1,bool1x1,CG_BOOL1x1,1,1)
CG_DATATYPE_MACRO(Bool1x2,bool1x2,CG_BOOL1x2,1,2)
CG_DATATYPE_MACRO(Bool1x3,bool1x3,CG_BOOL1x3,1,3)
CG_DATATYPE_MACRO(Bool1x4,bool1x4,CG_BOOL1x4,1,4)
CG_DATATYPE_MACRO(Bool2x1,bool2x1,CG_BOOL2x1,2,1)
CG_DATATYPE_MACRO(Bool2x2,bool2x2,CG_BOOL2x2,2,2)
CG_DATATYPE_MACRO(Bool2x3,bool2x3,CG_BOOL2x3,2,3)
CG_DATATYPE_MACRO(Bool2x4,bool2x4,CG_BOOL2x4,2,4)
CG_DATATYPE_MACRO(Bool3x1,bool3x1,CG_BOOL3x1,3,1)
CG_DATATYPE_MACRO(Bool3x2,bool3x2,CG_BOOL3x2,3,2)
CG_DATATYPE_MACRO(Bool3x3,bool3x3,CG_BOOL3x3,3,3)
CG_DATATYPE_MACRO(Bool3x4,bool3x4,CG_BOOL3x4,3,4)
CG_DATATYPE_MACRO(Bool4x1,bool4x1,CG_BOOL4x1,4,1)
CG_DATATYPE_MACRO(Bool4x2,bool4x2,CG_BOOL4x2,4,2)
CG_DATATYPE_MACRO(Bool4x3,bool4x3,CG_BOOL4x3,4,3)
CG_DATATYPE_MACRO(Bool4x4,bool4x4,CG_BOOL4x4,4,4)
#undef CG_DATATYPE_MACRO

View File

@@ -0,0 +1,273 @@
/*
*
* Copyright (c) 2002, 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<49>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_deprecated_api_h
#define _cg_deprecated_api_h
// Set up for either Win32 import/export/lib.
#ifndef CGDLL_API
#ifdef WIN32
#ifdef CGDLL_EXPORTS
#define CGDLL_API __declspec(dllexport)
#elif defined (CG_LIB)
#define CGDLL_API
#else
#define CGDLL_API __declspec(dllimport)
#endif
#else
#define CGDLL_API
#endif
#endif
/*************************************************************************/
/*** CG Run-Time Library API ***/
/*************************************************************************/
/*************************************************************************/
/*** Data types and structures ***/
/*************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
typedef enum
{
# define CG_ERROR_MACRO(code, enum_name, new_enum_name, message) \
cg##enum_name = code,
# include <Cg/cg_errors.h>
} cgError;
typedef struct
{
/* Opaque structure */
void *Data;
} cgContext;
typedef struct
{
/* Opaque structure */
void *Data;
} cgProgramIter;
typedef struct
{
/* Opaque structure */
void *Data;
} cgBindIter;
typedef enum
{
cgUnknownValueType,
cgTypeStartEnum = 1024,
# define CG_DATATYPE_MACRO(name, compiler_name, enum_name, ncols, nrows) \
cg##name##ValueType,
#include <Cg/cg_datatypes.h>
} cgValueType;
typedef enum
{
cgConstParam,
cgUniformParam,
cgConnectorMemberParam,
cgVaryingParam = cgConnectorMemberParam,
cgTexObjParam,
cgAnyParam,
cgUndefinedParam,
} cgParamType;
typedef enum
{
# define CG_BINDLOCATION_MACRO(name,enum_name,compiler_name,\
enum_int,addressable,param_type) \
cgBind##name = enum_int,
#include <Cg/cg_bindlocations.h>
cgBindUndefined
} cgBindLocation;
typedef enum
{
cgProfileStart = 6144,
CG_PROFILE_UNKNOWN,
cgUnknownProfile = CG_PROFILE_UNKNOWN,
# define CG_PROFILE_MACRO(name, compiler_id, compiler_id_caps, compiler_opt,int_id,vertex_profile) \
cg##name##Profile = int_id,
# include "Cg/cg_profiles.h"
cgNProfiles,
} cgProfileType;
/*************************************************************************/
/*** Function Prototypes ***/
/*************************************************************************/
/*******************************************************************/
/*** cg Misc Functions ****/
/*******************************************************************/
CGDLL_API void cgCleanup(void);
/* This will probably be deprecated in future releases */
CGDLL_API void cgSetCompilerExe(const char *exe);
CGDLL_API const char *cgErrorMsg(cgError error);
/*******************************************************************/
/*** cgContext Functions ****/
/*******************************************************************/
CGDLL_API cgContext *cgCreateContext(void);
CGDLL_API void cgFreeContext(cgContext *context);
CGDLL_API cgError cgAddProgram(cgContext *context,
const char *text,
cgProfileType profile,
const char *entry);
CGDLL_API cgError cgAddProgramFromFile(cgContext *context,
const char *filename,
cgProfileType profile,
const char *entry);
CGDLL_API cgError cgAddProgramArgs(cgContext *context,
const char *text,
cgProfileType profile,
const char *entry,
int nargs,
const char **args);
CGDLL_API cgError cgAddProgramFromFileArgs(cgContext *context,
const char *filename,
cgProfileType profile,
const char *entry,
int nargs,
const char **args);
CGDLL_API cgError cgAddPrecompiledProgram(cgContext *context,
const char *text,
cgProfileType profile,
const char *entry);
CGDLL_API cgError cgAddPrecompiledProgramFromFile(cgContext *context,
const char *filename,
cgProfileType profile,
const char *entry);
CGDLL_API const char *cgGetLastListing(cgContext *context);
/*******************************************************************/
/*** cgProgram Functions ***/
/*******************************************************************/
CGDLL_API cgProgramIter *cgGetNextProgram(cgContext *context,
cgProgramIter *iter);
CGDLL_API cgProgramIter *cgProgramByName(cgContext *context,
const char *name);
CGDLL_API cgProgramIter *cgGetLastProgram(cgContext *context);
CGDLL_API void cgFreeProgramIter(cgProgramIter *program);
CGDLL_API const char *cgGetProgramName(const cgProgramIter *program);
CGDLL_API cgProfileType cgGetProgramProfile(const cgProgramIter *program);
CGDLL_API const char *cgGetProgramObjectCode(const cgProgramIter *program);
/*******************************************************************/
/*** Parameter and Binding Functions ****/
/*******************************************************************/
CGDLL_API cgBindIter *cgGetNextBind(cgProgramIter *program,
cgBindIter *iter);
CGDLL_API cgBindIter *cgGetBindByName(cgProgramIter *program,
const char *parameter_name);
CGDLL_API cgBindIter *cgDuplicateBindIter(cgBindIter *bind);
CGDLL_API void cgFreeBindIter(cgBindIter *iter);
CGDLL_API const char *cgGetBindParamName(const cgBindIter *bind);
CGDLL_API cgParamType cgGetBindParamType(const cgBindIter *bind);
CGDLL_API cgBindLocation cgGetBindLocation(const cgBindIter *bind);
CGDLL_API unsigned long cgGetBindAddress(const cgBindIter *bind);
CGDLL_API cgValueType cgGetBindValueType(const cgBindIter *bind,
int *array_size);
#ifdef __cplusplus
}
#endif
#endif

View File

@@ -0,0 +1,95 @@
/*
*
* Copyright (c) 2002, 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<49>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(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)
#undef CG_ENUM_MACRO

View File

@@ -0,0 +1,235 @@
/*
*
* Copyright (c) 2002, 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<49>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 is 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.")
#undef CG_ERROR_MACRO

View File

@@ -0,0 +1,90 @@
/*
*
* Copyright (c) 2002, 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<49>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_opt)
*
* 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
#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(DX9Vertex30,vs_3_0,VS_3_0,"vs_3_0",6156,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(DX9Pixel30,ps_3_0,PS_3_0,"ps_3_0",6164,0)
#undef CG_PROFILE_MACRO
#undef CG_IN_PROFILES_INCLUDE