mirror of
https://github.com/libretro/scummvm.git
synced 2025-04-14 20:50:09 +00:00

Formerly we relied on static linkage. However, in the presense of modern OpenGL (ES) implementations it is not easily identifable which library to link against. For example, on Linux amd64 with nVidia drivers and SDL2 setup to create a GLES 1.1 context one would need to link against libGL.so. However, traditionally GLES 1.1 required to link against libGLESv1_CM.so. To prevent a huge mess we simply resolve the OpenGL functions on run-time now and stop linking against a static library (in most cases). GLES support needs to be enabled manually on configure time for now. Tizen changes have NOT been tested.
66 lines
2.0 KiB
C++
66 lines
2.0 KiB
C++
/* ScummVM - Graphic Adventure Engine
|
|
*
|
|
* ScummVM is the legal property of its developers, whose names
|
|
* are too numerous to list here. Please refer to the COPYRIGHT
|
|
* file distributed with this source distribution.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License
|
|
* as published by the Free Software Foundation; either version 2
|
|
* of the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*
|
|
*/
|
|
|
|
#include "backends/graphics/opengl/debug.h"
|
|
#include "backends/graphics/opengl/opengl-sys.h"
|
|
|
|
#include "common/str.h"
|
|
#include "common/textconsole.h"
|
|
|
|
#ifdef OPENGL_DEBUG
|
|
|
|
namespace OpenGL {
|
|
|
|
namespace {
|
|
Common::String getGLErrStr(GLenum error) {
|
|
switch (error) {
|
|
case GL_INVALID_ENUM:
|
|
return "GL_INVALID_ENUM";
|
|
case GL_INVALID_VALUE:
|
|
return "GL_INVALID_VALUE";
|
|
case GL_INVALID_OPERATION:
|
|
return "GL_INVALID_OPERATION";
|
|
case GL_STACK_OVERFLOW:
|
|
return "GL_STACK_OVERFLOW";
|
|
case GL_STACK_UNDERFLOW:
|
|
return "GL_STACK_UNDERFLOW";
|
|
case GL_OUT_OF_MEMORY:
|
|
return "GL_OUT_OF_MEMORY";
|
|
}
|
|
|
|
return Common::String::format("(Unknown GL error code 0x%X)", error);
|
|
}
|
|
} // End of anonymous namespace
|
|
|
|
void checkGLError(const char *expr, const char *file, int line) {
|
|
GLenum error;
|
|
|
|
while ((error = g_context.glGetError()) != GL_NO_ERROR) {
|
|
// We cannot use error here because we do not know whether we have a
|
|
// working screen or not.
|
|
warning("GL ERROR: %s on %s (%s:%d)", getGLErrStr(error).c_str(), expr, file, line);
|
|
}
|
|
}
|
|
} // End of namespace OpenGL
|
|
|
|
#endif
|