Show extensions.cpp syntax highlighted
/***************************************************************************
extensions.cpp - Supported OpenGL extensions
-------------------
begin : Tue Apr 1 2003
copyright : (C) 2003 by Reality Rift Studios
email : mattias@realityrift.com
***************************************************************************
The contents of this file are subject to the Mozilla Public License Version
1.1 (the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS" basis,
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
for the specific language governing rights and limitations under the
License.
The Original Code is the NeoEngine, NeoDevOpenGL, extensions.cpp
The Initial Developer of the Original Code is Mattias Jansson.
Portions created by Mattias Jansson are Copyright (C) 2003
Reality Rift Studios. All Rights Reserved.
***************************************************************************/
#include "extensions.h"
#include <neoengine/logstream.h>
using namespace std;
using namespace NeoEngine;
extern "C"
{
void NEOGLAPIENTRY neoglLoadMatrixfNoTranspose( GLfloat *pfMat )
{
static GLfloat afMat[16];
afMat[0] = pfMat[0];
afMat[1] = pfMat[4];
afMat[2] = pfMat[8];
afMat[3] = pfMat[12];
afMat[4] = pfMat[1];
afMat[5] = pfMat[5];
afMat[6] = pfMat[9];
afMat[7] = pfMat[13];
afMat[8] = pfMat[2];
afMat[9] = pfMat[6];
afMat[10] = pfMat[10];
afMat[11] = pfMat[14];
afMat[12] = pfMat[3];
afMat[13] = pfMat[7];
afMat[14] = pfMat[11];
afMat[15] = pfMat[15];
glLoadMatrixf( afMat );
}
void NEOGLAPIENTRY neoglMultMatrixfNoTranspose( GLfloat *pfMat )
{
static GLfloat afMat[16];
afMat[0] = pfMat[0];
afMat[1] = pfMat[4];
afMat[2] = pfMat[8];
afMat[3] = pfMat[12];
afMat[4] = pfMat[1];
afMat[5] = pfMat[5];
afMat[6] = pfMat[9];
afMat[7] = pfMat[13];
afMat[8] = pfMat[2];
afMat[9] = pfMat[6];
afMat[10] = pfMat[10];
afMat[11] = pfMat[14];
afMat[12] = pfMat[3];
afMat[13] = pfMat[7];
afMat[14] = pfMat[11];
afMat[15] = pfMat[15];
glMultMatrixf( afMat );
}
}
bool neoglCheckError( const std::string &rstrPrefix )
{
GLenum eError = glGetError();
if( eError == GL_NO_ERROR )
return false;
neolog << LogLevel( ERROR ) << rstrPrefix;
switch( eError )
{
case GL_INVALID_ENUM:
neolog << "GL_INVALID_ENUM";
break;
case GL_INVALID_VALUE:
neolog << "GL_INVALID_VALUE";
break;
case GL_INVALID_OPERATION:
neolog << "GL_INVALID_OPERATION";
break;
case GL_STACK_OVERFLOW:
neolog << "GL_STACK_OVERFLOW";
break;
case GL_STACK_UNDERFLOW:
neolog << "GL_STACK_UNDERFLOW";
break;
case GL_OUT_OF_MEMORY:
neolog << "GL_OUT_OF_MEMORY";
break;
default:
neolog << "UNKNOWN";
break;
}
neolog << endl;
return true;
}
#ifdef __APPLE__
#else
fpglActiveTextureARBProc fpneoglActiveTextureARB = 0;
fpglClientActiveTextureARBProc fpneoglClientActiveTextureARB = 0;
#endif
#ifdef WIN32
/* WGL_EXT_extensions_string */
fpwglGetExtensionsStringEXTProc fpneowglGetExtensionsStringEXT = 0;
/* WGL_ARB_pixel_format */
fpwglGetPixelFormatAttribivARBProc fpneowglGetPixelFormatAttribivARB = 0;
fpwglGetPixelFormatAttribfvARBProc fpneowglGetPixelFormatAttribfvARB = 0;
fpwglChoosePixelFormatARBProc fpneowglChoosePixelFormatARB = 0;
/* WGL_ARB_pbuffer */
fpwglCreatePbufferARBProc fpneowglCreatePbufferARB = 0;
fpwglGetPbufferDCARBProc fpneowglGetPbufferDCARB = 0;
fpwglReleasePbufferDCARBProc fpneowglReleasePbufferDCARB = 0;
fpwglDestroyPbufferARBProc fpneowglDestroyPbufferARB = 0;
fpwglQueryPbufferARBProc fpneowglQueryPbufferARB = 0;
/* WGL_ARB_render_texture */
fpwglBindTexImageARBProc fpneowglBindTexImageARB = 0;
fpwglReleaseTexImageARBProc fpneowglReleaseTexImageARB = 0;
fpwglSetPbufferAttribARBProc fpneowglSetPbufferAttribARB = 0;
#endif // WIN32
/* GL_ARB_transpose_matrix */
fpglLoadMatrixfARBProc fpneoglLoadMatrixfARB = neoglLoadMatrixfNoTranspose;
fpglMultMatrixfARBProc fpneoglMultMatrixfARB = neoglMultMatrixfNoTranspose;
/*! GL_ATI_vertex_array_object */
fpglNewObjectBufferATI fpneoglNewObjectBufferATI = 0;
fpglUpdateObjectBufferATI fpneoglUpdateObjectBufferATI = 0;
fpglFreeObjectBufferATI fpneoglFreeObjectBufferATI = 0;
fpglArrayObjectATI fpneoglArrayObjectATI = 0;
/*! GL_ATI_vertex_attrib_array_object */
PFNGLVERTEXATTRIBARRAYOBJECTATIPROC fpneoglVertexAttribArrayObjectATI = 0;
/*! GL_ARB_vertex_buffer_object */
fpglBindBufferARB fpneoglBindBufferARB = 0;
fpglDeleteBuffersARB fpneoglDeleteBuffersARB = 0;
fpglGenBuffersARB fpneoglGenBuffersARB = 0;
fpglIsBufferARB fpneoglIsBufferARB = 0;
fpglBufferDataARB fpneoglBufferDataARB = 0;
fpglBufferSubDataARB fpneoglBufferSubDataARB = 0;
fpglGetBufferSubDataARB fpneoglGetBufferSubDataARB = 0;
fpglMapBufferARB fpneoglMapBufferARB = 0;
fpglUnmapBufferARB fpneoglUnmapBufferARB = 0;
fpglGetBufferParameterivARB fpneoglGetBufferParameterivARB = 0;
fpglGetBufferPointervARB fpneoglGetBufferPointervARB = 0;
/*! GL_ARB_vertex_program */
fpglVertexAttribPointerARB fpneoglVertexAttribPointerARB = 0;
fpglEnableVertexAttribArrayARB fpneoglEnableVertexAttribArrayARB = 0;
fpglDisableVertexAttribArrayARB fpneoglDisableVertexAttribArrayARB = 0;
fpglProgramStringARB fpneoglProgramStringARB = 0;
fpglBindProgramARB fpneoglBindProgramARB = 0;
fpglDeleteProgramsARB fpneoglDeleteProgramsARB = 0;
fpglGenProgramsARB fpneoglGenProgramsARB = 0;
fpglProgramEnvParameter4fARB fpneoglProgramEnvParameter4fARB = 0;
fpglProgramEnvParameter4fvARB fpneoglProgramEnvParameter4fvARB = 0;
fpglProgramLocalParameter4fARB fpneoglProgramLocalParameter4fARB = 0;
fpglProgramLocalParameter4fvARB fpneoglProgramLocalParameter4fvARB = 0;
fpglGetProgramivARB fpneoglGetProgramivARB = 0;
/*! GL_ATI_fragment_shader */
fpglGenFragmentShadersATI fpneoglGenFragmentShadersATI = 0;
fpglBindFragmentShaderATI fpneoglBindFragmentShaderATI = 0;
fpglDeleteFragmentShaderATI fpneoglDeleteFragmentShaderATI = 0;
fpglBeginFragmentShaderATI fpneoglBeginFragmentShaderATI = 0;
fpglEndFragmentShaderATI fpneoglEndFragmentShaderATI = 0;
fpglPassTexCoordATI fpneoglPassTexCoordATI = 0;
fpglSampleMapATI fpneoglSampleMapATI = 0;
fpglColorFragmentOp1ATI fpneoglColorFragmentOp1ATI = 0;
fpglColorFragmentOp2ATI fpneoglColorFragmentOp2ATI = 0;
fpglColorFragmentOp3ATI fpneoglColorFragmentOp3ATI = 0;
fpglAlphaFragmentOp1ATI fpneoglAlphaFragmentOp1ATI = 0;
fpglAlphaFragmentOp2ATI fpneoglAlphaFragmentOp2ATI = 0;
fpglAlphaFragmentOp3ATI fpneoglAlphaFragmentOp3ATI = 0;
fpglSetFragmentShaderConstantATI fpneoglSetFragmentShaderConstantATI = 0;
/*! GL_NV_register_combiners */
fpglCombinerParameterfvNV fpneoglCombinerParameterfvNV = 0;
fpglCombinerParameterfNV fpneoglCombinerParameterfNV = 0;
fpglCombinerParameterivNV fpneoglCombinerParameterivNV = 0;
fpglCombinerParameteriNV fpneoglCombinerParameteriNV = 0;
fpglCombinerInputNV fpneoglCombinerInputNV = 0;
fpglCombinerOutputNV fpneoglCombinerOutputNV = 0;
fpglFinalCombinerInputNV fpneoglFinalCombinerInputNV = 0;
/*! GL_NV_register_combiners2 */
fpglCombinerStageParameterfvNV fpneoglCombinerStageParameterfvNV = 0;
/*! GL_NV_vertex_program */
fpglVertexAttribPointerNV fpneoglVertexAttribPointerNV = 0;
/*! GL_ARB_shader_objects */
fpglDeleteObjectARB fpneoglDeleteObjectARB = 0;
fpglGetHandleARB fpneoglGetHandleARB = 0;
fpglDetachObjectARB fpneoglDetachObjectARB = 0;
fpglCreateShaderObjectARB fpneoglCreateShaderObjectARB = 0;
fpglShaderSourceARB fpneoglShaderSourceARB = 0;
fpglCompileShaderARB fpneoglCompileShaderARB = 0;
fpglCreateProgramObjectARB fpneoglCreateProgramObjectARB = 0;
fpglAttachObjectARB fpneoglAttachObjectARB = 0;
fpglLinkProgramARB fpneoglLinkProgramARB = 0;
fpglUseProgramObjectARB fpneoglUseProgramObjectARB = 0;
fpglValidateProgramARB fpneoglValidateProgramARB = 0;
fpglUniform1fARB fpneoglUniform1fARB = 0;
fpglUniform2fARB fpneoglUniform2fARB = 0;
fpglUniform3fARB fpneoglUniform3fARB = 0;
fpglUniform4fARB fpneoglUniform4fARB = 0;
fpglUniform1iARB fpneoglUniform1iARB = 0;
fpglUniform2iARB fpneoglUniform2iARB = 0;
fpglUniform3iARB fpneoglUniform3iARB = 0;
fpglUniform4iARB fpneoglUniform4iARB = 0;
fpglUniform1fvARB fpneoglUniform1fvARB = 0;
fpglUniform2fvARB fpneoglUniform2fvARB = 0;
fpglUniform3fvARB fpneoglUniform3fvARB = 0;
fpglUniform4fvARB fpneoglUniform4fvARB = 0;
fpglUniform1ivARB fpneoglUniform1ivARB = 0;
fpglUniform2ivARB fpneoglUniform2ivARB = 0;
fpglUniform3ivARB fpneoglUniform3ivARB = 0;
fpglUniform4ivARB fpneoglUniform4ivARB = 0;
fpglUniformMatrix2fvARB fpneoglUniformMatrix2fvARB = 0;
fpglUniformMatrix3fvARB fpneoglUniformMatrix3fvARB = 0;
fpglUniformMatrix4fvARB fpneoglUniformMatrix4fvARB = 0;
fpglGetObjectParameterfvARB fpneoglGetObjectParameterfvARB = 0;
fpglGetObjectParameterivARB fpneoglGetObjectParameterivARB = 0;
fpglGetInfoLogARB fpneoglGetInfoLogARB = 0;
fpglGetAttachedObjectsARB fpneoglGetAttachedObjectsARB = 0;
fpglGetUniformLocationARB fpneoglGetUniformLocationARB = 0;
fpglGetActiveUniformARB fpneoglGetActiveUniformARB = 0;
fpglGetUniformfvARB fpneoglGetUniformfvARB = 0;
fpglGetUniformivARB fpneoglGetUniformivARB = 0;
fpglGetShaderSourceARB fpneoglGetShaderSourceARB = 0;
/*! GL_ARB_vertex_shader */
fpglVertexAttrib1fARB fpneoglVertexAttrib1fARB = 0;
fpglVertexAttrib1sARB fpneoglVertexAttrib1sARB = 0;
fpglVertexAttrib1dARB fpneoglVertexAttrib1dARB = 0;
fpglVertexAttrib2fARB fpneoglVertexAttrib2fARB = 0;
fpglVertexAttrib2sARB fpneoglVertexAttrib2sARB = 0;
fpglVertexAttrib2dARB fpneoglVertexAttrib2dARB = 0;
fpglVertexAttrib3fARB fpneoglVertexAttrib3fARB = 0;
fpglVertexAttrib3sARB fpneoglVertexAttrib3sARB = 0;
fpglVertexAttrib3dARB fpneoglVertexAttrib3dARB = 0;
fpglVertexAttrib4fARB fpneoglVertexAttrib4fARB = 0;
fpglVertexAttrib4sARB fpneoglVertexAttrib4sARB = 0;
fpglVertexAttrib4dARB fpneoglVertexAttrib4dARB = 0;
fpglVertexAttrib4NubARB fpneoglVertexAttrib4NubARB = 0;
fpglVertexAttrib1fvARB fpneoglVertexAttrib1fvARB = 0;
fpglVertexAttrib1svARB fpneoglVertexAttrib1svARB = 0;
fpglVertexAttrib1dvARB fpneoglVertexAttrib1dvARB = 0;
fpglVertexAttrib2fvARB fpneoglVertexAttrib2fvARB = 0;
fpglVertexAttrib2svARB fpneoglVertexAttrib2svARB = 0;
fpglVertexAttrib2dvARB fpneoglVertexAttrib2dvARB = 0;
fpglVertexAttrib3fvARB fpneoglVertexAttrib3fvARB = 0;
fpglVertexAttrib3svARB fpneoglVertexAttrib3svARB = 0;
fpglVertexAttrib3dvARB fpneoglVertexAttrib3dvARB = 0;
fpglVertexAttrib4fvARB fpneoglVertexAttrib4fvARB = 0;
fpglVertexAttrib4svARB fpneoglVertexAttrib4svARB = 0;
fpglVertexAttrib4dvARB fpneoglVertexAttrib4dvARB = 0;
fpglVertexAttrib4ivARB fpneoglVertexAttrib4ivARB = 0;
fpglVertexAttrib4bvARB fpneoglVertexAttrib4bvARB = 0;
fpglVertexAttrib4ubvARB fpneoglVertexAttrib4ubvARB = 0;
fpglVertexAttrib4usvARB fpneoglVertexAttrib4usvARB = 0;
fpglVertexAttrib4uivARB fpneoglVertexAttrib4uivARB = 0;
fpglVertexAttrib4NbvARB fpneoglVertexAttrib4NbvARB = 0;
fpglVertexAttrib4NsvARB fpneoglVertexAttrib4NsvARB = 0;
fpglVertexAttrib4NivARB fpneoglVertexAttrib4NivARB = 0;
fpglVertexAttrib4NubvARB fpneoglVertexAttrib4NubvARB = 0;
fpglVertexAttrib4NusvARB fpneoglVertexAttrib4NusvARB = 0;
fpglVertexAttrib4NuivARB fpneoglVertexAttrib4NuivARB = 0;
//fpglVertexAttribPointerARB fpneoglVertexAttribPointerARB = 0;
//fpglEnableVertexAttribArrayARB fpneoglEnableVertexAttribArrayARB = 0;
//fpglDisableVertexAttribArrayARB fpneoglDisableVertexAttribArrayARB = 0;
fpglBindAttribLocationARB fpneoglBindAttribLocationARB = 0;
fpglGetActiveAttribARB fpneoglGetActiveAttribARB = 0;
fpglGetAttribLocationARB fpneoglGetAttribLocationARB = 0;
fpglGetVertexAttribdvARB fpneoglGetVertexAttribdvARB = 0;
fpglGetVertexAttribfvARB fpneoglGetVertexAttribfvARB = 0;
fpglGetVertexAttribivARB fpneoglGetVertexAttribivARB = 0;
fpglGetVertexAttribPointervARB fpneoglGetVertexAttribPointervARB = 0;
/*! GL_EXT_fog_coord */
fpglFogCoordfEXTProc fpneoglFogCoordfEXT = 0;
fpglFogCoorddEXTProc fpneoglFogCoorddEXT = 0;
fpglFogCoordfvEXTProc fpneoglFogCoordfvEXT = 0;
fpglFogCoorddvEXTProc fpneoglFogCoorddvEXT = 0;
fpglFogCoordPointerEXTProc fpneoglFogCoordPointerEXT = 0;
/*! GL_ARB_point_parameters */
fpglPointParameterfARB fpneoglPointParameterfARB = 0;
fpglPointParameterfvARB fpneoglPointParameterfvARB = 0;
/*! Frame Buffer Object Extension */
fpglIsRenderbufferEXT fpneoglIsRenderbufferEXT = 0;
fpglBindRenderbufferEXT fpneoglBindRenderbufferEXT = 0;
fpglDeleteRenderbuffersEXT fpneoglDeleteRenderbuffersEXT = 0;
fpglGenRenderbuffersEXT fpneoglGenRenderbuffersEXT = 0;
fpglRenderbufferStorageEXT fpneoglRenderbufferStorageEXT = 0;
fpglGetRenderbufferParameterivEXT fpneoglGetRenderbufferParameterivEXT = 0;
fpglIsFramebufferEXT fpneoglIsFramebufferEXT = 0;
fpglBindFramebufferEXT fpneoglBindFramebufferEXT = 0;
fpglDeleteFramebuffersEXT fpneoglDeleteFramebuffersEXT = 0;
fpglGenFramebuffersEXT fpneoglGenFramebuffersEXT = 0;
fpglCheckFramebufferStatusEXT fpneoglCheckFramebufferStatusEXT = 0;
fpglFramebufferTexture1DEXT fpneoglFramebufferTexture1DEXT = 0;
fpglFramebufferTexture2DEXT fpneoglFramebufferTexture2DEXT = 0;
fpglFramebufferTexture3DEXT fpneoglFramebufferTexture3DEXT = 0;
fpglFramebufferRenderbufferEXT fpneoglFramebufferRenderbufferEXT = 0;
fpglGetFramebufferAttachmentParameterivEXT fpneoglGetFramebufferAttachmentParameterivEXT = 0;
fpglGenerateMipmapEXT fpneoglGenerateMipmapEXT = 0;
fpglDrawBuffersEXT fpneoglDrawBuffersEXT = 0;
// ARB occlusion query
fpglGenQueriesARB fpneoglGenQueriesARB = 0;
fpglDeleteQueriesARB fpneoglDeleteQueriesARB = 0;
fpglIsQueryARB fpneoglIsQueryARB = 0;
fpglBeginQueryARB fpneoglBeginQueryARB = 0;
fpglEndQueryARB fpneoglEndQueryARB = 0;
fpglGetQueryivARB fpneoglGetQueryivARB = 0;
fpglGetQueryObjectivARB fpneoglGetQueryObjectivARB = 0;
fpglGetQueryObjectuivARB fpneoglGetQueryObjectuivARB = 0;
//Geometry shader
fpglProgramParameteriEXT fpneoglProgramParameteriEXT = 0;
fpglFramebufferTextureEXT fpneoglFramebufferTextureEXT = 0;
fpglFramebufferTextureLayerEXT fpneoglFramebufferTextureLayerEXT = 0;
fpglFramebufferTextureFaceEXT fpneoglFramebufferTextureFaceEXT = 0;
See more files for this project here