| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /*
- ATI fragment shader Extension program file.
- setup by NFZ
- extracted from ATI 8500 SDK
- ** GL_ATI_fragment_shader
- **
- ** Support:
- ** Rage 128 * based : Not Supported
- ** Radeon * based : Not Supported
- ** R200 * based : Supported
- ** R200 : 8500, 9000, 9100, 9200
- ** also works on R300 but pointless since ARBFP1.0 supported
- */
- #include "CmGLATIFSInit.h"
- #include "CmGLPrerequisites.h"
- // ATI_fragment_program functions
- PFNGLGENFRAGMENTSHADERSATIPROC glGenFragmentShadersATI_ptr=NULL;
- PFNGLBINDFRAGMENTSHADERATIPROC glBindFragmentShaderATI_ptr=NULL;
- PFNGLDELETEFRAGMENTSHADERATIPROC glDeleteFragmentShaderATI_ptr=NULL;
- PFNGLBEGINFRAGMENTSHADERATIPROC glBeginFragmentShaderATI_ptr=NULL;
- PFNGLENDFRAGMENTSHADERATIPROC glEndFragmentShaderATI_ptr=NULL;
- PFNGLPASSTEXCOORDATIPROC glPassTexCoordATI_ptr=NULL;
- PFNGLSAMPLEMAPATIPROC glSampleMapATI_ptr=NULL;
- PFNGLCOLORFRAGMENTOP1ATIPROC glColorFragmentOp1ATI_ptr=NULL;
- PFNGLCOLORFRAGMENTOP2ATIPROC glColorFragmentOp2ATI_ptr=NULL;
- PFNGLCOLORFRAGMENTOP3ATIPROC glColorFragmentOp3ATI_ptr=NULL;
- PFNGLALPHAFRAGMENTOP1ATIPROC glAlphaFragmentOp1ATI_ptr=NULL;
- PFNGLALPHAFRAGMENTOP2ATIPROC glAlphaFragmentOp2ATI_ptr=NULL;
- PFNGLALPHAFRAGMENTOP3ATIPROC glAlphaFragmentOp3ATI_ptr=NULL;
- PFNGLSETFRAGMENTSHADERCONSTANTATIPROC glSetFragmentShaderConstantATI_ptr=NULL;
- bool InitATIFragmentShaderExtensions(CamelotEngine::GLSupport& glSupport)
- {
- static bool init = false;
- //char *extList;
- if(init) return init;
-
- /* confirm that the version of OpenGL supports ATI fragment shader */
- /* done in GLRenderSystem
- extList = (char *)glGetString(GL_EXTENSIONS);
- if (strstr(extList, "GL_ATI_fragment_shader") == NULL) {
- //MessageBox(NULL, "GL_ATI_fragment_shader extension not supported", "GL Extension error", MB_OK);
- // ** should raise exception
- init = false;
- return false;
- }
- */
- glGenFragmentShadersATI_ptr = (PFNGLGENFRAGMENTSHADERSATIPROC) glSupport.getProcAddress("glGenFragmentShadersATI");
- glBindFragmentShaderATI_ptr = (PFNGLBINDFRAGMENTSHADERATIPROC) glSupport.getProcAddress("glBindFragmentShaderATI");
- glDeleteFragmentShaderATI_ptr = (PFNGLDELETEFRAGMENTSHADERATIPROC) glSupport.getProcAddress("glDeleteFragmentShaderATI");
- glBeginFragmentShaderATI_ptr = (PFNGLBEGINFRAGMENTSHADERATIPROC) glSupport.getProcAddress("glBeginFragmentShaderATI");
- glEndFragmentShaderATI_ptr = (PFNGLENDFRAGMENTSHADERATIPROC) glSupport.getProcAddress("glEndFragmentShaderATI");
- glPassTexCoordATI_ptr = (PFNGLPASSTEXCOORDATIPROC) glSupport.getProcAddress("glPassTexCoordATI");
- glSampleMapATI_ptr = (PFNGLSAMPLEMAPATIPROC) glSupport.getProcAddress("glSampleMapATI");
- glColorFragmentOp1ATI_ptr = (PFNGLCOLORFRAGMENTOP1ATIPROC) glSupport.getProcAddress("glColorFragmentOp1ATI");
- glColorFragmentOp2ATI_ptr = (PFNGLCOLORFRAGMENTOP2ATIPROC) glSupport.getProcAddress("glColorFragmentOp2ATI");
- glColorFragmentOp3ATI_ptr = (PFNGLCOLORFRAGMENTOP3ATIPROC) glSupport.getProcAddress("glColorFragmentOp3ATI");
- glAlphaFragmentOp1ATI_ptr = (PFNGLALPHAFRAGMENTOP1ATIPROC) glSupport.getProcAddress("glAlphaFragmentOp1ATI");
- glAlphaFragmentOp2ATI_ptr = (PFNGLALPHAFRAGMENTOP2ATIPROC) glSupport.getProcAddress("glAlphaFragmentOp2ATI");
- glAlphaFragmentOp3ATI_ptr = (PFNGLALPHAFRAGMENTOP3ATIPROC) glSupport.getProcAddress("glAlphaFragmentOp3ATI");
- glSetFragmentShaderConstantATI_ptr = (PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) glSupport.getProcAddress("glSetFragmentShaderConstantATI");
- if (glGenFragmentShadersATI_ptr == NULL) return false;
- if (glBindFragmentShaderATI_ptr == NULL) return false;
- if (glDeleteFragmentShaderATI_ptr == NULL) return false;
- if (glBeginFragmentShaderATI_ptr == NULL) return false;
- if (glEndFragmentShaderATI_ptr == NULL) return false;
- if (glPassTexCoordATI_ptr == NULL) return false;
- if (glColorFragmentOp1ATI_ptr == NULL) return false;
- if (glColorFragmentOp2ATI_ptr == NULL) return false;
- if (glColorFragmentOp3ATI_ptr == NULL) return false;
- if (glAlphaFragmentOp1ATI_ptr == NULL) return false;
- if (glAlphaFragmentOp2ATI_ptr == NULL) return false;
- if (glAlphaFragmentOp2ATI_ptr == NULL) return false;
- if (glAlphaFragmentOp3ATI_ptr == NULL) return false;
- if (glSetFragmentShaderConstantATI_ptr == NULL) return false;
- init = true;
- return true;
- }
|