deargui-vpl/ref/virtools/Samples/Behaviors/Shader/Sources/CgFunctions.cpp

406 lines
30 KiB
C++

#define CG_EXPLICIT
#define CGGL_EXPLICIT
#include <Cg/cg.h>
#include <Cg/cgGL.h>
CFBundleRef CgFramework = NULL;
CGcontext (*cgCreateContext)(void) = NULL;
void (*cgDestroyContext)(CGcontext ctx) = NULL;
//States
void (*cgGLRegisterStates)(CGcontext) = NULL;
// Errors
CGerror (*cgGetError)(void) = NULL;
const char * (*cgGetErrorString)(CGerror error) = NULL;
const char * (*cgGetLastListing)(CGcontext ctx) = NULL;
void (*cgSetErrorCallback)(CGerrorCallbackFunc func) = NULL;
// Profiles
CGprofile (*cgGLGetLatestProfile)(CGGLenum profile_type) = NULL;
// Effects
CGeffect (*cgCreateEffect)(CGcontext, const char *code, const char **args) = NULL;
void (*cgDestroyEffect)(CGeffect) = NULL;
//Passe
CGpass (*cgGetFirstPass)(CGtechnique) = NULL;
CGpass (*cgGetNextPass)(CGpass) = NULL;
void (*cgSetPassState)(CGpass) = NULL;
void (*cgResetPassState)(CGpass) = NULL;
const char * (*cgGetPassName)(CGpass) = NULL;
//Technique
CGtechnique (*cgGetFirstTechnique)(CGeffect) = NULL;
CGtechnique (*cgGetNamedTechnique)(CGeffect, const char *name) = NULL;
const char * (*cgGetTechniqueName)(CGtechnique) = NULL;
const char * (*cgGetParameterName)(CGparameter param) = NULL;
CGbool (*cgIsTechniqueValidated)(CGtechnique) = NULL;
CGannotation (*cgGetFirstTechniqueAnnotation)(CGtechnique) = NULL;
CGtechnique (*cgGetNextTechnique)(CGtechnique) = NULL;
CGbool (*cgValidateTechnique)(CGtechnique) = NULL;
//Parameters
//set
void (*cgSetMatrixParameterfr)(CGparameter param, const float *matrix) = NULL;
void (*cgSetParameter1i)(CGparameter param, int x) = NULL;
void (*cgGLSetParameter3f)(CGparameter param, float x, float y, float z) = NULL;
void (*cgGLSetParameter4f)(CGparameter param, float x, float y, float z, float w) = NULL;
void (*cgGLSetParameter1fv)(CGparameter param, const float *v) = NULL;
void (*cgSetParameter3fv)(CGparameter param, const float *v) = NULL;
void (*cgSetParameter4fv)(CGparameter param, const float *v) = NULL;
void (*cgGLSetParameterArray1f)(CGparameter param,long offset,long nelements, const float *v) = NULL;
void (*cgGLSetParameterArray2f)(CGparameter param,long offset,long nelements, const float *v) = NULL;
void (*cgGLSetParameterArray3f)(CGparameter param,long offset,long nelements, const float *v) = NULL;
void (*cgGLSetParameterArray4f)(CGparameter param,long offset,long nelements, const float *v) = NULL;
void (*cgGLSetMatrixParameterArrayfr)(CGparameter param,long offset,long nelements, const float *matrices) = NULL;
void (*cgGLSetTextureParameter)(CGparameter param, GLuint texobj) = NULL;
//get
const char * (*cgGetStringParameterValue)(CGparameter param) = NULL;
CGparameterclass(*cgGetParameterClass)(CGparameter param) = NULL;
void (*cgSetStringParameterValue)(CGparameter param, const char *str) = NULL;
void (*cgGLGetParameter2f)(CGparameter param, float *v) = NULL;
void (*cgGLGetParameter3f)(CGparameter param, float *v) = NULL;
void (*cgGLGetParameter4f)(CGparameter param, float *v) = NULL;
void (*cgGLSetParameter2fv) ( CGparameter param, const float * v);
void (*cgGLSetParameter3fv)(CGparameter param, const float *v) = NULL;
void (*cgGLSetParameter4fv)(CGparameter param, const float *v) = NULL;
void (*cgGetMatrixParameterfr)(CGparameter param, float *matrix) = NULL;
CGparameter (*cgGetArrayParameter)(CGparameter aparam, int index) = NULL;
int (*cgGetParameterValueic)(CGparameter param, int n, int *vals) = NULL;
int (*cgGetArrayTotalSize)(CGparameter param) = NULL;
CGtype (*cgGetParameterType)(CGparameter param) = NULL;
CGtype (*cgGetParameterBaseType)(CGparameter param) = NULL;
int (*cgGetParameterRows)(CGparameter param) = NULL;
int (*cgGetParameterColumns)(CGparameter param) = NULL;
// Annotation
const float * (*cgGetFloatAnnotationValues)(CGannotation, int *nvalues) = NULL;
const int * (*cgGetIntAnnotationValues)(CGannotation, int *nvalues) = NULL;
const char * (*cgGetStringAnnotationValue)(CGannotation) = NULL;
const CGbool * (*cgGetBoolAnnotationValues)(CGannotation, int *nvalues) = NULL;
const int * (*cgGetBooleanAnnotationValues)(CGannotation, int *nvalues) = NULL;
CGparameter (*cgGetTextureStateAssignmentValue)(CGstateassignment) = NULL;
CGstateassignment(*cgGetFirstSamplerStateAssignment)(CGparameter) = NULL;
CGstateassignment(*cgGetNextStateAssignment)(CGstateassignment) = NULL;
void (*cgGLSetupSampler)(CGparameter param, GLuint texobj) = NULL;
CGparameter (*cgGetFirstEffectParameter)(CGeffect) = NULL;
CGparameter (*cgGetNextParameter)(CGparameter current) = NULL;
const char * (*cgGetParameterSemantic)(CGparameter param) = NULL;
const char * (*cgGetAnnotationName)(CGannotation) = NULL;
CGtype (*cgGetAnnotationType)(CGannotation) = NULL;
CGannotation (*cgGetNextAnnotation)(CGannotation) = NULL;
//Program
void (*cgEvaluateProgram)(CGprogram, float *, int ncomps, int nx, int ny, int nz) = NULL;
void (*cgDestroyProgram)(CGprogram program) = NULL;
CGprogram (*cgCreateProgramFromEffect)(CGeffect effect, CGprofile profile, const char *entry,const char **args) = NULL;
CGannotation (*cgGetFirstParameterAnnotation)(CGparameter) = NULL;
//ShaderDescriptorCG
void (*cgGLSetMatrixParameterfr)(CGparameter param,const float *matrix) = NULL;
void (*cgGLSetStateMatrixParameter)(CGparameter param, CGGLenum matrix,CGGLenum transform) = NULL;
void (*cgGLSetParameter1f)(CGparameter param, float x) = NULL;
void (*cgGLGetParameter1f)(CGparameter param, float *v) = NULL;
CGprogram (*cgGetFirstProgram)(CGcontext context);
CGprogram (*cgGetNextProgram)(CGprogram program);
CGbool (*cgIsProgramCompiled)(CGprogram program);
const char* (*cgGetProgramString)(CGprogram program,CGenum cgenum);
int (*cgGetArrayDimension)(CGparameter param);
CGtype (*cgGetArrayType)(CGparameter param);
CGbool (*cgGetTypeSizes)(CGtype type, int *nrows, int *ncols);
int (*cgGetArraySize)(CGparameter param, int dimension);
CGstate (*cgGetNamedState)(CGcontext, const char *name);
CGcontext (*cgGetEffectContext)(CGeffect);
const int * (*cgGetIntStateAssignmentValues)(CGstateassignment, int *nVals);
CGpass (*cgGetStateAssignmentPass)(CGstateassignment);
CGtechnique (*cgGetPassTechnique)(CGpass);
CGeffect (*cgGetTechniqueEffect)(CGtechnique);
void (*cgSetStateCallbacks)(CGstate, CGstatecallback set, CGstatecallback reset,CGstatecallback validate);
// Misc
void (*cgCompileProgram)(CGprogram program);
CGstate (*cgCreateState)(CGcontext, const char *name, CGtype);
CGstateassignment (*cgCreateStateAssignment)(CGpass, CGstate);
CGstateassignment (*cgCreateStateAssignmentIndex)(CGpass, CGstate, int index);
const CGbool* (*cgGetBoolStateAssignmentValues)(CGstateassignment, int *nVals);
CGparameter (*cgGetDependentStateAssignmentParameter)(CGstateassignment, int index);
CGstateassignment (*cgGetFirstStateAssignment)(CGpass);
CGstate (*cgGetFirstState)(CGcontext);
const float* (*cgGetFloatStateAssignmentValues)(CGstateassignment, int *nVals);
CGparameter (*cgGetNamedParameter)(CGprogram prog, const char *name);
CGannotation (*cgGetNamedParameterAnnotation)(CGparameter, const char *);
CGstateassignment (*cgGetNamedStateAssignment)(CGpass, const char *name);
CGstate (*cgGetNextState)(CGstate);
int (*cgGetNumDependentStateAssignmentParameters)(CGstateassignment);
CGresource (*cgGetParameterResource)(CGparameter param);
unsigned long (*cgGetParameterResourceIndex)(CGparameter param);
int (*cgGetParameterValuefr)(CGparameter param, int n, float *vals);
const double* (*cgGetParameterValues)(CGparameter param, CGenum value_type, int * nvalues);
CGdomain (*cgGetProfileDomain)( CGprofile profile );
CGprofile (*cgGetProgramProfile)(CGprogram prog);
CGprogram (*cgGetProgramStateAssignmentValue)(CGstateassignment);
const char* (*cgGetResourceString)(CGresource resource);
CGstate (*cgGetSamplerStateAssignmentState)(CGstateassignment);
CGparameter (*cgGetSamplerStateAssignmentValue)(CGstateassignment);
int (*cgGetStateAssignmentIndex)(CGstateassignment);
CGstate (*cgGetStateAssignmentState)(CGstateassignment);
const char* (*cgGetStateEnumerantName)(CGstate, int value);
const char* (*cgGetStateName)(CGstate);
CGtype (*cgGetStateType)(CGstate);
CGtype (*cgGetTypeBase)(CGtype type);
CGparameterclass (*cgGetTypeClass)(CGtype type);
const char* (*cgGetTypeString)(CGtype type);
void (*cgGLBindProgram)(CGprogram program);
void (*cgGLDisableProfile)(CGprofile profile);
void (*cgGLEnableClientState)(CGparameter param);
void (*cgGLEnableProfile)(CGprofile profile);
GLuint (*cgGLGetProgramID)(CGprogram program);
CGbool (*cgGLIsProgramLoaded)(CGprogram program);
void (*cgGLLoadProgram)(CGprogram program);
void (*cgGLSetManageTextureParameters)(CGcontext ctx, CGbool flag);
void (*cgGLSetMatrixParameterdr)(CGparameter param, const double *matrix);
void (*cgGLSetMatrixParameterdc)(CGparameter param, const double *matrix);
void (*cgGLSetMatrixParameterfc)(CGparameter param, const float *matrix);
void (*cgGLSetMatrixParameterArrayfc)(CGparameter param, long offset, long nelements, const float *matrices);
void (*cgGLSetMatrixParameterArraydc)(CGparameter param, long offset, long nelements, const double *matrices);
void (*cgGLSetMatrixParameterArraydr)(CGparameter param, long offset, long nelements, const double *matrices);
void (*cgGLSetParameterPointer)(CGparameter param, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
void (*cgGLUnbindProgram)(CGprofile profile);
void (*cgSetParameterValuefr)(CGparameter param, int n, const float *vals);
void (*cgSetParameterValueic)(CGparameter param, int n, const int *vals);
void (*cgSetPassProgramParameters)(CGprogram);
void (*cgSetSamplerState)(CGparameter);
CGbool (*cgSetSamplerStateAssignment)(CGstateassignment, CGparameter);
inline void* _GetRoutine(CFBundleRef Framework, char* iSymbol)
{
if (Framework == NULL) return NULL;
CFStringRef str = CFStringCreateWithCString(kCFAllocatorDefault, iSymbol, kCFStringEncodingMacRoman);
void* routine = CFBundleGetFunctionPointerForName(Framework, str);
CFRelease(str);
return routine;
}
bool LoadCgFrameworkBundle()
{
bool Result=true;
if (cgCreateContext!=NULL)
return true;
CFURLRef bundleURL = CFURLCreateWithFileSystemPath(kCFAllocatorSystemDefault, CFSTR("/Library/Internet\ Plug-Ins/NPVirtools.plugin/Contents/Frameworks/Cg.framework"), kCFURLPOSIXPathStyle,false);
CgFramework = CFBundleCreate(kCFAllocatorSystemDefault, bundleURL);
if (CgFramework == nil)
return false;
if (Result)
if ( ! CFBundleLoadExecutable( CgFramework ) )
return false;
if (bundleURL != nil)
CFRelease(bundleURL);
cgCreateContext = (CGcontext(*)(void)) _GetRoutine(CgFramework,"cgCreateContext");
cgSetErrorCallback = (void(*)(CGerrorCallbackFunc func)) _GetRoutine(CgFramework,"cgSetErrorCallback");
cgDestroyContext = (void(*)(CGcontext ctx)) _GetRoutine(CgFramework,"cgDestroyContext");
//States
cgGLRegisterStates = (void(*)(CGcontext)) _GetRoutine(CgFramework,"cgGLRegisterStates");
// Errors
cgGetError = (CGerror(*)(void)) _GetRoutine(CgFramework,"cgGetError");
cgGetErrorString = (const char * (*)(CGerror error)) _GetRoutine(CgFramework,"cgGetErrorString");
cgGetLastListing = (const char * (*)(CGcontext ctx)) _GetRoutine(CgFramework,"cgGetLastListing");
cgSetErrorCallback = (void(*)(CGerrorCallbackFunc func)) _GetRoutine(CgFramework,"cgSetErrorCallback");
// Profiles
cgGLGetLatestProfile = (CGprofile(*)(CGGLenum profile_type))_GetRoutine(CgFramework,"cgGLGetLatestProfile");
// Effects
cgCreateEffect = (CGeffect(*)(CGcontext, const char *code, const char **args))_GetRoutine(CgFramework,"cgCreateEffect");
cgDestroyEffect = (void(*)(CGeffect)) _GetRoutine(CgFramework,"cgDestroyEffect");
//Passe
cgGetFirstPass = (CGpass(*)(CGtechnique)) _GetRoutine(CgFramework,"cgGetFirstPass");
cgGetNextPass = (CGpass(*)(CGpass)) _GetRoutine(CgFramework,"cgGetNextPass");
cgSetPassState = (void(*)(CGpass)) _GetRoutine(CgFramework,"cgSetPassState");
cgResetPassState = (void(*)(CGpass)) _GetRoutine(CgFramework,"cgResetPassState");
cgGetPassName = (const char *(*)(CGpass)) _GetRoutine(CgFramework,"cgGetPassName");
//Technique
cgGetFirstTechnique = ( CGtechnique (*)(CGeffect)) _GetRoutine(CgFramework,"cgGetFirstTechnique");
cgGetNamedTechnique = ( CGtechnique (*)(CGeffect, const char *name)) _GetRoutine(CgFramework,"cgGetNamedTechnique");
cgGetTechniqueName = ( const char *(*)(CGtechnique)) _GetRoutine(CgFramework,"cgGetTechniqueName");
cgGetParameterName = ( const char *(*)(CGparameter param)) _GetRoutine(CgFramework,"cgGetParameterName");
cgIsTechniqueValidated = ( CGbool(*)(CGtechnique)) _GetRoutine(CgFramework,"cgIsTechniqueValidated");
cgGetFirstTechniqueAnnotation = ( CGannotation(*)(CGtechnique)) _GetRoutine(CgFramework,"cgGetFirstTechniqueAnnotation");
cgGetNextTechnique = ( CGtechnique (*)(CGtechnique)) _GetRoutine(CgFramework,"cgGetNextTechnique");
cgValidateTechnique = ( CGbool(*)(CGtechnique)) _GetRoutine(CgFramework,"cgValidateTechnique");
//Parameters
//set
cgSetMatrixParameterfr = (void(*)(CGparameter param, const float *matrix)) _GetRoutine(CgFramework,"cgSetMatrixParameterfr");
cgSetParameter1i = (void(*)(CGparameter param, int x)) _GetRoutine(CgFramework,"cgSetParameter1i");
cgGLSetParameter3f = (void(*)(CGparameter param, float x, float y, float z)) _GetRoutine(CgFramework,"cgGLSetParameter3f");
cgGLSetParameter1fv = (void(*)(CGparameter param, const float *v)) _GetRoutine(CgFramework,"cgGLSetParameter1fv");
cgSetParameter3fv = (void(*)(CGparameter param, const float *v)) _GetRoutine(CgFramework,"cgSetParameter3fv");
cgSetParameter4fv = (void(*)(CGparameter param, const float *v)) _GetRoutine(CgFramework,"cgSetParameter4fv");
cgGLSetParameterArray1f= ( void(*)(CGparameter param,long offset,long nelements, const float *v))_GetRoutine(CgFramework,"cgGLSetParameterArray1f");
cgGLSetParameterArray2f= ( void(*)(CGparameter param,long offset,long nelements, const float *v))_GetRoutine(CgFramework,"cgGLSetParameterArray2f");
cgGLSetParameterArray3f= ( void(*)(CGparameter param,long offset,long nelements, const float *v))_GetRoutine(CgFramework,"cgGLSetParameterArray3f");
cgGLSetParameterArray4f= ( void(*)(CGparameter param,long offset,long nelements, const float *v))_GetRoutine(CgFramework,"cgGLSetParameterArray4f");
cgGLSetMatrixParameterArrayfr= ( void(*)(CGparameter param,long offset,long nelements, const float *matrices))_GetRoutine(CgFramework,"cgGLSetMatrixParameterArrayfr");
cgGLSetTextureParameter = ( void(*)(CGparameter param, GLuint texobj)) _GetRoutine(CgFramework,"cgGLSetTextureParameter");
cgSetStateCallbacks = (void(*)(CGstate, CGstatecallback set, CGstatecallback reset,CGstatecallback validate)) _GetRoutine(CgFramework,"cgSetStateCallbacks");;
//get
cgGetStringParameterValue= ( const char *(*)(CGparameter param)) _GetRoutine(CgFramework,"cgGetStringParameterValue");
cgGetParameterClass = ( CGparameterclass(*)(CGparameter param)) _GetRoutine(CgFramework,"cgGetParameterClass");
cgGetArrayDimension = (int (*)(CGparameter param)) _GetRoutine(CgFramework,"cgGetArrayDimension");
cgGetArrayType = (CGtype (*)(CGparameter param)) _GetRoutine(CgFramework,"cgGetArrayType");
cgGetTypeSizes = (CGbool (*)(CGtype type, int *nrows, int *ncols)) _GetRoutine(CgFramework,"cgGetTypeSizes");
cgGetArraySize = (int (*)(CGparameter param, int dimension)) _GetRoutine(CgFramework,"cgGetArraySize");
cgGetNamedState = (CGstate (*)(CGcontext, const char *name)) _GetRoutine(CgFramework,"cgGetNamedState");
cgGetEffectContext = (CGcontext (*)(CGeffect)) _GetRoutine(CgFramework,"cgGetEffectContext");
cgGetIntStateAssignmentValues = (const int * (*)(CGstateassignment, int *nVals)) _GetRoutine(CgFramework,"cgGetIntStateAssignmentValues");
cgGetStateAssignmentPass = (CGpass (*)(CGstateassignment)) _GetRoutine(CgFramework,"cgGetStateAssignmentPass");
cgGetPassTechnique = ( CGtechnique (*)(CGpass)) _GetRoutine(CgFramework,"cgGetPassTechnique");
cgGetTechniqueEffect=( CGeffect (*)(CGtechnique)) _GetRoutine(CgFramework,"cgGetTechniqueEffect");;
cgSetStringParameterValue= (void(*)(CGparameter param, const char *str)) _GetRoutine(CgFramework,"cgSetStringParameterValue");
cgGLGetParameter2f = (void(*)(CGparameter param, float *v)) _GetRoutine(CgFramework,"cgGLGetParameter2f");
cgGLGetParameter3f = (void(*)(CGparameter param, float *v)) _GetRoutine(CgFramework,"cgGLGetParameter3f");
cgGLGetParameter4f = (void(*)(CGparameter param, float *v)) _GetRoutine(CgFramework,"cgGLGetParameter4f");
cgGLSetParameter2fv = (void(*)( CGparameter param, const float * v)) _GetRoutine(CgFramework,"cgGLSetParameter2fv");
cgGLSetParameter3fv = (void(*)(CGparameter param, const float *v)) _GetRoutine(CgFramework,"cgGLSetParameter3fv");
cgGLSetParameter4fv = (void(*)(CGparameter param, const float *v)) _GetRoutine(CgFramework,"cgGLSetParameter4fv");
cgGetMatrixParameterfr = (void(*)(CGparameter param, float *matrix)) _GetRoutine(CgFramework,"cgGetMatrixParameterfr");
cgGetArrayParameter = (CGparameter (*)(CGparameter aparam, int index)) _GetRoutine(CgFramework,"cgGetArrayParameter");
cgGetParameterValueic = (int(*)(CGparameter param, int n, int *vals)) _GetRoutine(CgFramework,"cgGetParameterValueic");
cgGetArrayTotalSize = (int(*)(CGparameter param)) _GetRoutine(CgFramework,"cgGetArrayTotalSize");
cgGetParameterType = (CGtype(*)(CGparameter param)) _GetRoutine(CgFramework,"cgGetParameterType");
cgGetParameterBaseType = (CGtype(*)(CGparameter param)) _GetRoutine(CgFramework,"cgGetParameterBaseType");
cgGetParameterRows = (int(*)(CGparameter param)) _GetRoutine(CgFramework,"cgGetParameterRows");
cgGetParameterColumns = (int(*)(CGparameter param)) _GetRoutine(CgFramework,"cgGetParameterColumns");
// Annotation
cgGetFloatAnnotationValues = ( const float *(*)(CGannotation, int *nvalues)) _GetRoutine(CgFramework,"cgGetFloatAnnotationValues");
cgGetIntAnnotationValues = ( const int *(*)(CGannotation, int *nvalues)) _GetRoutine(CgFramework,"cgGetIntAnnotationValues");
cgGetStringAnnotationValue = ( const char * (*)(CGannotation)) _GetRoutine(CgFramework,"cgGetStringAnnotationValue");
cgGetBoolAnnotationValues = ( const CGbool *(*)(CGannotation, int *nvalues)) _GetRoutine(CgFramework,"cgGetBoolAnnotationValues");
cgGetBooleanAnnotationValues = ( const int *(*)(CGannotation, int *nvalues)) _GetRoutine(CgFramework,"cgGetBooleanAnnotationValues");
cgGetTextureStateAssignmentValue= (CGparameter(*)(CGstateassignment)) _GetRoutine(CgFramework,"cgGetTextureStateAssignmentValue");
cgGetFirstSamplerStateAssignment= (CGstateassignment(*)(CGparameter)) _GetRoutine(CgFramework,"cgGetFirstSamplerStateAssignment");
cgGLSetupSampler = (void(*)(CGparameter param, GLuint texobj)) _GetRoutine(CgFramework,"cgGLSetupSampler");
cgGetFirstEffectParameter = ( CGparameter(*)(CGeffect)) _GetRoutine(CgFramework,"cgGetFirstEffectParameter");
cgGetNextParameter = ( CGparameter(*)(CGparameter current)) _GetRoutine(CgFramework,"cgGetNextParameter");
cgGetParameterSemantic = ( const char *(*)(CGparameter param)) _GetRoutine(CgFramework,"cgGetParameterSemantic");
cgGetAnnotationName = ( const char *(*)(CGannotation)) _GetRoutine(CgFramework,"cgGetAnnotationName");
cgGetAnnotationType = ( CGtype(*)(CGannotation)) _GetRoutine(CgFramework,"cgGetAnnotationType");
cgGetNextAnnotation = ( CGannotation(*)(CGannotation)) _GetRoutine(CgFramework,"cgGetNextAnnotation");
//Program
cgEvaluateProgram = ( void(*)(CGprogram, float *, int ncomps, int nx, int ny, int nz)) _GetRoutine(CgFramework,"cgEvaluateProgram");
cgDestroyProgram = ( void(*)(CGprogram program)) _GetRoutine(CgFramework,"cgDestroyProgram");
cgCreateProgramFromEffect= ( CGprogram (*)(CGeffect effect, CGprofile profile, const char *entry,const char **args)) _GetRoutine(CgFramework,"cgCreateProgramFromEffect");
cgGetFirstParameterAnnotation= ( CGannotation (*)(CGparameter)) _GetRoutine(CgFramework,"cgGetFirstParameterAnnotation");
cgGetFirstProgram = ( CGprogram (*)(CGcontext context)) _GetRoutine(CgFramework,"cgGetFirstProgram");
cgGetNextProgram = ( CGprogram (*)(CGprogram program)) _GetRoutine(CgFramework,"cgGetNextProgram");
cgIsProgramCompiled = ( CGbool (*)(CGprogram program)) _GetRoutine(CgFramework,"cgIsProgramCompiled");
cgGetProgramString = (const char * (*)(CGprogram program,CGenum cgenum)) _GetRoutine(CgFramework,"cgGetProgramString");
//ShaderDescriptorCG
cgGLSetMatrixParameterfr = ( void(*)(CGparameter param,const float *matrix)) _GetRoutine(CgFramework,"cgGLSetMatrixParameterfr");
cgGLSetStateMatrixParameter = ( void(*)(CGparameter param, CGGLenum matrix,CGGLenum transform)) _GetRoutine(CgFramework,"cgGLSetStateMatrixParameter");
cgGLSetParameter1f = ( void(*)(CGparameter param, float x)) _GetRoutine(CgFramework,"cgGLSetParameter1f");
cgGLGetParameter1f = ( void(*)(CGparameter param, float *v)) _GetRoutine(CgFramework,"cgGLGetParameter1f");
// Misc
cgCompileProgram = (void (*)(CGprogram program)) _GetRoutine(CgFramework, "cgCompileProgram");
cgCreateState = (CGstate (*)(CGcontext, const char *name, CGtype)) _GetRoutine(CgFramework, "cgCreateState");
cgCreateStateAssignment = (CGstateassignment (*)(CGpass, CGstate)) _GetRoutine(CgFramework, "cgCreateStateAssignment");
cgCreateStateAssignmentIndex = (CGstateassignment (*)(CGpass, CGstate, int index)) _GetRoutine(CgFramework, "cgCreateStateAssignmentIndex");
cgGetBoolStateAssignmentValues = (const CGbool* (*)(CGstateassignment, int *nVals)) _GetRoutine(CgFramework, "cgGetBoolStateAssignmentValues");
cgGetDependentStateAssignmentParameter = (CGparameter (*)(CGstateassignment, int index)) _GetRoutine(CgFramework, "cgGetDependentStateAssignmentParameter");
cgGetFirstStateAssignment = (CGstateassignment (*)(CGpass)) _GetRoutine(CgFramework, "cgGetFirstStateAssignment");
cgGetFirstState = (CGstate (*)(CGcontext)) _GetRoutine(CgFramework, "cgGetFirstState");
cgGetFloatStateAssignmentValues = (const float* (*)(CGstateassignment, int *nVals)) _GetRoutine(CgFramework, "cgGetFloatStateAssignmentValues");
cgGetNamedParameter = (CGparameter (*)(CGprogram prog, const char *name)) _GetRoutine(CgFramework, "cgGetNamedParameter");
cgGetNamedParameterAnnotation = (CGannotation (*)(CGparameter, const char *)) _GetRoutine(CgFramework, "cgGetNamedParameterAnnotation");
cgGetNamedStateAssignment = (CGstateassignment (*)(CGpass, const char *name)) _GetRoutine(CgFramework, "cgGetNamedStateAssignment");
cgGetNextStateAssignment = (CGstateassignment (*)(CGstateassignment)) _GetRoutine(CgFramework, "cgGetNextStateAssignment");
cgGetNextState = (CGstate (*)(CGstate)) _GetRoutine(CgFramework, "cgGetNextState");
cgGetNumDependentStateAssignmentParameters = (int (*)(CGstateassignment)) _GetRoutine(CgFramework, "cgGetNumDependentStateAssignmentParameters");
cgGetParameterResource = (CGresource (*)(CGparameter param)) _GetRoutine(CgFramework, "cgGetParameterResource");
cgGetParameterResourceIndex = (unsigned long (*)(CGparameter param)) _GetRoutine(CgFramework, "cgGetParameterResourceIndex");
cgGetParameterValuefr = (int (*)(CGparameter param, int n, float *vals)) _GetRoutine(CgFramework, "cgGetParameterValuefr");
cgGetParameterValues = (const double* (*)(CGparameter param, CGenum value_type, int * nvalues)) _GetRoutine(CgFramework, "cgGetParameterValues");
cgGetProfileDomain = (CGdomain (*)( CGprofile profile )) _GetRoutine(CgFramework, "cgGetProfileDomain");
cgGetProgramProfile = (CGprofile (*)(CGprogram prog)) _GetRoutine(CgFramework, "cgGetProgramProfile");
cgGetProgramStateAssignmentValue = (CGprogram (*)(CGstateassignment)) _GetRoutine(CgFramework, "cgGetProgramStateAssignmentValue");
cgGetResourceString = (const char* (*)(CGresource resource)) _GetRoutine(CgFramework, "cgGetResourceString");
cgGetSamplerStateAssignmentState = (CGstate (*)(CGstateassignment)) _GetRoutine(CgFramework, "cgGetSamplerStateAssignmentState");
cgGetSamplerStateAssignmentValue = (CGparameter (*)(CGstateassignment)) _GetRoutine(CgFramework, "cgGetSamplerStateAssignmentValue");
cgGetStateAssignmentIndex = (int (*)(CGstateassignment)) _GetRoutine(CgFramework, "cgGetStateAssignmentIndex");
cgGetStateAssignmentState = (CGstate (*)(CGstateassignment)) _GetRoutine(CgFramework, "cgGetStateAssignmentState");
cgGetStateEnumerantName = (const char* (*)(CGstate, int value)) _GetRoutine(CgFramework, "cgGetStateEnumerantName");
cgGetStateName = (const char* (*)(CGstate)) _GetRoutine(CgFramework, "cgGetStateName");
cgGetStateType = (CGtype (*)(CGstate)) _GetRoutine(CgFramework, "cgGetStateType");
cgGetTypeBase = (CGtype (*)(CGtype type)) _GetRoutine(CgFramework, "cgGetTypeBase");
cgGetTypeClass = (CGparameterclass (*)(CGtype type)) _GetRoutine(CgFramework, "cgGetTypeClass");
cgGetTypeString = (const char* (*)(CGtype type)) _GetRoutine(CgFramework, "cgGetTypeString");
cgGLBindProgram = (void (*)(CGprogram program)) _GetRoutine(CgFramework, "cgGLBindProgram");
cgGLDisableProfile = (void (*)(CGprofile profile)) _GetRoutine(CgFramework, "cgGLDisableProfile");
cgGLEnableClientState = (void (*)(CGparameter param)) _GetRoutine(CgFramework, "cgGLEnableClientState");
cgGLEnableProfile = (void (*)(CGprofile profile)) _GetRoutine(CgFramework, "cgGLEnableProfile");
cgGLGetProgramID = (GLuint (*)(CGprogram program)) _GetRoutine(CgFramework, "cgGLGetProgramID");
cgGLIsProgramLoaded = (CGbool (*)(CGprogram program)) _GetRoutine(CgFramework, "cgGLIsProgramLoaded");
cgGLLoadProgram = (void (*)(CGprogram program)) _GetRoutine(CgFramework, "cgGLLoadProgram");
cgGLSetManageTextureParameters = (void (*)(CGcontext ctx, CGbool flag)) _GetRoutine(CgFramework, "cgGLSetManageTextureParameters");
cgGLSetMatrixParameterdr = (void (*)(CGparameter param, const double *matrix)) _GetRoutine(CgFramework, "cgGLSetMatrixParameterdr");
cgGLSetMatrixParameterdc = (void (*)(CGparameter param, const double *matrix)) _GetRoutine(CgFramework, "cgGLSetMatrixParameterdc");
cgGLSetMatrixParameterfc = (void (*)(CGparameter param, const float *matrix)) _GetRoutine(CgFramework, "cgGLSetMatrixParameterfc");
cgGLSetMatrixParameterArrayfc = (void (*)(CGparameter param, long offset, long nelements, const float *matrices)) _GetRoutine(CgFramework, "cgGLSetMatrixParameterArrayfc");
cgGLSetMatrixParameterArraydc = (void (*)(CGparameter param, long offset, long nelements, const double *matrices)) _GetRoutine(CgFramework, "cgGLSetMatrixParameterArraydc");
cgGLSetMatrixParameterArraydr = (void (*)(CGparameter param, long offset, long nelements, const double *matrices)) _GetRoutine(CgFramework, "cgGLSetMatrixParameterArraydr");
cgGLSetParameterPointer = (void (*)(CGparameter param, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer)) _GetRoutine(CgFramework, "cgGLSetParameterPointer");
cgGLUnbindProgram = (void (*)(CGprofile profile)) _GetRoutine(CgFramework, "cgGLUnbindProgram");
cgSetParameterValuefr = (void (*)(CGparameter param, int n, const float *vals)) _GetRoutine(CgFramework, "cgSetParameterValuefr");
cgSetParameterValueic = (void (*)(CGparameter param, int n, const int *vals)) _GetRoutine(CgFramework, "cgSetParameterValueic");
cgSetPassProgramParameters = (void (*)(CGprogram)) _GetRoutine(CgFramework, "cgSetPassProgramParameters");
cgSetSamplerState = (void (*)(CGparameter)) _GetRoutine(CgFramework, "cgSetSamplerState");
cgSetSamplerStateAssignment = (CGbool (*)(CGstateassignment, CGparameter)) _GetRoutine(CgFramework, "cgSetSamplerStateAssignment");
// to do or not to do ?
//CFRelease(CgFramework);
return Result;
}