From 9f04c0c3d89dec57045c4f13305ce8694d60de6a Mon Sep 17 00:00:00 2001 From: Kp Date: Thu, 2 Apr 2015 02:36:54 +0000 Subject: [PATCH] Make OGL_ENABLE safe for single statement blocks --- common/include/internal.h | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/common/include/internal.h b/common/include/internal.h index 4e5777f19..4f54ac2f3 100644 --- a/common/include/internal.h +++ b/common/include/internal.h @@ -25,13 +25,10 @@ extern int ogl_fullscreen; extern int r_upixelc; extern int GL_TEXTURE_2D_enabled; -#define OGL_ENABLE2(a,f) {if (a ## _enabled!=1) {f;a ## _enabled=1;}} -#define OGL_DISABLE2(a,f) {if (a ## _enabled!=0) {f;a ## _enabled=0;}} -//#define OGL_ENABLE(a) OGL_ENABLE2(a,glEnable(a)) -//#define OGL_DISABLE(a) OGL_DISABLE2(a,glDisable(a)) -#define OGL_ENABLE(a) OGL_ENABLE2(GL_ ## a,glEnable(GL_ ## a)) -#define OGL_DISABLE(a) OGL_DISABLE2(GL_ ## a,glDisable(GL_ ## a)) +#define OGL_SET_FEATURE_STATE(G,V,F) static_cast(G != V && (G = V, F, 0)) +#define OGL_ENABLE(a) OGL_SET_FEATURE_STATE(GL_##a##_enabled, 1, glEnable(GL_##a)) +#define OGL_DISABLE(a) OGL_SET_FEATURE_STATE(GL_##a##_enabled, 0, glDisable(GL_##a)) //#define OGL_TEXCLAMP() OGL_ENABLE2(GL_texclamp,glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);) //#define OGL_TEXREPEAT() OGL_DISABLE2(GL_texclamp,glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);)