Index: build/premake/extern_libs5.lua =================================================================== --- build/premake/extern_libs5.lua +++ build/premake/extern_libs5.lua @@ -583,6 +583,27 @@ add_source_include_paths("valgrind") end, }, + epoxy = { + compile_settings = function() + add_source_include_paths("libepoxy") + end, + link_settings = function() + add_source_lib_paths("libepoxy") + if os.istarget("windows") then + filter "Debug" + links { "epoxy" } + filter "Release" + links { "epoxy" } + filter { } + else + filter "Debug" + links { "epoxy" } + filter "Release" + links { "epoxy" } + filter { } + end + end, + }, vorbis = { compile_settings = function() if os.istarget("windows") then Index: build/premake/premake5.lua =================================================================== --- build/premake/premake5.lua +++ build/premake/premake5.lua @@ -684,6 +684,7 @@ extern_libs = { "boost", "opengl", + "epoxy", "spidermonkey", } setup_static_lib_project("simulation2", source_dirs, extern_libs, {}) @@ -697,6 +698,7 @@ "boost", "spidermonkey", "valgrind", + "epoxy", "sdl", } setup_static_lib_project("scriptinterface", source_dirs, extern_libs, {}) @@ -722,6 +724,7 @@ "spidermonkey", "sdl", -- key definitions "libxml2", + "epoxy", "opengl", "zlib", "boost", @@ -751,6 +754,7 @@ } extern_libs = { "opengl", + "epoxy", "sdl", -- key definitions "spidermonkey", -- for graphics/scripting "boost" @@ -767,6 +771,7 @@ } extern_libs = { "boost", + "epoxy", "sdl", -- key definitions "opengl", "spidermonkey" @@ -786,6 +791,7 @@ "spidermonkey", "sdl", -- key definitions "opengl", + "epoxy", "boost", "enet", "tinygettext", @@ -820,6 +826,7 @@ "sdl", "openal", "opengl", + "epoxy", "libpng", "zlib", "valgrind", @@ -912,7 +919,7 @@ used_extern_libs = { "opengl", "sdl", - + "epoxy", "libpng", "zlib", Index: libraries/osx/build-osx-libs.sh =================================================================== --- libraries/osx/build-osx-libs.sh +++ libraries/osx/build-osx-libs.sh @@ -44,6 +44,7 @@ # NOTE: remember to also update LIB_URL below when changing version ICU_VERSION="icu4c-59_2" ENET_VERSION="enet-1.3.13" +EPOXY_VERSION="1.5.4" MINIUPNPC_VERSION="miniupnpc-2.0.20180222" SODIUM_VERSION="libsodium-1.0.18" # -------------------------------------------------------------- @@ -834,6 +835,39 @@ popd > /dev/null # -------------------------------------------------------------- +echo -e "Building Epoxy..." + +LIB_VERSION="${EPOXY_VERSION}" +LIB_ARCHIVE="$LIB_VERSION.tar.xz" +LIB_DIRECTORY="$LIB_VERSION" +LIB_URL="https://github.com/anholt/libepoxy/releases/download/${LIB_ARCHIVE}/${LIB_ARCHIVE}" + +mkdir -p enet +pushd enet > /dev/null + +if [[ "$force_rebuild" = "true" ]] || [[ ! -e .already-built ]] || [[ "$(<.already-built)" != "$LIB_VERSION" ]] +then + INSTALL_DIR="$(pwd)" + + rm -f .already-built + download_lib $LIB_URL $LIB_ARCHIVE + + rm -rf $LIB_DIRECTORY bin include lib sbin share + tar -xf $LIB_ARCHIVE + pushd $LIB_DIRECTORY + + (./configure CFLAGS="$CFLAGS" \ + LDFLAGS="$LDFLAGS" \ + --prefix=${INSTALL_DIR} \ + --enable-shared=no \ + && make clean && make ${JOBS} && make install) || die "Epoxy build failed" + popd + echo "$LIB_VERSION" > .already-built +else + already_built +fi +popd > /dev/null +# -------------------------------------------------------------- echo -e "Building MiniUPnPc..." LIB_VERSION="${MINIUPNPC_VERSION}" Index: source/graphics/LOSTexture.cpp =================================================================== --- source/graphics/LOSTexture.cpp +++ source/graphics/LOSTexture.cpp @@ -90,7 +90,7 @@ return false; } - pglGenFramebuffersEXT(1, &m_smoothFbo); + glGenFramebuffersEXT(1, &m_smoothFbo); return true; } @@ -156,11 +156,11 @@ m_Dirty = false; } - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_smoothFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_smoothFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, whichTex ? m_TextureSmooth2 : m_TextureSmooth1, 0); - GLenum status = pglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); + GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); if (status != GL_FRAMEBUFFER_COMPLETE_EXT) { LOGWARNING("LOS framebuffer object incomplete: 0x%04X", status); @@ -210,9 +210,9 @@ shader->Unbind(); m_smoothShader->EndPass(); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, 0, 0); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, 0, 0); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); whichTex = !whichTex; } Index: source/graphics/ParticleEmitter.cpp =================================================================== --- source/graphics/ParticleEmitter.cpp +++ source/graphics/ParticleEmitter.cpp @@ -188,7 +188,7 @@ shader->Uniform(str_fogParams, lightEnv.m_FogFactor, lightEnv.m_FogMax, 0.f, 0.f); shader->BindTexture(str_baseTex, m_Type->m_Texture); - pglBlendEquationEXT(m_Type->m_BlendEquation); + glBlendEquationEXT(m_Type->m_BlendEquation); glBlendFunc(m_Type->m_BlendFuncSrc, m_Type->m_BlendFuncDst); } Index: source/graphics/ShaderProgram.cpp =================================================================== --- source/graphics/ShaderProgram.cpp +++ source/graphics/ShaderProgram.cpp @@ -43,27 +43,27 @@ m_Defines(defines), m_VertexIndexes(vertexIndexes), m_FragmentIndexes(fragmentIndexes) { - pglGenProgramsARB(1, &m_VertexProgram); - pglGenProgramsARB(1, &m_FragmentProgram); + glGenProgramsARB(1, &m_VertexProgram); + glGenProgramsARB(1, &m_FragmentProgram); } ~CShaderProgramARB() { Unload(); - pglDeleteProgramsARB(1, &m_VertexProgram); - pglDeleteProgramsARB(1, &m_FragmentProgram); + glDeleteProgramsARB(1, &m_VertexProgram); + glDeleteProgramsARB(1, &m_FragmentProgram); } bool Compile(GLuint target, const char* targetName, GLuint program, const VfsPath& file, const CStr& code) { ogl_WarnIfError(); - pglBindProgramARB(target, program); + glBindProgramARB(target, program); ogl_WarnIfError(); - pglProgramStringARB(target, GL_PROGRAM_FORMAT_ASCII_ARB, (GLsizei)code.length(), code.c_str()); + glProgramStringARB(target, GL_PROGRAM_FORMAT_ASCII_ARB, (GLsizei)code.length(), code.c_str()); if (ogl_SquelchError(GL_INVALID_OPERATION)) { @@ -75,7 +75,7 @@ return false; } - pglBindProgramARB(target, 0); + glBindProgramARB(target, 0); ogl_WarnIfError(); @@ -121,8 +121,8 @@ { glEnable(GL_VERTEX_PROGRAM_ARB); glEnable(GL_FRAGMENT_PROGRAM_ARB); - pglBindProgramARB(GL_VERTEX_PROGRAM_ARB, m_VertexProgram); - pglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, m_FragmentProgram); + glBindProgramARB(GL_VERTEX_PROGRAM_ARB, m_VertexProgram); + glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, m_FragmentProgram); BindClientStates(); } @@ -131,8 +131,8 @@ { glDisable(GL_VERTEX_PROGRAM_ARB); glDisable(GL_FRAGMENT_PROGRAM_ARB); - pglBindProgramARB(GL_VERTEX_PROGRAM_ARB, 0); - pglBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, 0); + glBindProgramARB(GL_VERTEX_PROGRAM_ARB, 0); + glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, 0); UnbindClientStates(); @@ -173,7 +173,7 @@ { GLuint h; ogl_tex_get_texture_id(tex, &h); - pglActiveTextureARB(GL_TEXTURE0+index); + glActiveTexture(GL_TEXTURE0+index); glBindTexture(fPair.second, h); } } @@ -184,7 +184,7 @@ int index = fPair.first; if (index != -1) { - pglActiveTextureARB(GL_TEXTURE0+index); + glActiveTexture(GL_TEXTURE0+index); glBindTexture(fPair.second, tex); } } @@ -204,28 +204,28 @@ virtual void Uniform(Binding id, float v0, float v1, float v2, float v3) { if (id.first != -1) - pglProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, (GLuint)id.first, v0, v1, v2, v3); + glProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, (GLuint)id.first, v0, v1, v2, v3); if (id.second != -1) - pglProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, (GLuint)id.second, v0, v1, v2, v3); + glProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, (GLuint)id.second, v0, v1, v2, v3); } virtual void Uniform(Binding id, const CMatrix3D& v) { if (id.first != -1) { - pglProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, (GLuint)id.first+0, v._11, v._12, v._13, v._14); - pglProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, (GLuint)id.first+1, v._21, v._22, v._23, v._24); - pglProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, (GLuint)id.first+2, v._31, v._32, v._33, v._34); - pglProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, (GLuint)id.first+3, v._41, v._42, v._43, v._44); + glProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, (GLuint)id.first+0, v._11, v._12, v._13, v._14); + glProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, (GLuint)id.first+1, v._21, v._22, v._23, v._24); + glProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, (GLuint)id.first+2, v._31, v._32, v._33, v._34); + glProgramLocalParameter4fARB(GL_VERTEX_PROGRAM_ARB, (GLuint)id.first+3, v._41, v._42, v._43, v._44); } if (id.second != -1) { - pglProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, (GLuint)id.second+0, v._11, v._12, v._13, v._14); - pglProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, (GLuint)id.second+1, v._21, v._22, v._23, v._24); - pglProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, (GLuint)id.second+2, v._31, v._32, v._33, v._34); - pglProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, (GLuint)id.second+3, v._41, v._42, v._43, v._44); + glProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, (GLuint)id.second+0, v._11, v._12, v._13, v._14); + glProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, (GLuint)id.second+1, v._21, v._22, v._23, v._24); + glProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, (GLuint)id.second+2, v._31, v._32, v._33, v._34); + glProgramLocalParameter4fARB(GL_FRAGMENT_PROGRAM_ARB, (GLuint)id.second+3, v._41, v._42, v._43, v._44); } } @@ -269,16 +269,16 @@ m_VertexAttribs(vertexAttribs) { m_Program = 0; - m_VertexShader = pglCreateShaderObjectARB(GL_VERTEX_SHADER); - m_FragmentShader = pglCreateShaderObjectARB(GL_FRAGMENT_SHADER); + m_VertexShader = glCreateShaderObjectARB(GL_VERTEX_SHADER); + m_FragmentShader = glCreateShaderObjectARB(GL_FRAGMENT_SHADER); } ~CShaderProgramGLSL() { Unload(); - pglDeleteShader(m_VertexShader); - pglDeleteShader(m_FragmentShader); + glDeleteShader(m_VertexShader); + glDeleteShader(m_FragmentShader); } bool Compile(GLhandleARB shader, const VfsPath& file, const CStr& code) @@ -289,15 +289,15 @@ const char* code_string = code.c_str(); GLint code_length = code.length(); - pglShaderSourceARB(shader, 1, &code_string, &code_length); + glShaderSourceARB(shader, 1, &code_string, &code_length); - pglCompileShaderARB(shader); + glCompileShaderARB(shader); GLint ok = 0; - pglGetShaderiv(shader, GL_COMPILE_STATUS, &ok); + glGetShaderiv(shader, GL_COMPILE_STATUS, &ok); GLint length = 0; - pglGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length); + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &length); // Apparently sometimes GL_INFO_LOG_LENGTH is incorrectly reported as 0 // (http://code.google.com/p/android/issues/detail?id=9953) @@ -307,7 +307,7 @@ if (length > 1) { char* infolog = new char[length]; - pglGetShaderInfoLog(shader, length, NULL, infolog); + glGetShaderInfoLog(shader, length, NULL, infolog); if (ok) LOGMESSAGE("Info when compiling shader '%s':\n%s", file.string8(), infolog); @@ -327,26 +327,26 @@ TIMER_ACCRUE(tc_ShaderGLSLLink); ENSURE(!m_Program); - m_Program = pglCreateProgramObjectARB(); + m_Program = glCreateProgramObjectARB(); - pglAttachObjectARB(m_Program, m_VertexShader); + glAttachObjectARB(m_Program, m_VertexShader); ogl_WarnIfError(); - pglAttachObjectARB(m_Program, m_FragmentShader); + glAttachObjectARB(m_Program, m_FragmentShader); ogl_WarnIfError(); // Set up the attribute bindings explicitly, since apparently drivers // don't always pick the most efficient bindings automatically, // and also this lets us hardcode indexes into VertexPointer etc for (std::map::iterator it = m_VertexAttribs.begin(); it != m_VertexAttribs.end(); ++it) - pglBindAttribLocationARB(m_Program, it->second, it->first.c_str()); + glBindAttribLocationARB(m_Program, it->second, it->first.c_str()); - pglLinkProgramARB(m_Program); + glLinkProgramARB(m_Program); GLint ok = 0; - pglGetProgramiv(m_Program, GL_LINK_STATUS, &ok); + glGetProgramiv(m_Program, GL_LINK_STATUS, &ok); GLint length = 0; - pglGetProgramiv(m_Program, GL_INFO_LOG_LENGTH, &length); + glGetProgramiv(m_Program, GL_INFO_LOG_LENGTH, &length); if (!ok && length == 0) length = 4096; @@ -354,7 +354,7 @@ if (length > 1) { char* infolog = new char[length]; - pglGetProgramInfoLog(m_Program, length, NULL, infolog); + glGetProgramInfoLog(m_Program, length, NULL, infolog); if (ok) LOGMESSAGE("Info when linking program '%s'+'%s':\n%s", m_VertexFile.string8(), m_FragmentFile.string8(), infolog); @@ -377,7 +377,7 @@ ogl_WarnIfError(); GLint numUniforms = 0; - pglGetProgramiv(m_Program, GL_ACTIVE_UNIFORMS, &numUniforms); + glGetProgramiv(m_Program, GL_ACTIVE_UNIFORMS, &numUniforms); ogl_WarnIfError(); for (GLint i = 0; i < numUniforms; ++i) { @@ -385,10 +385,10 @@ GLsizei nameLength = 0; GLint size = 0; GLenum type = 0; - pglGetActiveUniformARB(m_Program, i, ARRAY_SIZE(name), &nameLength, &size, &type, name); + glGetActiveUniformARB(m_Program, i, ARRAY_SIZE(name), &nameLength, &size, &type, name); ogl_WarnIfError(); - GLint loc = pglGetUniformLocationARB(m_Program, name); + GLint loc = glGetUniformLocationARB(m_Program, name); CStrIntern nameIntern(name); m_Uniforms[nameIntern] = std::make_pair(loc, type); @@ -404,7 +404,7 @@ int unit = (int)m_Samplers.size(); m_Samplers[nameIntern].first = (type == GL_SAMPLER_CUBE ? GL_TEXTURE_CUBE_MAP : GL_TEXTURE_2D); m_Samplers[nameIntern].second = unit; - pglUniform1iARB(loc, unit); // link uniform to unit + glUniform1iARB(loc, unit); // link uniform to unit ogl_WarnIfError(); } } @@ -473,7 +473,7 @@ m_IsValid = false; if (m_Program) - pglDeleteProgram(m_Program); + glDeleteProgram(m_Program); m_Program = 0; // The shader objects can be reused and don't need to be deleted here @@ -481,18 +481,18 @@ virtual void Bind() { - pglUseProgramObjectARB(m_Program); + glUseProgramObjectARB(m_Program); for (std::map::iterator it = m_VertexAttribs.begin(); it != m_VertexAttribs.end(); ++it) - pglEnableVertexAttribArrayARB(it->second); + glEnableVertexAttribArrayARB(it->second); } virtual void Unbind() { - pglUseProgramObjectARB(0); + glUseProgramObjectARB(0); for (std::map::iterator it = m_VertexAttribs.begin(); it != m_VertexAttribs.end(); ++it) - pglDisableVertexAttribArrayARB(it->second); + glDisableVertexAttribArrayARB(it->second); // TODO: should unbind textures, probably } @@ -514,7 +514,7 @@ GLuint h; ogl_tex_get_texture_id(tex, &h); - pglActiveTextureARB(GL_TEXTURE0 + it->second.second); + glActiveTextureARB(GL_TEXTURE0 + it->second.second); glBindTexture(it->second.first, h); } @@ -524,7 +524,7 @@ if (it == m_Samplers.end()) return; - pglActiveTextureARB(GL_TEXTURE0 + it->second.second); + glActiveTextureARB(GL_TEXTURE0 + it->second.second); glBindTexture(it->second.first, tex); } @@ -535,7 +535,7 @@ GLuint h; ogl_tex_get_texture_id(tex, &h); - pglActiveTextureARB(GL_TEXTURE0 + id.second); + glActiveTextureARB(GL_TEXTURE0 + id.second); glBindTexture(id.first, h); } @@ -553,13 +553,13 @@ if (id.first != -1) { if (id.second == GL_FLOAT) - pglUniform1fARB(id.first, v0); + glUniform1fARB(id.first, v0); else if (id.second == GL_FLOAT_VEC2) - pglUniform2fARB(id.first, v0, v1); + glUniform2fARB(id.first, v0, v1); else if (id.second == GL_FLOAT_VEC3) - pglUniform3fARB(id.first, v0, v1, v2); + glUniform3fARB(id.first, v0, v1, v2); else if (id.second == GL_FLOAT_VEC4) - pglUniform4fARB(id.first, v0, v1, v2, v3); + glUniform4fARB(id.first, v0, v1, v2, v3); else LOGERROR("CShaderProgramGLSL::Uniform(): Invalid uniform type (expected float, vec2, vec3, vec4)"); } @@ -570,7 +570,7 @@ if (id.first != -1) { if (id.second == GL_FLOAT_MAT4) - pglUniformMatrix4fvARB(id.first, 1, GL_FALSE, &v._11); + glUniformMatrix4fvARB(id.first, 1, GL_FALSE, &v._11); else LOGERROR("CShaderProgramGLSL::Uniform(): Invalid uniform type (expected mat4)"); } @@ -581,7 +581,7 @@ if (id.first != -1) { if (id.second == GL_FLOAT_MAT4) - pglUniformMatrix4fvARB(id.first, count, GL_FALSE, &v->_11); + glUniformMatrix4fvARB(id.first, count, GL_FALSE, &v->_11); else LOGERROR("CShaderProgramGLSL::Uniform(): Invalid uniform type (expected mat4)"); } @@ -592,25 +592,25 @@ virtual void VertexPointer(GLint size, GLenum type, GLsizei stride, const void* pointer) { - pglVertexAttribPointerARB(0, size, type, GL_FALSE, stride, pointer); + glVertexAttribPointerARB(0, size, type, GL_FALSE, stride, pointer); m_ValidStreams |= STREAM_POS; } virtual void NormalPointer(GLenum type, GLsizei stride, const void* pointer) { - pglVertexAttribPointerARB(2, 3, type, GL_TRUE, stride, pointer); + glVertexAttribPointerARB(2, 3, type, GL_TRUE, stride, pointer); m_ValidStreams |= STREAM_NORMAL; } virtual void ColorPointer(GLint size, GLenum type, GLsizei stride, const void* pointer) { - pglVertexAttribPointerARB(3, size, type, GL_TRUE, stride, pointer); + glVertexAttribPointerARB(3, size, type, GL_TRUE, stride, pointer); m_ValidStreams |= STREAM_COLOR; } virtual void TexCoordPointer(GLenum texture, GLint size, GLenum type, GLsizei stride, const void* pointer) { - pglVertexAttribPointerARB(8 + texture - GL_TEXTURE0, size, type, GL_FALSE, stride, pointer); + glVertexAttribPointerARB(8 + texture - GL_TEXTURE0, size, type, GL_FALSE, stride, pointer); m_ValidStreams |= STREAM_UV0 << (texture - GL_TEXTURE0); } @@ -619,7 +619,7 @@ std::map::iterator it = m_VertexAttribs.find(id); if (it != m_VertexAttribs.end()) { - pglVertexAttribPointerARB(it->second, size, type, normalized, stride, pointer); + glVertexAttribPointerARB(it->second, size, type, normalized, stride, pointer); } } @@ -631,7 +631,7 @@ #if CONFIG2_GLES debug_warn(L"glVertexAttribIPointer not supported on GLES"); #else - pglVertexAttribIPointerEXT(it->second, size, type, stride, pointer); + glVertexAttribIPointerEXT(it->second, size, type, stride, pointer); #endif } } @@ -829,9 +829,9 @@ void CShaderProgram::TexCoordPointer(GLenum texture, GLint size, GLenum type, GLsizei stride, const void* pointer) { - pglClientActiveTextureARB(texture); + glClientActiveTexture(texture); glTexCoordPointer(size, type, stride, pointer); - pglClientActiveTextureARB(GL_TEXTURE0); + glClientActiveTexture(GL_TEXTURE0); m_ValidStreams |= STREAM_UV0 << (texture - GL_TEXTURE0); } @@ -847,15 +847,15 @@ if (m_StreamFlags & STREAM_UV0) { - pglClientActiveTextureARB(GL_TEXTURE0); + glClientActiveTexture(GL_TEXTURE0); glEnableClientState(GL_TEXTURE_COORD_ARRAY); } if (m_StreamFlags & STREAM_UV1) { - pglClientActiveTextureARB(GL_TEXTURE1); + glClientActiveTexture(GL_TEXTURE1); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - pglClientActiveTextureARB(GL_TEXTURE0); + glClientActiveTexture(GL_TEXTURE0); } // Rendering code must subsequently call VertexPointer etc for all of the streams @@ -872,15 +872,15 @@ if (m_StreamFlags & STREAM_UV0) { - pglClientActiveTextureARB(GL_TEXTURE0); + glClientActiveTexture(GL_TEXTURE0); glDisableClientState(GL_TEXTURE_COORD_ARRAY); } if (m_StreamFlags & STREAM_UV1) { - pglClientActiveTextureARB(GL_TEXTURE1); + glClientActiveTexture(GL_TEXTURE1); glDisableClientState(GL_TEXTURE_COORD_ARRAY); - pglClientActiveTextureARB(GL_TEXTURE0); + glClientActiveTexture(GL_TEXTURE0); } } Index: source/graphics/ShaderProgramFFP.cpp =================================================================== --- source/graphics/ShaderProgramFFP.cpp +++ source/graphics/ShaderProgramFFP.cpp @@ -84,7 +84,7 @@ int index = GetUniformIndex(CStrIntern(id)); if (index != -1) { - pglActiveTextureARB((int)(GL_TEXTURE0+index)); + glActiveTexture((int)(GL_TEXTURE0+index)); glBindTexture(GL_TEXTURE_2D, tex); } } @@ -193,7 +193,7 @@ { if (id.second == ID_losTransform) { - pglActiveTextureARB(GL_TEXTURE2); + glActiveTexture(GL_TEXTURE2); GLfloat texgenS1[4] = { v0, 0, 0, v1 }; GLfloat texgenT1[4] = { 0, 0, v0, v1 }; glTexGenfv(GL_S, GL_OBJECT_PLANE, texgenS1); @@ -202,7 +202,7 @@ else if (id.second == ID_objectColor) { float c[] = { v0, v1, v2, v3 }; - pglActiveTextureARB(GL_TEXTURE1); + glActiveTexture(GL_TEXTURE1); glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, c); } else @@ -227,7 +227,7 @@ // Unit 1: Multiply by objectColor // Unit 2: Pass through - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); @@ -243,7 +243,7 @@ // ----------------------------------------------------------------------------- - pglActiveTextureARB(GL_TEXTURE1); + glActiveTexture(GL_TEXTURE1); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); @@ -268,7 +268,7 @@ // ----------------------------------------------------------------------------- - pglActiveTextureARB(GL_TEXTURE2); + glActiveTexture(GL_TEXTURE2); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); @@ -308,16 +308,16 @@ { UnbindClientStates(); - pglActiveTextureARB(GL_TEXTURE2); + glActiveTexture(GL_TEXTURE2); glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_GEN_S); glDisable(GL_TEXTURE_GEN_T); - pglActiveTextureARB(GL_TEXTURE1); + glActiveTexture(GL_TEXTURE1); glDisable(GL_TEXTURE_2D); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glDisable(GL_TEXTURE_2D); } }; @@ -364,7 +364,7 @@ glMatrixMode(GL_MODELVIEW); glPushMatrix(); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); @@ -375,7 +375,7 @@ { UnbindClientStates(); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glDisable(GL_TEXTURE_2D); glMatrixMode(GL_PROJECTION); @@ -509,7 +509,7 @@ // Setup texture environment if (m_Defines.GetInt("MINIMAP_BASE")) { - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); @@ -517,7 +517,7 @@ } else if (m_Defines.GetInt("MINIMAP_LOS")) { - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); @@ -530,7 +530,7 @@ } else if (m_Defines.GetInt("MINIMAP_POINT")) { - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glDisable(GL_TEXTURE_2D); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); @@ -547,7 +547,7 @@ // Reset texture environment if (m_Defines.GetInt("MINIMAP_POINT")) { - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_COLOR_ARRAY); @@ -581,14 +581,14 @@ { CShaderProgramFFP_Gui_Base::Bind(); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); } virtual void Unbind() { - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glDisable(GL_TEXTURE_2D); CShaderProgramFFP_Gui_Base::Unbind(); @@ -615,7 +615,7 @@ { CShaderProgramFFP_Gui_Base::Bind(); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); @@ -638,7 +638,7 @@ { glColor4f(1.f, 1.f, 1.f, 1.f); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glDisable(GL_TEXTURE_2D); CShaderProgramFFP_Gui_Base::Unbind(); @@ -698,7 +698,7 @@ static const float GreyscaleInterpColor0[4] = { 1.0f, 1.0f, 1.0f, 1.0f }; static const float GreyscaleInterpColor1[4] = { 0.5f, 0.5f, 0.5f, 1.0f }; - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); @@ -721,7 +721,7 @@ glColor4fv(GreyscaleInterpColor1); - pglActiveTextureARB(GL_TEXTURE1); + glActiveTexture(GL_TEXTURE1); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); @@ -758,10 +758,10 @@ { glColor4f(1.f, 1.f, 1.f, 1.f); - pglActiveTextureARB(GL_TEXTURE1); + glActiveTexture(GL_TEXTURE1); glDisable(GL_TEXTURE_2D); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glDisable(GL_TEXTURE_2D); CShaderProgramFFP_Gui_Base::Unbind(); @@ -788,7 +788,7 @@ { CShaderProgramFFP_Gui_Base::Bind(); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glDisable(GL_TEXTURE_2D); } }; @@ -842,7 +842,7 @@ { if (id.second == ID_losTransform) { - pglActiveTextureARB(GL_TEXTURE3); + glActiveTexture(GL_TEXTURE3); GLfloat texgenS1[4] = { v0, 0, 0, v1 }; GLfloat texgenT1[4] = { 0, 0, v0, v1 }; glTexGenfv(GL_S, GL_OBJECT_PLANE, texgenS1); @@ -860,7 +860,7 @@ // ----------------------------------------------------------------------------- - pglActiveTextureARB(GL_TEXTURE3); + glActiveTexture(GL_TEXTURE3); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); @@ -901,13 +901,13 @@ { UnbindClientStates(); - pglActiveTextureARB(GL_TEXTURE3); + glActiveTexture(GL_TEXTURE3); glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_GEN_S); glDisable(GL_TEXTURE_GEN_T); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glMatrixMode(GL_PROJECTION); glPopMatrix(); @@ -930,7 +930,7 @@ virtual void Bind() { // Set up texture environment for base pass - modulate texture and vertex color - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE); @@ -956,7 +956,7 @@ { CShaderProgramFFP_Model_Base::Unbind(); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); // Revert the scaling to default float scale1[] = { 1.0f, 1.0f, 1.0f }; @@ -996,7 +996,7 @@ // Result = (1 - ((1 - PlayerColor) * (1 - Texture.a)))*Texture*Color // TexEnv #0 - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE); @@ -1010,7 +1010,7 @@ glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA); // TexEnv #1 - pglActiveTextureARB(GL_TEXTURE1); + glActiveTexture(GL_TEXTURE1); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE); @@ -1025,7 +1025,7 @@ glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA); // TexEnv #2 - pglActiveTextureARB(GL_TEXTURE2); + glActiveTexture(GL_TEXTURE2); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_MODULATE); @@ -1058,16 +1058,16 @@ { CShaderProgramFFP_Model_Base::Unbind(); - pglActiveTextureARB(GL_TEXTURE2); + glActiveTexture(GL_TEXTURE2); glDisable(GL_TEXTURE_2D); float scale[] = { 1.0f, 1.0f, 1.0f }; glTexEnvfv(GL_TEXTURE_ENV, GL_RGB_SCALE, scale); - pglActiveTextureARB(GL_TEXTURE1); + glActiveTexture(GL_TEXTURE1); glDisable(GL_TEXTURE_2D); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); } }; @@ -1096,7 +1096,7 @@ float color[] = { 1.0f, 1.0f, 1.0f, 1.0f }; glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, color); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_REPLACE); @@ -1123,7 +1123,7 @@ virtual void Bind() { - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); Index: source/lib/external_libraries/glext_funcs.h =================================================================== --- source/lib/external_libraries/glext_funcs.h +++ source/lib/external_libraries/glext_funcs.h @@ -38,391 +38,3 @@ # include #endif -/* - -FUNC is used for functions that are only extensions. -FUNC2 is used for functions that have been promoted to core features. -FUNC3 is used for functions that have been promoted to core features -but have slightly changed semantics and need to be referred to by their -core name instead of extension name. - -The FUNC2/FUNC3 calls include the version of OpenGL in which the extension was promoted, -and the pre- and post-promotion names (e.g. "glBindBufferARB" vs "glBindBuffer"). - -If the GL driver is advertising a sufficiently high version, we load the promoted -name; otherwise we use the *ARB name. (The spec says: - "GL implementations of such later revisions should continue to export the name - strings of promoted extensions in the EXTENSIONS string, and continue to support - the ARB-affixed versions of functions and enumerants as a transition aid." -but some drivers might be stupid/buggy and fail to do that, so we don't just use -the ARB names unconditionally.) - -The names are made accessible to engine code only via the ARB name, to make it -obvious that care must be taken (i.e. by being certain that the extension is -actually supported). - -*/ - -#if CONFIG2_GLES - -// some functions that are extensions in GL are core functions in GLES, -// so we should use them without the function pointer indirection -#define pglActiveTextureARB glActiveTexture -#define pglBlendColorEXT glBlendColor -#define pglBlendEquationEXT glBlendEquation -#define pglClientActiveTextureARB glClientActiveTexture -#define pglCompressedTexImage2DARB glCompressedTexImage2D - -#define pglAttachObjectARB glAttachShader -#define pglBindAttribLocationARB glBindAttribLocation -#define pglCompileShaderARB glCompileShader -#define pglCreateProgramObjectARB glCreateProgram -#define pglCreateShaderObjectARB glCreateShader -#define pglDeleteProgram glDeleteProgram -#define pglDeleteShader glDeleteShader -#define pglDisableVertexAttribArrayARB glDisableVertexAttribArray -#define pglEnableVertexAttribArrayARB glEnableVertexAttribArray -#define pglGetActiveUniformARB glGetActiveUniform -#define pglGetProgramiv glGetProgramiv -#define pglGetProgramInfoLog glGetProgramInfoLog -#define pglGetShaderiv glGetShaderiv -#define pglGetShaderInfoLog glGetShaderInfoLog -#define pglGetUniformLocationARB glGetUniformLocation -#define pglLinkProgramARB glLinkProgram -#define pglShaderSourceARB glShaderSource -#define pglUniform1fARB glUniform1f -#define pglUniform2fARB glUniform2f -#define pglUniform3fARB glUniform3f -#define pglUniform4fARB glUniform4f -#define pglUniform1iARB glUniform1i -#define pglUniformMatrix4fvARB glUniformMatrix4fv -#define pglUseProgramObjectARB glUseProgram -#define pglVertexAttribPointerARB glVertexAttribPointer - -#define pglBindBufferARB glBindBuffer -#define pglBufferDataARB glBufferData -#define pglBufferSubDataARB glBufferSubData -#define pglDeleteBuffersARB glDeleteBuffers -#define pglGenBuffersARB glGenBuffers - -// Those EXT symbols don’t exist in GLES 2.0, since it imported the ARB version instead. -#define pglBindFramebufferEXT glBindFramebuffer -#define pglCheckFramebufferStatusEXT glCheckFramebufferStatus -#define pglDeleteFramebuffersEXT glDeleteFramebuffers -#define pglFramebufferTexture2DEXT glFramebufferTexture2D -#define pglGenFramebuffersEXT glGenFramebuffers -#define GL_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING -#define GL_FRAMEBUFFER_COMPLETE_EXT GL_FRAMEBUFFER_COMPLETE -#define GL_FRAMEBUFFER_EXT GL_FRAMEBUFFER - -// Those should come from GLES 2.0 core, not from GL_EXT_draw_buffers. -#ifndef GL_COLOR_ATTACHMENT0_EXT -#define GL_COLOR_ATTACHMENT0_EXT GL_COLOR_ATTACHMENT0 -#define GL_COLOR_ATTACHMENT1_EXT GL_COLOR_ATTACHMENT1 -#endif -#ifndef GL_DEPTH_ATTACHMENT_EXT -#define GL_DEPTH_ATTACHMENT_EXT GL_DEPTH_ATTACHMENT -#endif - -// GL_OES_mapbuffer -FUNC(GLvoid*, glMapBufferOES, (GLenum target, GLenum access)) -FUNC(GLboolean, glUnmapBufferOES, (GLenum target)) -#define pglMapBufferARB pglMapBufferOES -#define pglUnmapBufferARB pglUnmapBufferOES -#define GL_WRITE_ONLY GL_WRITE_ONLY_OES - -// GL_OES_texture_border_clamp -#define GL_CLAMP_TO_BORDER GL_CLAMP_TO_EDGE - -// GL_OES_rgb8_rgba8 -#define GL_RGBA8 GL_RGBA8_OES - -// GL_OES_depth32 -#define GL_DEPTH_COMPONENT32 GL_DEPTH_COMPONENT32_OES - -typedef GLuint GLhandleARB; - -#else - -// were these defined as real functions in gl.h already? - -// GL_EXT_draw_range_elements / GL1.2: -FUNC2(void, glDrawRangeElementsEXT, glDrawRangeElements, "1.2", (GLenum, GLuint, GLuint, GLsizei, GLenum, GLvoid*)) - -// GL_ARB_multitexture / GL1.3: -FUNC2(void, glMultiTexCoord2fARB, glMultiTexCoord2f, "1.3", (int, float, float)) -FUNC2(void, glMultiTexCoord3fARB, glMultiTexCoord3f, "1.3", (int, float, float, float)) -FUNC2(void, glActiveTextureARB, glActiveTexture, "1.3", (int)) -FUNC2(void, glClientActiveTextureARB, glClientActiveTexture, "1.3", (int)) - -// GL_EXT_blend_color / GL1.4 (optional in 1.2): -FUNC2(void, glBlendColorEXT, glBlendColor, "1.4", (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)) - -// GL_EXT_blend_minmax / GL1.4 (optional in 1.2): -FUNC2(void, glBlendEquationEXT, glBlendEquation, "1.4", (GLenum mode)) - -// GL_ARB_vertex_buffer_object / GL1.5: -FUNC2(void, glBindBufferARB, glBindBuffer, "1.5", (int target, GLuint buffer)) -FUNC2(void, glDeleteBuffersARB, glDeleteBuffers, "1.5", (GLsizei n, const GLuint* buffers)) -FUNC2(void, glGenBuffersARB, glGenBuffers, "1.5", (GLsizei n, GLuint* buffers)) -FUNC2(bool, glIsBufferARB, glIsBuffer, "1.5", (GLuint buffer)) -FUNC2(void, glBufferDataARB, glBufferData, "1.5", (int target, GLsizeiptrARB size, const void* data, int usage)) -FUNC2(void, glBufferSubDataARB, glBufferSubData, "1.5", (int target, GLintptrARB offset, GLsizeiptrARB size, const void* data)) -FUNC2(void, glGetBufferSubDataARB, glGetBufferSubData, "1.5", (int target, GLintptrARB offset, GLsizeiptrARB size, void* data)) -FUNC2(void*, glMapBufferARB, glMapBuffer, "1.5", (int target, int access)) -FUNC2(bool, glUnmapBufferARB, glUnmapBuffer, "1.5", (int target)) -FUNC2(void, glGetBufferParameterivARB, glGetBufferParameteriv, "1.5", (int target, int pname, int* params)) -FUNC2(void, glGetBufferPointervARB, glGetBufferPointerv, "1.5", (int target, int pname, void** params)) - -// GL_ARB_texture_compression / GL1.3 -FUNC2(void, glCompressedTexImage3DARB, glCompressedTexImage3D, "1.3", (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*)) -FUNC2(void, glCompressedTexImage2DARB, glCompressedTexImage2D, "1.3", (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*)) -FUNC2(void, glCompressedTexImage1DARB, glCompressedTexImage1D, "1.3", (GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid*)) -FUNC2(void, glCompressedTexSubImage3DARB, glCompressedTexSubImage3D, "1.3", (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*)) -FUNC2(void, glCompressedTexSubImage2DARB, glCompressedTexSubImage2D, "1.3", (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*)) -FUNC2(void, glCompressedTexSubImage1DARB, glCompressedTexSubImage1D, "1.3", (GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid*)) -FUNC2(void, glGetCompressedTexImageARB, glGetCompressedTexImage, "1.3", (GLenum, GLint, GLvoid*)) - -// GL_EXT_framebuffer_object -FUNC(GLboolean, glIsRenderbufferEXT, (GLuint renderbuffer)) -FUNC(void, glBindRenderbufferEXT, (GLenum target, GLuint renderbuffer)) -FUNC(void, glDeleteRenderbuffersEXT, (GLsizei n, const GLuint *renderbuffers)) -FUNC(void, glGenRenderbuffersEXT, (GLsizei n, GLuint *renderbuffers)) -FUNC(void, glRenderbufferStorageEXT, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height)) -FUNC(void, glGetRenderbufferParameterivEXT, (GLenum target, GLenum pname, GLint *params)) -FUNC(GLboolean, glIsFramebufferEXT, (GLuint framebuffer)) -FUNC(void, glBindFramebufferEXT, (GLenum target, GLuint framebuffer)) -FUNC(void, glDeleteFramebuffersEXT, (GLsizei n, const GLuint *framebuffers)) -FUNC(void, glGenFramebuffersEXT, (GLsizei n, GLuint *framebuffers)) -FUNC(GLenum, glCheckFramebufferStatusEXT, (GLenum target)) -FUNC(void, glFramebufferTexture1DEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) -FUNC(void, glFramebufferTexture2DEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)) -FUNC(void, glFramebufferTexture3DEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)) -FUNC(void, glFramebufferRenderbufferEXT, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)) -FUNC(void, glGetFramebufferAttachmentParameterivEXT, (GLenum target, GLenum attachment, GLenum pname, GLint *params)) -FUNC(void, glGenerateMipmapEXT, (GLenum target)) -FUNC(void, glBlitFramebufferEXT, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)) -FUNC(void, glDrawBuffers, (GLsizei n, const GLenum *bufs)) - -// GL_ARB_vertex_program, GL_ARB_fragment_program -FUNC(void, glProgramStringARB, (GLenum target, GLenum format, GLsizei len, const GLvoid *string)) -FUNC(void, glBindProgramARB, (GLenum target, GLuint program)) -FUNC(void, glDeleteProgramsARB, (GLsizei n, const GLuint *programs)) -FUNC(void, glGenProgramsARB, (GLsizei n, GLuint *programs)) -FUNC(void, glProgramEnvParameter4dARB, (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) -FUNC(void, glProgramEnvParameter4dvARB, (GLenum target, GLuint index, const GLdouble *params)) -FUNC(void, glProgramEnvParameter4fARB, (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) -FUNC(void, glProgramEnvParameter4fvARB, (GLenum target, GLuint index, const GLfloat *params)) -FUNC(void, glProgramLocalParameter4dARB, (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)) -FUNC(void, glProgramLocalParameter4dvARB, (GLenum target, GLuint index, const GLdouble *params)) -FUNC(void, glProgramLocalParameter4fARB, (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)) -FUNC(void, glProgramLocalParameter4fvARB, (GLenum target, GLuint index, const GLfloat *params)) -FUNC(void, glGetProgramEnvParameterdvARB, (GLenum target, GLuint index, GLdouble *params)) -FUNC(void, glGetProgramEnvParameterfvARB, (GLenum target, GLuint index, GLfloat *params)) -FUNC(void, glGetProgramLocalParameterdvARB, (GLenum target, GLuint index, GLdouble *params)) -FUNC(void, glGetProgramLocalParameterfvARB, (GLenum target, GLuint index, GLfloat *params)) -FUNC(void, glGetProgramivARB, (GLenum target, GLenum pname, GLint *params)) -FUNC(void, glGetProgramStringARB, (GLenum target, GLenum pname, GLvoid *string)) -FUNC(GLboolean, glIsProgramARB, (GLuint program)) - -// GL_ARB_shader_objects -// (NOTE: Many of these have "Object" in their ARB names, but "Program" or "Shader" in their core names. -// When both Program and Shader versions exist, we use FUNC3 here and the engine must call the specific -// core name instead of the generic ARB name.) -FUNC3(void, glDeleteObjectARB, glDeleteShader, "2.0", (GLhandleARB obj)) -FUNC3(void, glDeleteObjectARB, glDeleteProgram, "2.0", (GLhandleARB obj)) -// FUNC2(GLhandleARB, glGetHandleARB, glGetHandle, "2.0", (GLenum pname)) - // there is no analog to the ARB function in GL 2.0 (the functionality is probably moved into glGetIntegerv(GL_CURRENT_PROGRAM)) - // so we can't represent it in this FUNC2 system, so just pretend it doesn't exist -FUNC2(void, glDetachObjectARB, glDetachShader, "2.0", (GLhandleARB containerObj, GLhandleARB attachedObj)) -FUNC2(GLhandleARB, glCreateShaderObjectARB, glCreateShader, "2.0", (GLenum shaderType)) -FUNC2(void, glShaderSourceARB, glShaderSource, "2.0", (GLhandleARB shaderObj, GLsizei count, const char **string, const GLint *length)) -FUNC2(void, glCompileShaderARB, glCompileShader, "2.0", (GLhandleARB shaderObj)) -FUNC2(GLhandleARB, glCreateProgramObjectARB, glCreateProgram, "2.0", (void)) -FUNC2(void, glAttachObjectARB, glAttachShader, "2.0", (GLhandleARB containerObj, GLhandleARB obj)) -FUNC2(void, glLinkProgramARB, glLinkProgram, "2.0", (GLhandleARB programObj)) -FUNC2(void, glUseProgramObjectARB, glUseProgram, "2.0", (GLhandleARB programObj)) -FUNC2(void, glValidateProgramARB, glValidateProgram, "2.0", (GLhandleARB programObj)) -FUNC2(void, glUniform1fARB, glUniform1f, "2.0", (GLint location, GLfloat v0)) -FUNC2(void, glUniform2fARB, glUniform2f, "2.0", (GLint location, GLfloat v0, GLfloat v1)) -FUNC2(void, glUniform3fARB, glUniform3f, "2.0", (GLint location, GLfloat v0, GLfloat v1, GLfloat v2)) -FUNC2(void, glUniform4fARB, glUniform4f, "2.0", (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) -FUNC2(void, glUniform1iARB, glUniform1i, "2.0", (GLint location, GLint v0)) -FUNC2(void, glUniform2iARB, glUniform2i, "2.0", (GLint location, GLint v0, GLint v1)) -FUNC2(void, glUniform3iARB, glUniform3i, "2.0", (GLint location, GLint v0, GLint v1, GLint v2)) -FUNC2(void, glUniform4iARB, glUniform4i, "2.0", (GLint location, GLint v0, GLint v1, GLint v2, GLint v3)) -FUNC2(void, glUniform1fvARB, glUniform1fv, "2.0", (GLint location, GLsizei count, const GLfloat *value)) -FUNC2(void, glUniform2fvARB, glUniform2fv, "2.0", (GLint location, GLsizei count, const GLfloat *value)) -FUNC2(void, glUniform3fvARB, glUniform3fv, "2.0", (GLint location, GLsizei count, const GLfloat *value)) -FUNC2(void, glUniform4fvARB, glUniform4fv, "2.0", (GLint location, GLsizei count, const GLfloat *value)) -FUNC2(void, glUniform1ivARB, glUniform1iv, "2.0", (GLint location, GLsizei count, const GLint *value)) -FUNC2(void, glUniform2ivARB, glUniform2iv, "2.0", (GLint location, GLsizei count, const GLint *value)) -FUNC2(void, glUniform3ivARB, glUniform3iv, "2.0", (GLint location, GLsizei count, const GLint *value)) -FUNC2(void, glUniform4ivARB, glUniform4iv, "2.0", (GLint location, GLsizei count, const GLint *value)) -FUNC2(void, glUniformMatrix2fvARB, glUniformMatrix2fv, "2.0", (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) -FUNC2(void, glUniformMatrix3fvARB, glUniformMatrix3fv, "2.0", (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) -FUNC2(void, glUniformMatrix4fvARB, glUniformMatrix4fv, "2.0", (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)) -FUNC3(void, glGetObjectParameterfvARB, glGetProgramfv, "2.0", (GLhandleARB obj, GLenum pname, GLfloat *params)) -FUNC3(void, glGetObjectParameterfvARB, glGetShaderfv, "2.0", (GLhandleARB obj, GLenum pname, GLfloat *params)) -FUNC3(void, glGetObjectParameterivARB, glGetProgramiv, "2.0", (GLhandleARB obj, GLenum pname, GLint *params)) -FUNC3(void, glGetObjectParameterivARB, glGetShaderiv, "2.0", (GLhandleARB obj, GLenum pname, GLint *params)) -FUNC3(void, glGetInfoLogARB, glGetProgramInfoLog, "2.0", (GLhandleARB obj, GLsizei maxLength, GLsizei *length, char *infoLog)) -FUNC3(void, glGetInfoLogARB, glGetShaderInfoLog, "2.0", (GLhandleARB obj, GLsizei maxLength, GLsizei *length, char *infoLog)) -FUNC2(void, glGetAttachedObjectsARB, glGetAttachedShaders, "2.0", (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj)) -FUNC2(GLint, glGetUniformLocationARB, glGetUniformLocation, "2.0", (GLhandleARB programObj, const char *name)) -FUNC2(void, glGetActiveUniformARB, glGetActiveUniform, "2.0", (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, char *name)) -FUNC2(void, glGetUniformfvARB, glGetUniformfv, "2.0", (GLhandleARB programObj, GLint location, GLfloat *params)) -FUNC2(void, glGetUniformivARB, glGetUniformiv, "2.0", (GLhandleARB programObj, GLint location, GLint *params)) -FUNC2(void, glGetShaderSourceARB, glGetShaderSource, "2.0", (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source)) - -// GL_ARB_vertex_shader -FUNC2(void, glVertexAttrib1fARB, glVertexAttrib1f, "2.0", (GLuint index, GLfloat v0)) -FUNC2(void, glVertexAttrib1sARB, glVertexAttrib1s, "2.0", (GLuint index, GLshort v0)) -FUNC2(void, glVertexAttrib1dARB, glVertexAttrib1d, "2.0", (GLuint index, GLdouble v0)) -FUNC2(void, glVertexAttrib2fARB, glVertexAttrib2f, "2.0", (GLuint index, GLfloat v0, GLfloat v1)) -FUNC2(void, glVertexAttrib2sARB, glVertexAttrib2s, "2.0", (GLuint index, GLshort v0, GLshort v1)) -FUNC2(void, glVertexAttrib2dARB, glVertexAttrib2d, "2.0", (GLuint index, GLdouble v0, GLdouble v1)) -FUNC2(void, glVertexAttrib3fARB, glVertexAttrib3f, "2.0", (GLuint index, GLfloat v0, GLfloat v1, GLfloat v2)) -FUNC2(void, glVertexAttrib3sARB, glVertexAttrib3s, "2.0", (GLuint index, GLshort v0, GLshort v1, GLshort v2)) -FUNC2(void, glVertexAttrib3dARB, glVertexAttrib3d, "2.0", (GLuint index, GLdouble v0, GLdouble v1, GLdouble v2)) -FUNC2(void, glVertexAttrib4fARB, glVertexAttrib4f, "2.0", (GLuint index, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)) -FUNC2(void, glVertexAttrib4sARB, glVertexAttrib4s, "2.0", (GLuint index, GLshort v0, GLshort v1, GLshort v2, GLshort v3)) -FUNC2(void, glVertexAttrib4dARB, glVertexAttrib4d, "2.0", (GLuint index, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)) -FUNC2(void, glVertexAttrib4NubARB, glVertexAttrib4Nub, "2.0", (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)) -FUNC2(void, glVertexAttrib1fvARB, glVertexAttrib1fv, "2.0", (GLuint index, const GLfloat *v)) -FUNC2(void, glVertexAttrib1svARB, glVertexAttrib1sv, "2.0", (GLuint index, const GLshort *v)) -FUNC2(void, glVertexAttrib1dvARB, glVertexAttrib1dv, "2.0", (GLuint index, const GLdouble *v)) -FUNC2(void, glVertexAttrib2fvARB, glVertexAttrib2fv, "2.0", (GLuint index, const GLfloat *v)) -FUNC2(void, glVertexAttrib2svARB, glVertexAttrib2sv, "2.0", (GLuint index, const GLshort *v)) -FUNC2(void, glVertexAttrib2dvARB, glVertexAttrib2dv, "2.0", (GLuint index, const GLdouble *v)) -FUNC2(void, glVertexAttrib3fvARB, glVertexAttrib3fv, "2.0", (GLuint index, const GLfloat *v)) -FUNC2(void, glVertexAttrib3svARB, glVertexAttrib3sv, "2.0", (GLuint index, const GLshort *v)) -FUNC2(void, glVertexAttrib3dvARB, glVertexAttrib3dv, "2.0", (GLuint index, const GLdouble *v)) -FUNC2(void, glVertexAttrib4fvARB, glVertexAttrib4fv, "2.0", (GLuint index, const GLfloat *v)) -FUNC2(void, glVertexAttrib4svARB, glVertexAttrib4sv, "2.0", (GLuint index, const GLshort *v)) -FUNC2(void, glVertexAttrib4dvARB, glVertexAttrib4dv, "2.0", (GLuint index, const GLdouble *v)) -FUNC2(void, glVertexAttrib4ivARB, glVertexAttrib4iv, "2.0", (GLuint index, const GLint *v)) -FUNC2(void, glVertexAttrib4bvARB, glVertexAttrib4bv, "2.0", (GLuint index, const GLbyte *v)) -FUNC2(void, glVertexAttrib4ubvARB, glVertexAttrib4ubv, "2.0", (GLuint index, const GLubyte *v)) -FUNC2(void, glVertexAttrib4usvARB, glVertexAttrib4usv, "2.0", (GLuint index, const GLushort *v)) -FUNC2(void, glVertexAttrib4uivARB, glVertexAttrib4uiv, "2.0", (GLuint index, const GLuint *v)) -FUNC2(void, glVertexAttrib4NbvARB, glVertexAttrib4Nbv, "2.0", (GLuint index, const GLbyte *v)) -FUNC2(void, glVertexAttrib4NsvARB, glVertexAttrib4Nsv, "2.0", (GLuint index, const GLshort *v)) -FUNC2(void, glVertexAttrib4NivARB, glVertexAttrib4Niv, "2.0", (GLuint index, const GLint *v)) -FUNC2(void, glVertexAttrib4NubvARB, glVertexAttrib4Nubv, "2.0", (GLuint index, const GLubyte *v)) -FUNC2(void, glVertexAttrib4NusvARB, glVertexAttrib4Nusv, "2.0", (GLuint index, const GLushort *v)) -FUNC2(void, glVertexAttrib4NuivARB, glVertexAttrib4Nuiv, "2.0", (GLuint index, const GLuint *v)) -FUNC2(void, glVertexAttribPointerARB, glVertexAttribPointer, "2.0", (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)) -FUNC2(void, glEnableVertexAttribArrayARB, glEnableVertexAttribArray, "2.0", (GLuint index)) -FUNC2(void, glDisableVertexAttribArrayARB, glDisableVertexAttribArray, "2.0", (GLuint index)) -FUNC2(void, glBindAttribLocationARB, glBindAttribLocation, "2.0", (GLhandleARB programObj, GLuint index, const char *name)) -FUNC2(void, glGetActiveAttribARB, glGetActiveAttrib, "2.0", (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, int *size, GLenum *type, char *name)) -FUNC2(GLint, glGetAttribLocationARB, glGetAttribLocation, "2.0", (GLhandleARB programObj, const char *name)) -FUNC2(void, glGetVertexAttribdvARB, glGetVertexAttribdv, "2.0", (GLuint index, GLenum pname, GLdouble *params)) -FUNC2(void, glGetVertexAttribfvARB, glGetVertexAttribfv, "2.0", (GLuint index, GLenum pname, GLfloat *params)) -FUNC2(void, glGetVertexAttribivARB, glGetVertexAttribiv, "2.0", (GLuint index, GLenum pname, GLint *params)) -FUNC2(void, glGetVertexAttribPointervARB, glGetVertexAttribPointerv, "2.0", (GLuint index, GLenum pname, void **pointer)) - -// GL_EXT_gpu_shader4 / GL3.0: -FUNC2(void, glVertexAttribI1iEXT, glVertexAttribI1i, "3.0", (GLuint index, GLint x)) -FUNC2(void, glVertexAttribI2iEXT, glVertexAttribI2i, "3.0", (GLuint index, GLint x, GLint y)) -FUNC2(void, glVertexAttribI3iEXT, glVertexAttribI3i, "3.0", (GLuint index, GLint x, GLint y, GLint z)) -FUNC2(void, glVertexAttribI4iEXT, glVertexAttribI4i, "3.0", (GLuint index, GLint x, GLint y, GLint z, GLint w)) -FUNC2(void, glVertexAttribI1uiEXT, glVertexAttribI1ui, "3.0", (GLuint index, GLuint x)) -FUNC2(void, glVertexAttribI2uiEXT, glVertexAttribI2ui, "3.0", (GLuint index, GLuint x, GLuint y)) -FUNC2(void, glVertexAttribI3uiEXT, glVertexAttribI3ui, "3.0", (GLuint index, GLuint x, GLuint y, GLuint z)) -FUNC2(void, glVertexAttribI4uiEXT, glVertexAttribI4ui, "3.0", (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)) -FUNC2(void, glVertexAttribI1ivEXT, glVertexAttribI1iv, "3.0", (GLuint index, const GLint *v)) -FUNC2(void, glVertexAttribI2ivEXT, glVertexAttribI2iv, "3.0", (GLuint index, const GLint *v)) -FUNC2(void, glVertexAttribI3ivEXT, glVertexAttribI3iv, "3.0", (GLuint index, const GLint *v)) -FUNC2(void, glVertexAttribI4ivEXT, glVertexAttribI4iv, "3.0", (GLuint index, const GLint *v)) -FUNC2(void, glVertexAttribI1uivEXT, glVertexAttribI1uiv, "3.0", (GLuint index, const GLuint *v)) -FUNC2(void, glVertexAttribI2uivEXT, glVertexAttribI2uiv, "3.0", (GLuint index, const GLuint *v)) -FUNC2(void, glVertexAttribI3uivEXT, glVertexAttribI3uiv, "3.0", (GLuint index, const GLuint *v)) -FUNC2(void, glVertexAttribI4uivEXT, glVertexAttribI4uiv, "3.0", (GLuint index, const GLuint *v)) -FUNC2(void, glVertexAttribI4bvEXT, glVertexAttribI4bv, "3.0", (GLuint index, const GLbyte *v)) -FUNC2(void, glVertexAttribI4svEXT, glVertexAttribI4sv, "3.0", (GLuint index, const GLshort *v)) -FUNC2(void, glVertexAttribI4ubvEXT, glVertexAttribI4ubv, "3.0", (GLuint index, const GLubyte *v)) -FUNC2(void, glVertexAttribI4usvEXT, glVertexAttribI4usv, "3.0", (GLuint index, const GLushort *v)) -FUNC2(void, glVertexAttribIPointerEXT, glVertexAttribIPointer, "3.0", (GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)) -FUNC2(void, glGetVertexAttribIivEXT, glGetVertexAttribIiv, "3.0", (GLuint index, GLenum pname, GLint *params)) -FUNC2(void, glGetVertexAttribIuivEXT, glGetVertexAttribIuiv, "3.0", (GLuint index, GLenum pname, GLuint *params)) -FUNC2(void, glUniform1uiEXT, glUniform1ui, "3.0", (GLint location, GLuint v0)) -FUNC2(void, glUniform2uiEXT, glUniform2ui, "3.0", (GLint location, GLuint v0, GLuint v1)) -FUNC2(void, glUniform3uiEXT, glUniform3ui, "3.0", (GLint location, GLuint v0, GLuint v1, GLuint v2)) -FUNC2(void, glUniform4uiEXT, glUniform4ui, "3.0", (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)) -FUNC2(void, glUniform1uivEXT, glUniform1uiv, "3.0", (GLint location, GLsizei count, const GLuint *value)) -FUNC2(void, glUniform2uivEXT, glUniform2uiv, "3.0", (GLint location, GLsizei count, const GLuint *value)) -FUNC2(void, glUniform3uivEXT, glUniform3uiv, "3.0", (GLint location, GLsizei count, const GLuint *value)) -FUNC2(void, glUniform4uivEXT, glUniform4uiv, "3.0", (GLint location, GLsizei count, const GLuint *value)) -FUNC2(void, glGetUniformuivEXT, glGetUniformuiv, "3.0", (GLuint program, GLint location, GLuint *params)) -FUNC2(void, glBindFragDataLocationEXT, glBindFragDataLocation, "3.0", (GLuint program, GLuint colorNumber, const char *name)) -FUNC2(GLint, glGetFragDataLocationEXT, glGetFragDataLocation, "3.0", (GLuint program, const char *name)) - -// GL_ARB_occlusion_query / GL1.5: -FUNC2(void, glGenQueriesARB, glGenQueries, "1.5", (GLsizei n, GLuint *ids)) -FUNC2(void, glDeleteQueriesARB, glDeleteQueries, "1.5", (GLsizei n, const GLuint *ids)) -FUNC2(GLboolean, glIsQueryARB, glIsQuery, "1.5", (GLuint id)) -FUNC2(void, glBeginQueryARB, glBeginQuery, "1.5", (GLenum target, GLuint id)) -FUNC2(void, glEndQueryARB, glEndQuery, "1.5", (GLenum target)) -FUNC2(void, glGetQueryivARB, glGetQueryiv, "1.5", (GLenum target, GLenum pname, GLint *params)) -FUNC2(void, glGetQueryObjectivARB, glGetQueryObjectiv, "1.5", (GLuint id, GLenum pname, GLint *params)) -FUNC2(void, glGetQueryObjectuivARB, glGetQueryObjectuiv, "1.5", (GLuint id, GLenum pname, GLuint *params)) - -// GL_ARB_sync / GL3.2: -FUNC2(void, glGetInteger64v, glGetInteger64v, "3.2", (GLenum pname, GLint64 *params)) - -// GL_EXT_timer_query: -FUNC(void, glGetQueryObjecti64vEXT, (GLuint id, GLenum pname, GLint64 *params)) -FUNC(void, glGetQueryObjectui64vEXT, (GLuint id, GLenum pname, GLuint64 *params)) - -// GL_ARB_timer_query / GL3.3: -FUNC2(void, glQueryCounter, glQueryCounter, "3.3", (GLuint id, GLenum target)) -FUNC2(void, glGetQueryObjecti64v, glGetQueryObjecti64v, "3.3", (GLuint id, GLenum pname, GLint64 *params)) -FUNC2(void, glGetQueryObjectui64v, glGetQueryObjectui64v, "3.3", (GLuint id, GLenum pname, GLuint64 *params)) - -// GL_ARB_map_buffer_range / GL3.0: -FUNC2(void*, glMapBufferRange, glMapBufferRange, "3.0", (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)) -FUNC2(void, glFlushMappedBufferRange, glFlushMappedBufferRange, "3.0", (GLenum target, GLintptr offset, GLsizeiptr length)) - -// GL_GREMEDY_string_marker (from gDEBugger) -FUNC(int, glStringMarkerGREMEDY, (GLsizei len, const GLvoid *string)) - -// GL_INTEL_performance_queries (undocumented, may be unstable, use at own risk; -// see http://zaynar.co.uk/docs/gl-intel-performance-queries.html) -FUNC(void, glGetFirstPerfQueryIdINTEL, (GLuint *queryId)) -FUNC(void, glGetNextPerfQueryIdINTEL, (GLuint prevQueryId, GLuint *queryId)) -FUNC(void, glGetPerfQueryInfoINTEL, (GLuint queryId, GLuint nameMaxLength, char *name, GLuint *counterBufferSize, GLuint *numCounters, GLuint *maxQueries, GLuint *)) -FUNC(void, glGetPerfCounterInfoINTEL, (GLuint queryId, GLuint counterId, GLuint nameMaxLength, char *name, GLuint descMaxLength, char *desc, GLuint *offset, GLuint *size, GLuint *usage, GLuint *type, GLuint64 *)) -FUNC(void, glCreatePerfQueryINTEL, (GLuint queryId, GLuint *id)) -FUNC(void, glBeginPerfQueryINTEL, (GLuint id)) -FUNC(void, glEndPerfQueryINTEL, (GLuint id)) -FUNC(void, glDeletePerfQueryINTEL, (GLuint id)) -FUNC(void, glGetPerfQueryDataINTEL, (GLuint id, GLenum requestType, GLuint maxLength, char *buffer, GLuint *length)) - -#endif // #if CONFIG_GLES2 - - -#if OS_WIN -// WGL_EXT_swap_control -FUNC(int, wglSwapIntervalEXT, (int)) - -// WGL_ARB_pbuffer -FUNC(HPBUFFERARB, wglCreatePbufferARB, (HDC, int, int, int, const int*)) -FUNC(HDC, wglGetPbufferDCARB, (HPBUFFERARB)) -FUNC(int, wglReleasePbufferDCARB, (HPBUFFERARB, HDC)) -FUNC(int, wglDestroyPbufferARB, (HPBUFFERARB)) -FUNC(int, wglQueryPbufferARB, (HPBUFFERARB, int, int*)) - -// GL_ARB_pixel_format -FUNC(int, wglGetPixelFormatAttribivARB, (HDC, int, int, unsigned int, const int*, int*)) -FUNC(int, wglGetPixelFormatAttribfvARB, (HDC, int, int, unsigned int, const int*, float*)) -FUNC(int, wglChoosePixelFormatARB, (HDC, const int *, const float*, unsigned int, int*, unsigned int*)) -#endif // OS_WIN - - -// GLX_MESA_query_renderer -FUNC(int /*Bool*/, glXQueryRendererIntegerMESA, (void /*Display*/ *dpy, int screen, int renderer, int attribute, unsigned int *value)) -FUNC(int /*Bool*/, glXQueryCurrentRendererIntegerMESA, (int attribute, unsigned int *value)) -FUNC(const char *, glXQueryRendererStringMESA, (void /*Display*/ *dpy, int screen, int renderer, int attribute)) -FUNC(const char *, glXQueryCurrentRendererStringMESA, (int attribute)) Index: source/lib/external_libraries/opengl.h =================================================================== --- source/lib/external_libraries/opengl.h +++ source/lib/external_libraries/opengl.h @@ -29,6 +29,11 @@ #include "lib/config2.h" // CONFIG2_GLES + +#include + + + #if OS_WIN // wgl.h is a private header and should only be included from here. // if this isn't defined, it'll complain. @@ -36,36 +41,5 @@ #include "lib/sysdep/os/win/wgl.h" #endif -#if CONFIG2_GLES -# include -#elif OS_MACOSX || OS_MAC -# include -#else -# include -#endif - -// if gl.h provides real prototypes for 1.2 / 1.3 functions, -// exclude the corresponding function pointers in glext_funcs.h -#ifdef GL_VERSION_1_2 -#define REAL_GL_1_2 -#endif -#ifdef GL_VERSION_1_3 -#define REAL_GL_1_3 -#endif - -// this must come after GL/gl.h include, so we can't combine the -// including GL/glext.h. -#undef GL_GLEXT_PROTOTYPES - -#if CONFIG2_GLES -# include -#elif OS_MACOSX || OS_MAC -# include -#else -# include -# if OS_WIN -# include -# endif -#endif #endif // #ifndef INCLUDED_OPENGL Index: source/lib/ogl.h =================================================================== --- source/lib/ogl.h +++ source/lib/ogl.h @@ -130,7 +130,6 @@ #define FUNC(ret, name, params) EXTERN_C ret (GL_CALL_CONV *p##name) params; #define FUNC2(ret, nameARB, nameCore, version, params) EXTERN_C ret (GL_CALL_CONV *p##nameARB) params; #define FUNC3(ret, nameARB, nameCore, version, params) EXTERN_C ret (GL_CALL_CONV *p##nameCore) params; -#include "lib/external_libraries/glext_funcs.h" #undef FUNC3 #undef FUNC2 #undef FUNC Index: source/lib/ogl.cpp =================================================================== --- source/lib/ogl.cpp +++ source/lib/ogl.cpp @@ -51,7 +51,6 @@ #define FUNC(ret, name, params) ret (GL_CALL_CONV *p##name) params; #define FUNC2(ret, nameARB, nameCore, version, params) ret (GL_CALL_CONV *p##nameARB) params; #define FUNC3(ret, nameARB, nameCore, version, params) ret (GL_CALL_CONV *p##nameCore) params; -#include "lib/external_libraries/glext_funcs.h" #undef FUNC3 #undef FUNC2 #undef FUNC @@ -326,18 +325,18 @@ { // fall back to the dummy functions when extensions (or equivalent core support) are missing - if(!ogl_HaveExtension("GL_EXT_draw_range_elements")) - { - pglDrawRangeElementsEXT = &dummy_glDrawRangeElementsEXT; - } - - if(!ogl_HaveExtension("GL_ARB_multitexture")) - { - pglActiveTextureARB = &dummy_glActiveTextureARB; - pglClientActiveTextureARB = &dummy_glClientActiveTextureARB; - pglMultiTexCoord2fARB = &dummy_glMultiTexCoord2fARB; - pglMultiTexCoord3fARB = &dummy_glMultiTexCoord3fARB; - } + //if(!ogl_HaveExtension("GL_EXT_draw_range_elements")) + //{ + // pglDrawRangeElementsEXT = &dummy_glDrawRangeElementsEXT; + //} + + //if(!ogl_HaveExtension("GL_ARB_multitexture")) + //{ + // glActiveTextureARB = &dummy_glActiveTextureARB; + // glClientActiveTextureARB = &dummy_glClientActiveTextureARB; + // glMultiTexCoord2fARB = &dummy_glMultiTexCoord2fARB; + // glMultiTexCoord3fARB = &dummy_glMultiTexCoord3fARB; + //} } #endif // #if CONFIG2_GLES @@ -361,7 +360,6 @@ pname = (ret (GL_CALL_CONV*) params)SDL_GL_GetProcAddress(#nameARB); #define FUNC2(ret, nameARB, nameCore, version, params) FUNC23(p##nameARB, ret, nameARB, nameCore, version, params) #define FUNC3(ret, nameARB, nameCore, version, params) FUNC23(p##nameCore, ret, nameARB, nameCore, version, params) -#include "lib/external_libraries/glext_funcs.h" #undef FUNC3 #undef FUNC2 #undef FUNC23 Index: source/lib/res/graphics/ogl_tex.cpp =================================================================== --- source/lib/res/graphics/ogl_tex.cpp +++ source/lib/res/graphics/ogl_tex.cpp @@ -879,7 +879,7 @@ static void upload_compressed_level(size_t level, size_t level_w, size_t level_h, const u8* RESTRICT level_data, size_t level_data_size, void* RESTRICT cbData) { const UploadParams* up = (const UploadParams*)cbData; - pglCompressedTexImage2DARB(GL_TEXTURE_2D, (GLint)level, up->fmt, (GLsizei)level_w, (GLsizei)level_h, 0, (GLsizei)level_data_size, level_data); + glCompressedTexImage2DARB(GL_TEXTURE_2D, (GLint)level, up->fmt, (GLsizei)level_w, (GLsizei)level_h, 0, (GLsizei)level_data_size, level_data); *up->uploaded_size += (u32)level_data_size; } @@ -1064,7 +1064,7 @@ { // note: there are many call sites of glActiveTextureARB, so caching // those and ignoring redundant sets isn't feasible. - pglActiveTextureARB((int)(GL_TEXTURE0+unit)); + glActiveTextureARB((int)(GL_TEXTURE0+unit)); // special case: disable texturing if(ht == 0) Index: source/ps/GameSetup/HWDetect.cpp =================================================================== --- source/ps/GameSetup/HWDetect.cpp +++ source/ps/GameSetup/HWDetect.cpp @@ -368,7 +368,7 @@ #define QUERY(target, pname) do { \ GLint i = -1; \ - pglGetQueryivARB(GL_##target, GL_##pname, &i); \ + glGetQueryiv(GL_##target, GL_##pname, &i); \ if (ogl_SquelchError(GL_INVALID_ENUM)) \ scriptInterface.SetProperty(settings, "GL_" #target ".GL_" #pname, errstr); \ else \ @@ -377,7 +377,7 @@ #define VERTEXPROGRAM(id) do { \ GLint i = -1; \ - pglGetProgramivARB(GL_VERTEX_PROGRAM_ARB, GL_##id, &i); \ + glGetProgramiv(GL_VERTEX_PROGRAM_ARB, GL_##id, &i); \ if (ogl_SquelchError(GL_INVALID_ENUM)) \ scriptInterface.SetProperty(settings, "GL_VERTEX_PROGRAM_ARB.GL_" #id, errstr); \ else \ @@ -386,7 +386,7 @@ #define FRAGMENTPROGRAM(id) do { \ GLint i = -1; \ - pglGetProgramivARB(GL_FRAGMENT_PROGRAM_ARB, GL_##id, &i); \ + glGetProgramiv(GL_FRAGMENT_PROGRAM_ARB, GL_##id, &i); \ if (ogl_SquelchError(GL_INVALID_ENUM)) \ scriptInterface.SetProperty(settings, "GL_FRAGMENT_PROGRAM_ARB.GL_" #id, errstr); \ else \ @@ -664,13 +664,13 @@ #define GLXQCR_INTEGER(id) do { \ unsigned int i = UINT_MAX; \ - if (pglXQueryCurrentRendererIntegerMESA(id, &i)) \ + if (glXQueryCurrentRendererIntegerMESA(id, &i)) \ scriptInterface.SetProperty(settings, #id, i); \ } while (false) #define GLXQCR_INTEGER2(id) do { \ unsigned int i[2] = { UINT_MAX, UINT_MAX }; \ - if (pglXQueryCurrentRendererIntegerMESA(id, i)) { \ + if (glXQueryCurrentRendererIntegerMESA(id, i)) { \ scriptInterface.SetProperty(settings, #id "[0]", i[0]); \ scriptInterface.SetProperty(settings, #id "[1]", i[1]); \ } \ @@ -678,7 +678,7 @@ #define GLXQCR_INTEGER3(id) do { \ unsigned int i[3] = { UINT_MAX, UINT_MAX, UINT_MAX }; \ - if (pglXQueryCurrentRendererIntegerMESA(id, i)) { \ + if (glXQueryCurrentRendererIntegerMESA(id, i)) { \ scriptInterface.SetProperty(settings, #id "[0]", i[0]); \ scriptInterface.SetProperty(settings, #id "[1]", i[1]); \ scriptInterface.SetProperty(settings, #id "[2]", i[2]); \ @@ -686,7 +686,7 @@ } while (false) #define GLXQCR_STRING(id) do { \ - const char* str = pglXQueryCurrentRendererStringMESA(id); \ + const char* str = glXQueryCurrentRendererStringMESA(id); \ if (str) \ scriptInterface.SetProperty(settings, #id ".string", str); \ } while (false) @@ -704,7 +704,7 @@ scriptInterface.SetProperty(settings, "glx_extensions", glxexts); - if (strstr(glxexts, "GLX_MESA_query_renderer") && pglXQueryCurrentRendererIntegerMESA && pglXQueryCurrentRendererStringMESA) + if (strstr(glxexts, "GLX_MESA_query_renderer") && glXQueryCurrentRendererIntegerMESA && glXQueryCurrentRendererStringMESA) { GLXQCR_INTEGER(GLX_RENDERER_VENDOR_ID_MESA); GLXQCR_INTEGER(GLX_RENDERER_DEVICE_ID_MESA); Index: source/ps/Profiler2GPU.cpp =================================================================== --- source/ps/Profiler2GPU.cpp +++ source/ps/Profiler2GPU.cpp @@ -68,7 +68,7 @@ ~CProfiler2GPU_timer_query() { if (!m_FreeQueries.empty()) - pglDeleteQueriesARB(m_FreeQueries.size(), &m_FreeQueries[0]); + glDeleteQueries(m_FreeQueries.size(), &m_FreeQueries[0]); ogl_WarnIfError(); } @@ -79,7 +79,7 @@ { // Generate a batch of new queries m_FreeQueries.resize(8); - pglGenQueriesARB(m_FreeQueries.size(), &m_FreeQueries[0]); + glGenQueries(m_FreeQueries.size(), &m_FreeQueries[0]); ogl_WarnIfError(); } @@ -166,7 +166,7 @@ { PROFILE2("profile timestamp resync"); - pglGetInteger64v(GL_TIMESTAMP, &frame.syncTimestampStart); + glGetInteger64v(GL_TIMESTAMP, &frame.syncTimestampStart); ogl_WarnIfError(); frame.syncTimeStart = m_Profiler.GetTime(); @@ -200,7 +200,7 @@ event.query = NewQuery(); event.isEnter = isEnter; - pglQueryCounter(event.query, GL_TIMESTAMP); + glQueryCounter(event.query, GL_TIMESTAMP); ogl_WarnIfError(); frame.events.push_back(event); @@ -226,7 +226,7 @@ // Queries become available in order so we only need to check the last one GLint available = 0; - pglGetQueryObjectivARB(frame.events.back().query, GL_QUERY_RESULT_AVAILABLE, &available); + glGetQueryObjectiv(frame.events.back().query, GL_QUERY_RESULT_AVAILABLE, &available); ogl_WarnIfError(); if (!available) break; @@ -236,7 +236,7 @@ for (size_t i = 0; i < frame.events.size(); ++i) { GLuint64 queryTimestamp = 0; - pglGetQueryObjectui64v(frame.events[i].query, GL_QUERY_RESULT, &queryTimestamp); + glGetQueryObjectui64v(frame.events[i].query, GL_QUERY_RESULT, &queryTimestamp); // (use the non-suffixed function here, as defined by GL_ARB_timer_query) ogl_WarnIfError(); @@ -336,7 +336,7 @@ { RegionLeave("frame"); - pglEndQueryARB(GL_TIME_ELAPSED); + glEndQuery(GL_TIME_ELAPSED); ogl_WarnIfError(); } @@ -353,7 +353,7 @@ if (!frame.events.empty()) { - pglEndQueryARB(GL_TIME_ELAPSED); + glEndQuery(GL_TIME_ELAPSED); ogl_WarnIfError(); } @@ -362,7 +362,7 @@ event.query = NewQuery(); event.isEnter = isEnter; - pglBeginQueryARB(GL_TIME_ELAPSED, event.query); + glBeginQuery(GL_TIME_ELAPSED, event.query); ogl_WarnIfError(); frame.events.push_back(event); @@ -387,7 +387,7 @@ // Queries become available in order so we only need to check the last one GLint available = 0; - pglGetQueryObjectivARB(frame.events.back().query, GL_QUERY_RESULT_AVAILABLE, &available); + glGetQueryObjectiv(frame.events.back().query, GL_QUERY_RESULT_AVAILABLE, &available); ogl_WarnIfError(); if (!available) break; @@ -410,7 +410,7 @@ // Advance by the elapsed time to the next event GLuint64 queryElapsed = 0; - pglGetQueryObjectui64vEXT(frame.events[i].query, GL_QUERY_RESULT, &queryElapsed); + glGetQueryObjectui64vEXT(frame.events[i].query, GL_QUERY_RESULT, &queryElapsed); // (use the EXT-suffixed function here, as defined by GL_EXT_timer_query) ogl_WarnIfError(); t += (double)queryElapsed / 1e9; @@ -515,7 +515,7 @@ for (size_t i = 0; i < m_QueryTypes.size(); ++i) for (size_t j = 0; j < m_QueryTypes[i].freeQueries.size(); ++j) - pglDeletePerfQueryINTEL(m_QueryTypes[i].freeQueries[j]); + glDeletePerfQueryINTEL(m_QueryTypes[i].freeQueries[j]); ogl_WarnIfError(); } @@ -550,7 +550,7 @@ for (size_t i = 0; i < m_QueryTypes.size(); ++i) { GLuint local_id = NewQuery(i); - pglBeginPerfQueryINTEL(local_id); + glBeginPerfQueryINTEL(local_id); ogl_WarnIfError(); event.queries.push_back(local_id); } @@ -570,7 +570,7 @@ for (size_t i = 0; i < m_QueryTypes.size(); ++i) { - pglEndPerfQueryINTEL(activeEvent.queries[i]); + glEndPerfQueryINTEL(activeEvent.queries[i]); ogl_WarnIfError(); } @@ -590,7 +590,7 @@ if (m_QueryTypes[queryIdx].freeQueries.empty()) { GLuint id; - pglCreatePerfQueryINTEL(m_QueryTypes[queryIdx].queryTypeId, &id); + glCreatePerfQueryINTEL(m_QueryTypes[queryIdx].queryTypeId, &id); ogl_WarnIfError(); return id; } @@ -619,7 +619,7 @@ continue; GLuint length = 0; - pglGetPerfQueryDataINTEL(frame.events[i].queries[j], INTEL_PERFQUERIES_NONBLOCK, size, buf.get(), &length); + glGetPerfQueryDataINTEL(frame.events[i].queries[j], INTEL_PERFQUERIES_NONBLOCK, size, buf.get(), &length); ogl_WarnIfError(); if (length == 0) return; @@ -646,7 +646,7 @@ { GLuint length; char* buf = new char[m_QueryTypes[j].counterBufferSize]; - pglGetPerfQueryDataINTEL(frame.events[i].queries[j], INTEL_PERFQUERIES_BLOCK, m_QueryTypes[j].counterBufferSize, buf, &length); + glGetPerfQueryDataINTEL(frame.events[i].queries[j], INTEL_PERFQUERIES_BLOCK, m_QueryTypes[j].counterBufferSize, buf, &length); ogl_WarnIfError(); ENSURE(length == m_QueryTypes[j].counterBufferSize); @@ -725,13 +725,13 @@ void LoadPerfCounters() { GLuint queryTypeId; - pglGetFirstPerfQueryIdINTEL(&queryTypeId); + glGetFirstPerfQueryIdINTEL(&queryTypeId); ogl_WarnIfError(); do { char queryName[256]; GLuint counterBufferSize, numCounters, maxQueries, unknown; - pglGetPerfQueryInfoINTEL(queryTypeId, ARRAY_SIZE(queryName), queryName, &counterBufferSize, &numCounters, &maxQueries, &unknown); + glGetPerfQueryInfoINTEL(queryTypeId, ARRAY_SIZE(queryName), queryName, &counterBufferSize, &numCounters, &maxQueries, &unknown); ogl_WarnIfError(); ENSURE(unknown == 1); @@ -746,7 +746,7 @@ char counterDesc[2048]; GLuint counterOffset, counterSize, counterUsage, counterType; GLuint64 unknown2; - pglGetPerfCounterInfoINTEL(queryTypeId, counterId, ARRAY_SIZE(counterName), counterName, ARRAY_SIZE(counterDesc), counterDesc, &counterOffset, &counterSize, &counterUsage, &counterType, &unknown2); + glGetPerfCounterInfoINTEL(queryTypeId, counterId, ARRAY_SIZE(counterName), counterName, ARRAY_SIZE(counterDesc), counterDesc, &counterOffset, &counterSize, &counterUsage, &counterType, &unknown2); ogl_WarnIfError(); ENSURE(unknown2 == 0 || unknown2 == 1); @@ -761,7 +761,7 @@ m_QueryTypes.push_back(query); - pglGetNextPerfQueryIdINTEL(queryTypeId, &queryTypeId); + glGetNextPerfQueryIdINTEL(queryTypeId, &queryTypeId); ogl_WarnIfError(); } while (queryTypeId); @@ -860,7 +860,7 @@ #else // CONFIG2_GLES CProfiler2GPU::CProfiler2GPU(CProfiler2& profiler) : - m_Profiler(profiler), m_ProfilerARB(NULL), m_ProfilerEXT(NULL), m_ProfilerINTEL(NULL) + m_Profiler(profiler), m_Profiler(NULL), m_ProfilerEXT(NULL), m_ProfilerINTEL(NULL) { } Index: source/renderer/HWLightingModelRenderer.cpp =================================================================== --- source/renderer/HWLightingModelRenderer.cpp +++ source/renderer/HWLightingModelRenderer.cpp @@ -302,7 +302,7 @@ #if CONFIG2_GLES glDrawElements(GL_TRIANGLES, (GLsizei)numFaces*3, GL_UNSIGNED_SHORT, indexBase); #else - pglDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)mdldef->GetNumVertices()-1, + glDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)mdldef->GetNumVertices()-1, (GLsizei)numFaces*3, GL_UNSIGNED_SHORT, indexBase); #endif } Index: source/renderer/InstancingModelRenderer.cpp =================================================================== --- source/renderer/InstancingModelRenderer.cpp +++ source/renderer/InstancingModelRenderer.cpp @@ -372,7 +372,7 @@ #if CONFIG2_GLES glDrawElements(GL_TRIANGLES, (GLsizei)numFaces*3, GL_UNSIGNED_SHORT, m->imodeldefIndexBase); #else - pglDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)m->imodeldef->m_Array.GetNumVertices()-1, + glDrawRangeElementsEXT(GL_TRIANGLES, 0, (GLuint)m->imodeldef->m_Array.GetNumVertices()-1, (GLsizei)numFaces*3, GL_UNSIGNED_SHORT, m->imodeldefIndexBase); #endif } Index: source/renderer/OverlayRenderer.cpp =================================================================== --- source/renderer/OverlayRenderer.cpp +++ source/renderer/OverlayRenderer.cpp @@ -367,7 +367,7 @@ #if CONFIG2_GLES #warning TODO: implement OverlayRenderer::RenderOverlaysBeforeWater for GLES #else - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glDisable(GL_TEXTURE_2D); glEnable(GL_BLEND); @@ -418,7 +418,7 @@ ogl_WarnIfError(); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); glDepthMask(0); @@ -522,7 +522,7 @@ if (!shader) return; - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); glDepthMask(0); @@ -593,7 +593,7 @@ #if CONFIG2_GLES #warning TODO: implement OverlayRenderer::RenderForegroundOverlays for GLES #else - pglActiveTextureARB(GL_TEXTURE0); + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); glDisable(GL_DEPTH_TEST); Index: source/renderer/ParticleRenderer.cpp =================================================================== --- source/renderer/ParticleRenderer.cpp +++ source/renderer/ParticleRenderer.cpp @@ -145,7 +145,7 @@ CVertexBuffer::Unbind(); - pglBlendEquationEXT(GL_FUNC_ADD); + glBlendEquationEXT(GL_FUNC_ADD); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDisable(GL_BLEND); Index: source/renderer/PatchRData.cpp =================================================================== --- source/renderer/PatchRData.cpp +++ source/renderer/PatchRData.cpp @@ -1038,7 +1038,7 @@ #if !CONFIG2_GLES if (isDummyShader) { - pglClientActiveTextureARB(GL_TEXTURE0); + glClientActiveTextureARB(GL_TEXTURE0); glMatrixMode(GL_TEXTURE); glLoadMatrixf(itt->m_Texture->GetTextureMatrix()); glMatrixMode(GL_MODELVIEW); @@ -1104,7 +1104,7 @@ #if !CONFIG2_GLES if (isDummyShader) { - pglClientActiveTextureARB(GL_TEXTURE0); + glClientActiveTextureARB(GL_TEXTURE0); glMatrixMode(GL_TEXTURE); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); Index: source/renderer/PostprocManager.cpp =================================================================== --- source/renderer/PostprocManager.cpp +++ source/renderer/PostprocManager.cpp @@ -52,9 +52,9 @@ if (!m_IsInitialized) // Only cleanup if previously used return; - if (m_PingFbo) pglDeleteFramebuffersEXT(1, &m_PingFbo); - if (m_PongFbo) pglDeleteFramebuffersEXT(1, &m_PongFbo); - if (m_BloomFbo) pglDeleteFramebuffersEXT(1, &m_BloomFbo); + if (m_PingFbo) glDeleteFramebuffersEXT(1, &m_PingFbo); + if (m_PongFbo) glDeleteFramebuffersEXT(1, &m_PongFbo); + if (m_BloomFbo) glDeleteFramebuffersEXT(1, &m_BloomFbo); m_PingFbo = m_PongFbo = m_BloomFbo = 0; if (m_ColorTex1) glDeleteTextures(1, &m_ColorTex1); @@ -147,59 +147,59 @@ // Set up the framebuffers with some initial textures. - pglGenFramebuffersEXT(1, &m_PingFbo); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); + glGenFramebuffersEXT(1, &m_PingFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, m_ColorTex1, 0); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_DepthTex, 0); - GLenum status = pglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); + GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); if (status != GL_FRAMEBUFFER_COMPLETE_EXT) { LOGWARNING("Framebuffer object incomplete (A): 0x%04X", status); } - pglGenFramebuffersEXT(1, &m_PongFbo); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); + glGenFramebuffersEXT(1, &m_PongFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, m_ColorTex2, 0); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_DepthTex, 0); - status = pglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); + status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); if (status != GL_FRAMEBUFFER_COMPLETE_EXT) { LOGWARNING("Framebuffer object incomplete (B): 0x%04X", status); } - pglGenFramebuffersEXT(1, &m_BloomFbo); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_BloomFbo); + glGenFramebuffersEXT(1, &m_BloomFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_BloomFbo); /* - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, m_BloomTex1, 0); - status = pglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); + status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); if (status != GL_FRAMEBUFFER_COMPLETE_EXT) { LOGWARNING("Framebuffer object incomplete (B): 0x%04X", status); } */ - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); } void CPostprocManager::ApplyBlurDownscale2x(GLuint inTex, GLuint outTex, int inWidth, int inHeight) { // Bind inTex to framebuffer for rendering. - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_BloomFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, outTex, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_BloomFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, outTex, 0); // Get bloom shader with instructions to simply copy texels. CShaderDefines defines; @@ -215,7 +215,7 @@ // Cheat by creating high quality mipmaps for inTex, so the copying operation actually // produces good scaling due to hardware filtering. glBindTexture(GL_TEXTURE_2D, renderedTex); - pglGenerateMipmapEXT(GL_TEXTURE_2D); + glGenerateMipmapEXT(GL_TEXTURE_2D); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glBindTexture(GL_TEXTURE_2D, 0); @@ -257,8 +257,8 @@ void CPostprocManager::ApplyBlurGauss(GLuint inOutTex, GLuint tempTex, int inWidth, int inHeight) { // Set tempTex as our rendering target. - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_BloomFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, tempTex, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_BloomFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, tempTex, 0); // Get bloom shader, for a horizontal Gaussian blur pass. CShaderDefines defines2; @@ -303,8 +303,8 @@ tech->EndPass(); // Set result texture as our render target. - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_BloomFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, inOutTex, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_BloomFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, inOutTex, 0); // Get bloom shader, for a vertical Gaussian blur pass. CShaderDefines defines3; @@ -358,15 +358,15 @@ // clear both FBOs and leave m_PingFbo selected for rendering; // m_WhichBuffer stays true at this point - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); GLenum buffers[] = { GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT1_EXT }; - pglDrawBuffers(1, buffers); + glDrawBuffers(1, buffers); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); - pglDrawBuffers(1, buffers); + glDrawBuffers(1, buffers); m_WhichBuffer = true; } @@ -376,30 +376,30 @@ { ENSURE(m_IsInitialized); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); // we blit to screen from the previous active buffer if (m_WhichBuffer) - pglBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, m_PingFbo); + glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, m_PingFbo); else - pglBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, m_PongFbo); + glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, m_PongFbo); - pglBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, 0); - pglBlitFramebufferEXT(0, 0, m_Width, m_Height, 0, 0, m_Width, m_Height, + glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, 0); + glBlitFramebufferEXT(0, 0, m_Width, m_Height, 0, 0, m_Width, m_Height, GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT, GL_NEAREST); - pglBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, 0); + glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, 0); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); } void CPostprocManager::ApplyEffect(CShaderTechniquePtr &shaderTech1, int pass) { // select the other FBO for rendering if (!m_WhichBuffer) - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); else - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); glDisable(GL_DEPTH_TEST); glDepthMask(GL_FALSE); @@ -475,28 +475,28 @@ if (!hasEffects && !m_AATech) return; - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_2D, 0, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_2D, 0, 0); GLenum buffers[] = { GL_COLOR_ATTACHMENT0_EXT }; - pglDrawBuffers(1, buffers); + glDrawBuffers(1, buffers); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_2D, 0, 0); - pglDrawBuffers(1, buffers); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_2D, 0, 0); + glDrawBuffers(1, buffers); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0, 0); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, 0, 0); if (hasEffects) { // First render blur textures. Note that this only happens ONLY ONCE, before any effects are applied! // (This may need to change depending on future usage, however that will have a fps hit) ApplyBlur(); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); for (int pass = 0; pass < m_PostProcTech->GetNumPasses(); ++pass) ApplyEffect(m_PostProcTech, pass); } @@ -507,11 +507,11 @@ ApplyEffect(m_AATech, pass); } - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_DepthTex, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PongFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_DepthTex, 0); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_DepthTex, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_PingFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_STENCIL_ATTACHMENT, GL_TEXTURE_2D, m_DepthTex, 0); } Index: source/renderer/Renderer.cpp =================================================================== --- source/renderer/Renderer.cpp +++ source/renderer/Renderer.cpp @@ -785,7 +785,7 @@ glPolygonMode(GL_FRONT_AND_BACK,GL_LINE); // setup some renderstate .. - pglActiveTextureARB(GL_TEXTURE0); + glActiveTextureARB(GL_TEXTURE0); glDisable(GL_TEXTURE_2D); glColor3f(0.5f, 0.5f, 1.0f); glLineWidth(2.0f); @@ -1040,7 +1040,7 @@ glScissor(screenScissor.x1, screenScissor.y1, screenScissor.x2 - screenScissor.x1, screenScissor.y2 - screenScissor.y1); // try binding the framebuffer - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, wm.m_ReflectionFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, wm.m_ReflectionFbo); glClearColor(0.5f,0.5f,1.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -1078,7 +1078,7 @@ m_ViewCamera = normalCamera; m->SetOpenGLCamera(m_ViewCamera); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); } @@ -1116,7 +1116,7 @@ glScissor(screenScissor.x1, screenScissor.y1, screenScissor.x2 - screenScissor.x1, screenScissor.y2 - screenScissor.y1); // try binding the framebuffer - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, wm.m_RefractionFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, wm.m_RefractionFbo); glClearColor(1.0f,0.0f,0.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -1135,7 +1135,7 @@ m_ViewCamera = normalCamera; m->SetOpenGLCamera(m_ViewCamera); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); } void CRenderer::RenderSilhouettes(const CShaderDefines& context) @@ -1207,7 +1207,7 @@ // a pixel once (using the color of whatever model happens to be drawn first). glEnable(GL_BLEND); glBlendFunc(GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA); - pglBlendColorEXT(0, 0, 0, silhouetteAlpha); + glBlendColorEXT(0, 0, 0, silhouetteAlpha); glEnable(GL_STENCIL_TEST); glStencilFunc(GL_NOTEQUAL, 1, (GLuint)-1); @@ -1234,7 +1234,7 @@ { glDisable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - pglBlendColorEXT(0, 0, 0, 0); + glBlendColorEXT(0, 0, 0, 0); glDisable(GL_STENCIL_TEST); } } @@ -1724,7 +1724,7 @@ // BindTexture: bind a GL texture object to current active unit void CRenderer::BindTexture(int unit, GLuint tex) { - pglActiveTextureARB(GL_TEXTURE0+unit); + glActiveTextureARB(GL_TEXTURE0+unit); glBindTexture(GL_TEXTURE_2D, tex); #if !CONFIG2_GLES Index: source/renderer/ShadowMap.cpp =================================================================== --- source/renderer/ShadowMap.cpp +++ source/renderer/ShadowMap.cpp @@ -179,7 +179,7 @@ if (m->DummyTexture) glDeleteTextures(1, &m->DummyTexture); if (m->Framebuffer) - pglDeleteFramebuffersEXT(1, &m->Framebuffer); + glDeleteFramebuffersEXT(1, &m->Framebuffer); delete m; } @@ -194,7 +194,7 @@ if (m->DummyTexture) glDeleteTextures(1, &m->DummyTexture); if (m->Framebuffer) - pglDeleteFramebuffersEXT(1, &m->Framebuffer); + glDeleteFramebuffersEXT(1, &m->Framebuffer); m->Texture = 0; m->DummyTexture = 0; @@ -442,14 +442,14 @@ } if (Framebuffer) { - pglDeleteFramebuffersEXT(1, &Framebuffer); + glDeleteFramebuffersEXT(1, &Framebuffer); Framebuffer = 0; } // save the caller's FBO glGetIntegerv(GL_FRAMEBUFFER_BINDING_EXT, &SavedViewFBO); - pglGenFramebuffersEXT(1, &Framebuffer); + glGenFramebuffersEXT(1, &Framebuffer); if (g_Renderer.m_ShadowMapSize != 0) { @@ -563,13 +563,13 @@ // bind to framebuffer object glBindTexture(GL_TEXTURE_2D, 0); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, Framebuffer); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, Framebuffer); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, Texture, 0); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, Texture, 0); if (g_RenderingOptions.GetShadowAlphaFix()) { - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, DummyTexture, 0); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, DummyTexture, 0); } else { @@ -586,9 +586,9 @@ ogl_WarnIfError(); - GLenum status = pglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); + GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, SavedViewFBO); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, SavedViewFBO); if (status != GL_FRAMEBUFFER_COMPLETE_EXT) { @@ -609,7 +609,7 @@ { PROFILE("bind framebuffer"); glBindTexture(GL_TEXTURE_2D, 0); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m->Framebuffer); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m->Framebuffer); } // clear buffers @@ -655,7 +655,7 @@ { PROFILE("unbind framebuffer"); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); } const SViewPort vp = { 0, 0, g_Renderer.GetWidth(), g_Renderer.GetHeight() }; Index: source/renderer/SkyManager.cpp =================================================================== --- source/renderer/SkyManager.cpp +++ source/renderer/SkyManager.cpp @@ -206,7 +206,7 @@ glDepthMask(GL_FALSE); - pglActiveTextureARB(GL_TEXTURE0_ARB); + glActiveTextureARB(GL_TEXTURE0_ARB); if (g_RenderingOptions.GetRenderPath() == RenderPath::FIXED) glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); Index: source/renderer/TerrainOverlay.cpp =================================================================== --- source/renderer/TerrainOverlay.cpp +++ source/renderer/TerrainOverlay.cpp @@ -124,7 +124,7 @@ //glEnable(GL_POLYGON_OFFSET_LINE); glEnable(GL_POLYGON_OFFSET_FILL); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTextureARB(GL_TEXTURE0); glDisable(GL_TEXTURE_2D); StartRender(); @@ -278,7 +278,7 @@ ssize_t w = (ssize_t)(terrain->GetTilesPerSide() * m_TexelsPerTile); ssize_t h = (ssize_t)(terrain->GetTilesPerSide() * m_TexelsPerTile); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTextureARB(GL_TEXTURE0); // Recreate the texture with new size if necessary if (round_up_to_pow2(w) != m_TextureW || round_up_to_pow2(h) != m_TextureH) Index: source/renderer/TerrainRenderer.cpp =================================================================== --- source/renderer/TerrainRenderer.cpp +++ source/renderer/TerrainRenderer.cpp @@ -202,8 +202,8 @@ // render everything fullbright // set up texture environment for base pass - pglActiveTextureARB(GL_TEXTURE0); - pglClientActiveTextureARB(GL_TEXTURE0); + glActiveTextureARB(GL_TEXTURE0); + glClientActiveTextureARB(GL_TEXTURE0); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE); @@ -225,11 +225,11 @@ (void)ogl_tex_bind(g_Renderer.m_hCompositeAlphaMap, 1); // switch on second uv set - pglClientActiveTextureARB(GL_TEXTURE1); + glClientActiveTextureARB(GL_TEXTURE1); glEnableClientState(GL_TEXTURE_COORD_ARRAY); // setup additional texenv required by blend pass - pglActiveTextureARB(GL_TEXTURE1); + glActiveTextureARB(GL_TEXTURE1); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_REPLACE); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS); @@ -254,15 +254,15 @@ PROFILE_END("render terrain blends"); // Disable second texcoord array - pglClientActiveTextureARB(GL_TEXTURE1); + glClientActiveTextureARB(GL_TEXTURE1); glDisableClientState(GL_TEXTURE_COORD_ARRAY); // Render terrain decals g_Renderer.BindTexture(1, 0); - pglActiveTextureARB(GL_TEXTURE0); - pglClientActiveTextureARB(GL_TEXTURE0); + glActiveTextureARB(GL_TEXTURE0); + glClientActiveTextureARB(GL_TEXTURE0); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE); glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_PREVIOUS); @@ -281,7 +281,7 @@ // Now apply lighting const CLightEnv& lightEnv = g_Renderer.GetLightEnv(); - pglClientActiveTextureARB(GL_TEXTURE0); + glClientActiveTextureARB(GL_TEXTURE0); glEnableClientState(GL_COLOR_ARRAY); // diffuse lighting colors // The vertex color is scaled by 0.5 to permit overbrightness without clamping. @@ -303,7 +303,7 @@ int streamflags = STREAM_POS|STREAM_COLOR; - pglActiveTextureARB(GL_TEXTURE0); + glActiveTextureARB(GL_TEXTURE0); // We're not going to use a texture here, but we have to have a valid texture // bound else the texture unit will be disabled. // We should still have a bound splat texture from some earlier rendering, @@ -324,7 +324,7 @@ glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, terrainAmbientColor); losTexture.BindTexture(1); - pglClientActiveTextureARB(GL_TEXTURE1); + glClientActiveTextureARB(GL_TEXTURE1); glEnableClientState(GL_TEXTURE_COORD_ARRAY); streamflags |= STREAM_POSTOUV1; @@ -342,8 +342,8 @@ glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_ARB, GL_PREVIOUS); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_ARB, GL_SRC_ALPHA); - pglActiveTextureARB(GL_TEXTURE0); - pglClientActiveTextureARB(GL_TEXTURE0); + glActiveTextureARB(GL_TEXTURE0); + glClientActiveTextureARB(GL_TEXTURE0); PROFILE_START("render terrain streams"); CPatchRData::RenderStreams(visiblePatches, dummyShader, streamflags); @@ -356,14 +356,14 @@ // restore OpenGL state g_Renderer.BindTexture(1, 0); - pglClientActiveTextureARB(GL_TEXTURE1); + glClientActiveTextureARB(GL_TEXTURE1); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glMatrixMode(GL_TEXTURE); glLoadIdentity(); glMatrixMode(GL_MODELVIEW); - pglClientActiveTextureARB(GL_TEXTURE0); - pglActiveTextureARB(GL_TEXTURE0); + glClientActiveTextureARB(GL_TEXTURE0); + glActiveTextureARB(GL_TEXTURE0); glDepthMask(1); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); @@ -390,7 +390,7 @@ glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); - pglActiveTextureARB(GL_TEXTURE0); + glActiveTextureARB(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); @@ -709,7 +709,7 @@ GLint fbo; glGetIntegerv(GL_FRAMEBUFFER_BINDING_EXT, &fbo); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, WaterMgr->m_FancyEffectsFBO); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, WaterMgr->m_FancyEffectsFBO); glDisable(GL_BLEND); glEnable(GL_DEPTH_TEST); @@ -731,7 +731,7 @@ dummyShader->Unbind(); glEnable(GL_CULL_FACE); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fbo); } glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); @@ -926,7 +926,7 @@ glDisable(GL_TEXTURE_GEN_T); glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - pglActiveTextureARB(GL_TEXTURE0_ARB); + glActiveTextureARB(GL_TEXTURE0_ARB); // Clean up the texture matrix and blend mode glDisable(GL_TEXTURE_GEN_S); Index: source/renderer/VertexBuffer.cpp =================================================================== --- source/renderer/VertexBuffer.cpp +++ source/renderer/VertexBuffer.cpp @@ -53,10 +53,10 @@ // allocate raw buffer if (g_Renderer.m_Caps.m_VBO) { - pglGenBuffersARB(1, &m_Handle); - pglBindBufferARB(m_Target, m_Handle); - pglBufferDataARB(m_Target, m_MaxVertices * m_VertexSize, 0, m_Usage); - pglBindBufferARB(m_Target, 0); + glGenBuffers(1, &m_Handle); + glBindBuffer(m_Target, m_Handle); + glBufferData(m_Target, m_MaxVertices * m_VertexSize, 0, m_Usage); + glBindBuffer(m_Target, 0); } else { @@ -77,7 +77,7 @@ ENSURE(m_AllocList.empty()); if (m_Handle) - pglDeleteBuffersARB(1, &m_Handle); + glDeleteBuffers(1, &m_Handle); delete[] m_SysMem; @@ -210,9 +210,9 @@ } else { - pglBindBufferARB(m_Target, m_Handle); - pglBufferSubDataARB(m_Target, chunk->m_Index * m_VertexSize, chunk->m_Count * m_VertexSize, data); - pglBindBufferARB(m_Target, 0); + glBindBuffer(m_Target, m_Handle); + glBufferSubData(m_Target, chunk->m_Index * m_VertexSize, chunk->m_Count * m_VertexSize, data); + glBindBuffer(m_Target, 0); } } else @@ -230,7 +230,7 @@ if (!g_Renderer.m_Caps.m_VBO) return m_SysMem; - pglBindBufferARB(m_Target, m_Handle); + glBindBuffer(m_Target, m_Handle); if (UseStreaming(m_Usage)) { @@ -249,7 +249,7 @@ if (needUpload) { // Tell the driver that it can reallocate the whole VBO - pglBufferDataARB(m_Target, m_MaxVertices * m_VertexSize, NULL, m_Usage); + glBufferData(m_Target, m_MaxVertices * m_VertexSize, NULL, m_Usage); // (In theory, glMapBufferRange with GL_MAP_INVALIDATE_BUFFER_BIT could be used // here instead of glBufferData(..., NULL, ...) plus glMapBuffer(), but with @@ -258,7 +258,7 @@ while (true) { - void* p = pglMapBufferARB(m_Target, GL_WRITE_ONLY); + void* p = glMapBuffer(m_Target, GL_WRITE_ONLY); if (p == NULL) { // This shouldn't happen unless we run out of virtual address space @@ -281,7 +281,7 @@ if (chunk->m_Needed) memcpy((u8 *)p + chunk->m_Index * m_VertexSize, chunk->m_BackingStore, chunk->m_Count * m_VertexSize); - if (pglUnmapBufferARB(m_Target) == GL_TRUE) + if (glUnmapBuffer(m_Target) == GL_TRUE) break; // Unmap might fail on e.g. resolution switches, so just try again @@ -320,8 +320,8 @@ { if (g_Renderer.m_Caps.m_VBO) { - pglBindBufferARB(GL_ARRAY_BUFFER, 0); - pglBindBufferARB(GL_ELEMENT_ARRAY_BUFFER, 0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); } } Index: source/renderer/WaterManager.cpp =================================================================== --- source/renderer/WaterManager.cpp +++ source/renderer/WaterManager.cpp @@ -168,9 +168,9 @@ glDeleteTextures(1, &m_ReflFboDepthTexture); glDeleteTextures(1, &m_RefrFboDepthTexture); - pglDeleteFramebuffersEXT(1, &m_FancyEffectsFBO); - pglDeleteFramebuffersEXT(1, &m_RefractionFbo); - pglDeleteFramebuffersEXT(1, &m_ReflectionFbo); + glDeleteFramebuffersEXT(1, &m_FancyEffectsFBO); + glDeleteFramebuffersEXT(1, &m_RefractionFbo); + glDeleteFramebuffersEXT(1, &m_ReflectionFbo); } @@ -298,14 +298,14 @@ glGetIntegerv(GL_FRAMEBUFFER_BINDING_EXT, ¤tFbo); m_ReflectionFbo = 0; - pglGenFramebuffersEXT(1, &m_ReflectionFbo); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_ReflectionFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, m_ReflectionTexture, 0); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, m_ReflFboDepthTexture, 0); + glGenFramebuffersEXT(1, &m_ReflectionFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_ReflectionFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, m_ReflectionTexture, 0); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, m_ReflFboDepthTexture, 0); ogl_WarnIfError(); - GLenum status = pglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); + GLenum status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); if (status != GL_FRAMEBUFFER_COMPLETE_EXT) { LOGWARNING("Reflection framebuffer object incomplete: 0x%04X", status); @@ -314,14 +314,14 @@ } m_RefractionFbo = 0; - pglGenFramebuffersEXT(1, &m_RefractionFbo); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_RefractionFbo); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, m_RefractionTexture, 0); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, m_RefrFboDepthTexture, 0); + glGenFramebuffersEXT(1, &m_RefractionFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_RefractionFbo); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, m_RefractionTexture, 0); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, m_RefrFboDepthTexture, 0); ogl_WarnIfError(); - status = pglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); + status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); if (status != GL_FRAMEBUFFER_COMPLETE_EXT) { LOGWARNING("Refraction framebuffer object incomplete: 0x%04X", status); @@ -329,15 +329,15 @@ UpdateQuality(); } - pglGenFramebuffersEXT(1, &m_FancyEffectsFBO); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_FancyEffectsFBO); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, m_FancyTextureNormal, 0); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_2D, m_FancyTextureOther, 0); - pglFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, m_FancyTextureDepth, 0); + glGenFramebuffersEXT(1, &m_FancyEffectsFBO); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_FancyEffectsFBO); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, m_FancyTextureNormal, 0); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_2D, m_FancyTextureOther, 0); + glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, m_FancyTextureDepth, 0); ogl_WarnIfError(); - status = pglCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); + status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT); if (status != GL_FRAMEBUFFER_COMPLETE_EXT) { LOGWARNING("Fancy Effects framebuffer object incomplete: 0x%04X", status); @@ -345,7 +345,7 @@ UpdateQuality(); } - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, currentFbo); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, currentFbo); // Enable rendering, now that we've succeeded this far m_RenderWater = true; @@ -401,8 +401,8 @@ glDeleteTextures(1, &m_ReflectionTexture); glDeleteTextures(1, &m_RefractionTexture); - pglDeleteFramebuffersEXT(1, &m_RefractionFbo); - pglDeleteFramebuffersEXT(1, &m_ReflectionFbo); + glDeleteFramebuffersEXT(1, &m_RefractionFbo); + glDeleteFramebuffersEXT(1, &m_ReflectionFbo); } template @@ -876,10 +876,10 @@ if (g_Renderer.m_SkipSubmit || !m_WaterFancyEffects) return; - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_FancyEffectsFBO); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, m_FancyEffectsFBO); GLuint attachments[2] = { GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT1_EXT }; - pglDrawBuffers(2, attachments); + glDrawBuffers(2, attachments); glClearColor(0.0f,0.0f, 0.0f,0.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); @@ -913,7 +913,7 @@ shad->VertexPointer(3, GL_FLOAT, stride, &base[VBchunk->m_Index].m_BasePosition); shad->TexCoordPointer(GL_TEXTURE0, 2, GL_UNSIGNED_BYTE, stride, &base[VBchunk->m_Index].m_UV); // NormalPointer(gl_FLOAT, stride, &base[m_VBWater->m_Index].m_UV) - pglVertexAttribPointerARB(2, 2, GL_FLOAT, GL_TRUE, stride, &base[VBchunk->m_Index].m_PerpVect); // replaces commented above because my normal is vec2 + glVertexAttribPointerARB(2, 2, GL_FLOAT, GL_TRUE, stride, &base[VBchunk->m_Index].m_PerpVect); // replaces commented above because my normal is vec2 shad->VertexAttribPointer(str_a_apexPosition, 3, GL_FLOAT, false, stride, &base[VBchunk->m_Index].m_ApexPosition); shad->VertexAttribPointer(str_a_splashPosition, 3, GL_FLOAT, false, stride, &base[VBchunk->m_Index].m_SplashPosition); shad->VertexAttribPointer(str_a_retreatPosition, 3, GL_FLOAT, false, stride, &base[VBchunk->m_Index].m_RetreatPosition); @@ -936,7 +936,7 @@ CVertexBuffer::Unbind(); } shad->Unbind(); - pglBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); glDisable(GL_BLEND); glDepthFunc(GL_LEQUAL); Index: source/tools/atlas/GameInterface/Handlers/GraphicsSetupHandlers.cpp =================================================================== --- source/tools/atlas/GameInterface/Handlers/GraphicsSetupHandlers.cpp +++ source/tools/atlas/GameInterface/Handlers/GraphicsSetupHandlers.cpp @@ -88,12 +88,7 @@ InitGraphics(g_AtlasGameLoop->args, g_InitFlags, {}); -#if OS_WIN - // HACK (to stop things looking very ugly when scrolling) - should - // use proper config system. - if(ogl_HaveExtension("WGL_EXT_swap_control")) - pwglSwapIntervalEXT(1); -#endif + SDL_GL_SetSwapInterval(g_VSync ? 1 : 0); }