OgreGLATIFSInit.cpp 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. ATI fragment shader Extension program file.
  3. setup by NFZ
  4. extracted from ATI 8500 SDK
  5. ** GL_ATI_fragment_shader
  6. **
  7. ** Support:
  8. ** Rage 128 * based : Not Supported
  9. ** Radeon * based : Not Supported
  10. ** R200 * based : Supported
  11. ** R200 : 8500, 9000, 9100, 9200
  12. ** also works on R300 but pointless since ARBFP1.0 supported
  13. */
  14. #include "OgreGLATIFSInit.h"
  15. #include "OgreGLPrerequisites.h"
  16. // ATI_fragment_program functions
  17. PFNGLGENFRAGMENTSHADERSATIPROC glGenFragmentShadersATI_ptr=NULL;
  18. PFNGLBINDFRAGMENTSHADERATIPROC glBindFragmentShaderATI_ptr=NULL;
  19. PFNGLDELETEFRAGMENTSHADERATIPROC glDeleteFragmentShaderATI_ptr=NULL;
  20. PFNGLBEGINFRAGMENTSHADERATIPROC glBeginFragmentShaderATI_ptr=NULL;
  21. PFNGLENDFRAGMENTSHADERATIPROC glEndFragmentShaderATI_ptr=NULL;
  22. PFNGLPASSTEXCOORDATIPROC glPassTexCoordATI_ptr=NULL;
  23. PFNGLSAMPLEMAPATIPROC glSampleMapATI_ptr=NULL;
  24. PFNGLCOLORFRAGMENTOP1ATIPROC glColorFragmentOp1ATI_ptr=NULL;
  25. PFNGLCOLORFRAGMENTOP2ATIPROC glColorFragmentOp2ATI_ptr=NULL;
  26. PFNGLCOLORFRAGMENTOP3ATIPROC glColorFragmentOp3ATI_ptr=NULL;
  27. PFNGLALPHAFRAGMENTOP1ATIPROC glAlphaFragmentOp1ATI_ptr=NULL;
  28. PFNGLALPHAFRAGMENTOP2ATIPROC glAlphaFragmentOp2ATI_ptr=NULL;
  29. PFNGLALPHAFRAGMENTOP3ATIPROC glAlphaFragmentOp3ATI_ptr=NULL;
  30. PFNGLSETFRAGMENTSHADERCONSTANTATIPROC glSetFragmentShaderConstantATI_ptr=NULL;
  31. bool InitATIFragmentShaderExtensions(Ogre::GLSupport& glSupport)
  32. {
  33. static bool init = false;
  34. //char *extList;
  35. if(init) return init;
  36. /* confirm that the version of OpenGL supports ATI fragment shader */
  37. /* done in GLRenderSystem
  38. extList = (char *)glGetString(GL_EXTENSIONS);
  39. if (strstr(extList, "GL_ATI_fragment_shader") == NULL) {
  40. //MessageBox(NULL, "GL_ATI_fragment_shader extension not supported", "GL Extension error", MB_OK);
  41. // ** should raise exception
  42. init = false;
  43. return false;
  44. }
  45. */
  46. glGenFragmentShadersATI_ptr = (PFNGLGENFRAGMENTSHADERSATIPROC) glSupport.getProcAddress("glGenFragmentShadersATI");
  47. glBindFragmentShaderATI_ptr = (PFNGLBINDFRAGMENTSHADERATIPROC) glSupport.getProcAddress("glBindFragmentShaderATI");
  48. glDeleteFragmentShaderATI_ptr = (PFNGLDELETEFRAGMENTSHADERATIPROC) glSupport.getProcAddress("glDeleteFragmentShaderATI");
  49. glBeginFragmentShaderATI_ptr = (PFNGLBEGINFRAGMENTSHADERATIPROC) glSupport.getProcAddress("glBeginFragmentShaderATI");
  50. glEndFragmentShaderATI_ptr = (PFNGLENDFRAGMENTSHADERATIPROC) glSupport.getProcAddress("glEndFragmentShaderATI");
  51. glPassTexCoordATI_ptr = (PFNGLPASSTEXCOORDATIPROC) glSupport.getProcAddress("glPassTexCoordATI");
  52. glSampleMapATI_ptr = (PFNGLSAMPLEMAPATIPROC) glSupport.getProcAddress("glSampleMapATI");
  53. glColorFragmentOp1ATI_ptr = (PFNGLCOLORFRAGMENTOP1ATIPROC) glSupport.getProcAddress("glColorFragmentOp1ATI");
  54. glColorFragmentOp2ATI_ptr = (PFNGLCOLORFRAGMENTOP2ATIPROC) glSupport.getProcAddress("glColorFragmentOp2ATI");
  55. glColorFragmentOp3ATI_ptr = (PFNGLCOLORFRAGMENTOP3ATIPROC) glSupport.getProcAddress("glColorFragmentOp3ATI");
  56. glAlphaFragmentOp1ATI_ptr = (PFNGLALPHAFRAGMENTOP1ATIPROC) glSupport.getProcAddress("glAlphaFragmentOp1ATI");
  57. glAlphaFragmentOp2ATI_ptr = (PFNGLALPHAFRAGMENTOP2ATIPROC) glSupport.getProcAddress("glAlphaFragmentOp2ATI");
  58. glAlphaFragmentOp3ATI_ptr = (PFNGLALPHAFRAGMENTOP3ATIPROC) glSupport.getProcAddress("glAlphaFragmentOp3ATI");
  59. glSetFragmentShaderConstantATI_ptr = (PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) glSupport.getProcAddress("glSetFragmentShaderConstantATI");
  60. if (glGenFragmentShadersATI_ptr == NULL) return false;
  61. if (glBindFragmentShaderATI_ptr == NULL) return false;
  62. if (glDeleteFragmentShaderATI_ptr == NULL) return false;
  63. if (glBeginFragmentShaderATI_ptr == NULL) return false;
  64. if (glEndFragmentShaderATI_ptr == NULL) return false;
  65. if (glPassTexCoordATI_ptr == NULL) return false;
  66. if (glColorFragmentOp1ATI_ptr == NULL) return false;
  67. if (glColorFragmentOp2ATI_ptr == NULL) return false;
  68. if (glColorFragmentOp3ATI_ptr == NULL) return false;
  69. if (glAlphaFragmentOp1ATI_ptr == NULL) return false;
  70. if (glAlphaFragmentOp2ATI_ptr == NULL) return false;
  71. if (glAlphaFragmentOp2ATI_ptr == NULL) return false;
  72. if (glAlphaFragmentOp3ATI_ptr == NULL) return false;
  73. if (glSetFragmentShaderConstantATI_ptr == NULL) return false;
  74. init = true;
  75. return true;
  76. }