#define CG_EXPLICIT #define CGGL_EXPLICIT #include #include 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; }