📄 ogreglatifsinit.cpp
字号:
/*
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 "OgreGLATIFSInit.h"
#include "OgreGLPrerequisites.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(Ogre::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;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -