aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
authorMax Horn2010-07-20 07:10:25 +0000
committerMax Horn2010-07-20 07:10:25 +0000
commit5b626533cdbc2b9a8cb0b478d8e93ece852de1b9 (patch)
tree3bd0cbca8487e521683fc6f34749f03cdd265b6a /backends
parent302400a701187eba6d0dee2daa253da87b29d83f (diff)
downloadscummvm-rg350-5b626533cdbc2b9a8cb0b478d8e93ece852de1b9.tar.gz
scummvm-rg350-5b626533cdbc2b9a8cb0b478d8e93ece852de1b9.tar.bz2
scummvm-rg350-5b626533cdbc2b9a8cb0b478d8e93ece852de1b9.zip
Change CHECK_GL_ERROR to not take a 'call statement' as parameter
Passing a 'call statement' to CHECK_GL_ERROR has various issues. For once, it confuses code parsers in many editors and other tools that work with C++ source directly. Moreover, this can lead to subtle bugs if a mistake is made with the definition of CHECK_GL_ERROR. It also causes incorrect warnings if CHECK_GL_ERROR is used with an "empty" call statement. svn-id: r51050
Diffstat (limited to 'backends')
-rw-r--r--backends/graphics/opengl/glerrorcheck.h6
-rw-r--r--backends/graphics/opengl/gltexture.cpp46
-rw-r--r--backends/graphics/opengl/opengl-graphics.cpp38
3 files changed, 45 insertions, 45 deletions
diff --git a/backends/graphics/opengl/glerrorcheck.h b/backends/graphics/opengl/glerrorcheck.h
index c5cbf5726b..a94699ce1d 100644
--- a/backends/graphics/opengl/glerrorcheck.h
+++ b/backends/graphics/opengl/glerrorcheck.h
@@ -25,13 +25,13 @@
#if !defined(DEBUG)
-// If not in debug, just do the GL call
-#define CHECK_GL_ERROR(call) (call)
+// If not in debug, do nothing
+#define CHECK_GL_ERROR() do {} while (false)
#else
// If in debug, check for an error after a GL call
-#define CHECK_GL_ERROR(call) ((call), checkGlError(__FILE__, __LINE__))
+#define CHECK_GL_ERROR() checkGlError(__FILE__, __LINE__)
void checkGlError(const char *file, int line);
diff --git a/backends/graphics/opengl/gltexture.cpp b/backends/graphics/opengl/gltexture.cpp
index e3760ee2d8..bd2d67edf5 100644
--- a/backends/graphics/opengl/gltexture.cpp
+++ b/backends/graphics/opengl/gltexture.cpp
@@ -61,7 +61,7 @@ void GLTexture::initGLExtensions() {
const char* ext_string =
reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS));
- CHECK_GL_ERROR(0);
+ CHECK_GL_ERROR();
Common::StringTokenizer tokenizer(ext_string, " ");
while (!tokenizer.empty()) {
Common::String token = tokenizer.nextToken();
@@ -83,7 +83,7 @@ GLTexture::GLTexture(byte bpp, GLenum format, GLenum type)
_refresh(false) {
// Generates the texture ID for GL
- CHECK_GL_ERROR( glGenTextures(1, &_textureName) );
+ glGenTextures(1, &_textureName); CHECK_GL_ERROR();
// This all gets reset later in allocBuffer:
_surface.w = 0;
@@ -94,12 +94,12 @@ GLTexture::GLTexture(byte bpp, GLenum format, GLenum type)
}
GLTexture::~GLTexture() {
- CHECK_GL_ERROR( glDeleteTextures(1, &_textureName) );
+ glDeleteTextures(1, &_textureName); CHECK_GL_ERROR();
}
void GLTexture::refresh() {
// Generates the texture ID for GL
- CHECK_GL_ERROR( glGenTextures(1, &_textureName) );
+ glGenTextures(1, &_textureName); CHECK_GL_ERROR();
_refresh = true;
}
@@ -121,13 +121,13 @@ void GLTexture::allocBuffer(GLuint w, GLuint h) {
// Allocate room for the texture now, but pixel data gets uploaded
// later (perhaps with multiple TexSubImage2D operations).
- CHECK_GL_ERROR( glBindTexture(GL_TEXTURE_2D, _textureName) );
- CHECK_GL_ERROR( glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST) );
- CHECK_GL_ERROR( glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST) );
- CHECK_GL_ERROR( glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE) );
- CHECK_GL_ERROR( glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE) );
- CHECK_GL_ERROR( glTexImage2D(GL_TEXTURE_2D, 0, _glFormat,
- _textureWidth, _textureHeight, 0, _glFormat, _glType, NULL) );
+ glBindTexture(GL_TEXTURE_2D, _textureName); CHECK_GL_ERROR();
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); CHECK_GL_ERROR();
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); CHECK_GL_ERROR();
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); CHECK_GL_ERROR();
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); CHECK_GL_ERROR();
+ glTexImage2D(GL_TEXTURE_2D, 0, _glFormat,
+ _textureWidth, _textureHeight, 0, _glFormat, _glType, NULL); CHECK_GL_ERROR();
if (_surface.w != _textureWidth || _surface.h != _textureHeight)
_surface.create(_textureWidth, _textureHeight, _bytesPerPixel);
@@ -136,17 +136,17 @@ void GLTexture::allocBuffer(GLuint w, GLuint h) {
}
void GLTexture::updateBuffer(const void *buf, int pitch, GLuint x, GLuint y, GLuint w, GLuint h) {
- CHECK_GL_ERROR( glBindTexture(GL_TEXTURE_2D, _textureName) );
+ glBindTexture(GL_TEXTURE_2D, _textureName); CHECK_GL_ERROR();
if (static_cast<int>(w) * _bytesPerPixel == pitch) {
- CHECK_GL_ERROR( glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, w, h,
- _glFormat, _glType, buf) );
+ glTexSubImage2D(GL_TEXTURE_2D, 0, x, y, w, h,
+ _glFormat, _glType, buf); CHECK_GL_ERROR();
memcpy(_surface.getBasePtr(x, y), buf, h * pitch);
} else {
const byte* src = static_cast<const byte*>(buf);
do {
- CHECK_GL_ERROR( glTexSubImage2D(GL_TEXTURE_2D, 0, x, y,
- w, 1, _glFormat, _glType, src) );
+ glTexSubImage2D(GL_TEXTURE_2D, 0, x, y,
+ w, 1, _glFormat, _glType, src); CHECK_GL_ERROR();
memcpy(_surface.getBasePtr(x, y), src, w * _bytesPerPixel);
++y;
src += pitch;
@@ -156,13 +156,13 @@ void GLTexture::updateBuffer(const void *buf, int pitch, GLuint x, GLuint y, GLu
void GLTexture::fillBuffer(byte x) {
memset(_surface.pixels, x, _surface.h * _surface.pitch);
- CHECK_GL_ERROR( glBindTexture(GL_TEXTURE_2D, _textureName) );
- CHECK_GL_ERROR( glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, _surface.w, _surface.h,
- _glFormat, _glType, _surface.pixels) );
+ glBindTexture(GL_TEXTURE_2D, _textureName); CHECK_GL_ERROR();
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, _surface.w, _surface.h,
+ _glFormat, _glType, _surface.pixels); CHECK_GL_ERROR();
}
void GLTexture::drawTexture(GLshort x, GLshort y, GLshort w, GLshort h) {
- CHECK_GL_ERROR( glBindTexture(GL_TEXTURE_2D, _textureName) );
+ glBindTexture(GL_TEXTURE_2D, _textureName); CHECK_GL_ERROR();
const GLfloat texWidth = (GLfloat)_realWidth / _textureWidth;//xdiv(_surface.w, _textureWidth);
const GLfloat texHeight = (GLfloat)_realHeight / _textureHeight;//xdiv(_surface.h, _textureHeight);
@@ -172,7 +172,7 @@ void GLTexture::drawTexture(GLshort x, GLshort y, GLshort w, GLshort h) {
0, texHeight,
texWidth, texHeight,
};
- CHECK_GL_ERROR( glTexCoordPointer(2, GL_FLOAT, 0, texcoords) );
+ glTexCoordPointer(2, GL_FLOAT, 0, texcoords); CHECK_GL_ERROR();
const GLshort vertices[] = {
x, y,
@@ -180,9 +180,9 @@ void GLTexture::drawTexture(GLshort x, GLshort y, GLshort w, GLshort h) {
x, y + h,
x + w, y + h,
};
- CHECK_GL_ERROR( glVertexPointer(2, GL_SHORT, 0, vertices) );
+ glVertexPointer(2, GL_SHORT, 0, vertices); CHECK_GL_ERROR();
- CHECK_GL_ERROR( glDrawArrays(GL_TRIANGLE_STRIP, 0, 4) );
+ glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); CHECK_GL_ERROR();
}
#endif
diff --git a/backends/graphics/opengl/opengl-graphics.cpp b/backends/graphics/opengl/opengl-graphics.cpp
index 540e1ada0e..4b0591e420 100644
--- a/backends/graphics/opengl/opengl-graphics.cpp
+++ b/backends/graphics/opengl/opengl-graphics.cpp
@@ -527,7 +527,7 @@ void OpenGLGraphicsManager::getGLPixelFormat(Graphics::PixelFormat pixelFormat,
void OpenGLGraphicsManager::internUpdateScreen() {
// Clear the screen
- CHECK_GL_ERROR( glClear(GL_COLOR_BUFFER_BIT) );
+ glClear(GL_COLOR_BUFFER_BIT); CHECK_GL_ERROR();
// Draw the game screen
_gameTexture->drawTexture(0, 0, _videoMode.hardwareWidth, _videoMode.hardwareHeight);
@@ -550,33 +550,33 @@ void OpenGLGraphicsManager::initGL() {
GLTexture::initGLExtensions();
// Disable 3D properties
- CHECK_GL_ERROR( glDisable(GL_CULL_FACE) );
- CHECK_GL_ERROR( glDisable(GL_DEPTH_TEST) );
- CHECK_GL_ERROR( glDisable(GL_LIGHTING) );
- CHECK_GL_ERROR( glDisable(GL_FOG) );
- CHECK_GL_ERROR( glDisable(GL_DITHER) );
- CHECK_GL_ERROR( glShadeModel(GL_FLAT) );
- CHECK_GL_ERROR( glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST) );
+ glDisable(GL_CULL_FACE); CHECK_GL_ERROR();
+ glDisable(GL_DEPTH_TEST); CHECK_GL_ERROR();
+ glDisable(GL_LIGHTING); CHECK_GL_ERROR();
+ glDisable(GL_FOG); CHECK_GL_ERROR();
+ glDisable(GL_DITHER); CHECK_GL_ERROR();
+ glShadeModel(GL_FLAT); CHECK_GL_ERROR();
+ glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST); CHECK_GL_ERROR();
// Setup alpha blend (For overlay and cursor)
- CHECK_GL_ERROR( glEnable(GL_BLEND) );
- CHECK_GL_ERROR( glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) );
+ glEnable(GL_BLEND); CHECK_GL_ERROR();
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); CHECK_GL_ERROR();
// Enable rendering with vertex and coord arrays
- CHECK_GL_ERROR( glEnableClientState(GL_VERTEX_ARRAY) );
- CHECK_GL_ERROR( glEnableClientState(GL_TEXTURE_COORD_ARRAY) );
+ glEnableClientState(GL_VERTEX_ARRAY); CHECK_GL_ERROR();
+ glEnableClientState(GL_TEXTURE_COORD_ARRAY); CHECK_GL_ERROR();
- CHECK_GL_ERROR( glEnable(GL_TEXTURE_2D) );
+ glEnable(GL_TEXTURE_2D); CHECK_GL_ERROR();
// Setup the GL viewport
- CHECK_GL_ERROR( glViewport(0, 0, _videoMode.hardwareWidth, _videoMode.hardwareHeight) );
+ glViewport(0, 0, _videoMode.hardwareWidth, _videoMode.hardwareHeight); CHECK_GL_ERROR();
// Setup coordinates system
- CHECK_GL_ERROR( glMatrixMode(GL_PROJECTION) );
- CHECK_GL_ERROR( glLoadIdentity() );
- CHECK_GL_ERROR( glOrtho(0, _videoMode.hardwareWidth, _videoMode.hardwareHeight, 0, -1, 1) );
- CHECK_GL_ERROR( glMatrixMode(GL_MODELVIEW) );
- CHECK_GL_ERROR( glLoadIdentity() );
+ glMatrixMode(GL_PROJECTION); CHECK_GL_ERROR();
+ glLoadIdentity(); CHECK_GL_ERROR();
+ glOrtho(0, _videoMode.hardwareWidth, _videoMode.hardwareHeight, 0, -1, 1); CHECK_GL_ERROR();
+ glMatrixMode(GL_MODELVIEW); CHECK_GL_ERROR();
+ glLoadIdentity(); CHECK_GL_ERROR();
}
bool OpenGLGraphicsManager::loadGFXMode() {