Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/gpu/GPU_legacy_stubs.h')
-rw-r--r--source/blender/gpu/GPU_legacy_stubs.h246
1 files changed, 246 insertions, 0 deletions
diff --git a/source/blender/gpu/GPU_legacy_stubs.h b/source/blender/gpu/GPU_legacy_stubs.h
new file mode 100644
index 00000000000..c115b3eb617
--- /dev/null
+++ b/source/blender/gpu/GPU_legacy_stubs.h
@@ -0,0 +1,246 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * 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.
+ *
+ * The Original Code is Copyright (C) 2017 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Blender Foundation, Dalai Felinto.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file GPU_legacy_stubs.h
+ * \ingroup gpu
+ *
+ * This is to mark the transition to OpenGL core profile
+ * The idea is to allow Blender 2.8 to be built with OpenGL 3.3 even if it means breaking things
+ *
+ * This file should be removed in the future
+ */
+
+#ifndef __GPU_LEGACY_STUBS_H__
+#define __GPU_LEGACY_STUBS_H__
+
+#if defined(__GNUC__)
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wunused-parameter"
+#endif
+
+#include "BLI_utildefines.h"
+
+#define _GL_VOID static inline void
+#define _GL_VOID_RET {}
+
+#define _GL_INT static inline GLint
+#define _GL_INT_RET { return 0; }
+
+static bool disable_enable_check(GLenum cap)
+{
+ return ELEM(cap,
+ GL_ALPHA_TEST,
+ GL_LINE_STIPPLE,
+ GL_POINT_SPRITE,
+ GL_TEXTURE_1D,
+ GL_TEXTURE_2D,
+ GL_TEXTURE_GEN_S,
+ GL_TEXTURE_GEN_T,
+ -1
+ );
+}
+
+static bool tex_env_check(GLenum target, GLenum pname)
+{
+ return (ELEM(target, GL_TEXTURE_ENV) ||
+ (target == GL_TEXTURE_FILTER_CONTROL && pname == GL_TEXTURE_LOD_BIAS));
+}
+
+#define glAlphaFunc oldAlphaFunc
+_GL_VOID oldAlphaFunc (GLenum func, GLclampf ref) _GL_VOID_RET
+
+#define glBegin oldBegin
+_GL_VOID oldBegin (GLenum mode) _GL_VOID_RET
+
+#define glBitmap oldBitmap
+_GL_VOID oldBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap) _GL_VOID_RET
+
+#define glClipPlane oldClipPlane
+_GL_VOID oldClipPlane (GLenum plane, const GLdouble *equation) _GL_VOID_RET
+
+#define glColor3f oldColor3f
+_GL_VOID oldColor3f (GLfloat red, GLfloat green, GLfloat blue) _GL_VOID_RET
+
+#define glColor3fv oldColor3fv
+_GL_VOID oldColor3fv (const GLfloat *v) _GL_VOID_RET
+
+#define glColor3ub oldColor3ub
+_GL_VOID oldColor3ub (GLubyte red, GLubyte green, GLubyte blue) _GL_VOID_RET
+
+#define glColor3ubv oldColor3ubv
+_GL_VOID oldColor3ubv (const GLubyte *v) _GL_VOID_RET
+
+#define glColor4f oldColor4f
+_GL_VOID oldColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) _GL_VOID_RET
+
+#define glColor4ub oldColor4ub
+_GL_VOID oldColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) _GL_VOID_RET
+
+#define glColor4ubv oldColor4ubv
+_GL_VOID oldColor4ubv (const GLubyte *v) _GL_VOID_RET
+
+#define glColorPointer oldColorPointer
+_GL_VOID oldColorPointer (GLint size, GLenum type, GLsizei stride, const void *pointer) _GL_VOID_RET
+
+_GL_VOID oldDisable (GLenum cap)
+{
+ if (!disable_enable_check(cap)) {
+ glDisable(cap);
+ }
+}
+#define glDisable oldDisable
+
+#define glDisableClientState oldDisableClientState
+_GL_VOID oldDisableClientState (GLenum array) _GL_VOID_RET
+
+_GL_VOID oldEnable (GLenum cap)
+{
+ if (!disable_enable_check(cap)) {
+ glEnable(cap);
+ }
+}
+#define glEnable oldEnable
+
+#define glEnableClientState oldEnableClientState
+_GL_VOID oldEnableClientState (GLenum array) _GL_VOID_RET
+
+#define glEnd oldEnd
+_GL_VOID oldEnd (void) _GL_VOID_RET
+
+#define glInitNames oldInitNames
+_GL_VOID oldInitNames (void) _GL_VOID_RET
+
+#define glLightf oldLightf
+_GL_VOID oldLightf (GLenum light, GLenum pname, GLfloat param) _GL_VOID_RET
+
+#define glLightfv oldLightfv
+_GL_VOID oldLightfv (GLenum light, GLenum pname, const GLfloat *params) _GL_VOID_RET
+
+#define glLineStipple oldLineStipple
+_GL_VOID oldLineStipple (GLint factor, GLushort pattern) _GL_VOID_RET
+
+#define glLoadName oldLoadName
+_GL_VOID oldLoadName (GLuint name) _GL_VOID_RET
+
+#define glMaterialfv oldMaterialfv
+_GL_VOID oldMaterialfv (GLenum face, GLenum pname, const GLfloat *params) _GL_VOID_RET
+
+#define glMateriali oldMateriali
+_GL_VOID oldMateriali (GLenum face, GLenum pname, GLint param) _GL_VOID_RET
+
+#define glNormal3fv oldNormal3fv
+_GL_VOID oldNormal3fv (const GLfloat *v) _GL_VOID_RET
+
+#define glNormal3sv oldNormal3sv
+_GL_VOID oldNormal3sv (const GLshort *v) _GL_VOID_RET
+
+#define glNormalPointer oldNormalPointer
+_GL_VOID oldNormalPointer (GLenum type, GLsizei stride, const void *pointer) _GL_VOID_RET
+
+#define glPopName oldPopName
+_GL_VOID oldPopName (void) _GL_VOID_RET
+
+#define glPushName oldPushName
+_GL_VOID oldPushName (GLuint name) _GL_VOID_RET
+
+#define glRasterPos2f oldRasterPos2f
+_GL_VOID oldRasterPos2f (GLfloat x, GLfloat y) _GL_VOID_RET
+
+#define glRenderMode oldRenderMode
+_GL_INT oldRenderMode (GLenum mode) _GL_INT_RET
+
+#define glSelectBuffer oldSelectBuffer
+_GL_VOID oldSelectBuffer (GLsizei size, GLuint *buffer) _GL_VOID_RET
+
+#define glShadeModel oldShadeModel
+_GL_VOID oldShadeModel (GLenum mode) _GL_VOID_RET
+
+#define glTexCoord2fv oldTexCoord2fv
+_GL_VOID oldTexCoord2fv (const GLfloat *v) _GL_VOID_RET
+
+_GL_VOID oldTexEnvf(GLenum target, GLenum pname, GLint param)
+{
+ if (!tex_env_check(target, pname)) {
+ glTexEnvf(target, pname, param);
+ }
+}
+#define glTexEnvf oldTexEnvf
+
+_GL_VOID oldTexEnvfv(GLenum target, GLenum pname, const GLfloat *params)
+{
+ if (!tex_env_check(target, pname)) {
+ glTexEnvfv(target, pname, params);
+ }
+}
+#define glTexEnvfv oldTexEnvfv
+
+_GL_VOID oldTexEnvi(GLenum target, GLenum pname, GLint param)
+{
+ if (!tex_env_check(target, pname)) {
+ glTexEnvi(target, pname, param);
+ }
+}
+#define glTexEnvi oldTexEnvi
+
+_GL_VOID oldTexGeni(GLenum coord, GLenum pname, GLint param)
+{
+ if (pname != GL_TEXTURE_GEN_MODE) {
+ glTexGeni(coord, pname, param);
+ }
+}
+#define glTexGeni oldTexGeni
+
+#define glVertex2f oldVertex2f
+_GL_VOID oldVertex2f (GLfloat x, GLfloat y) _GL_VOID_RET
+
+#define glVertex3f oldVertex3f
+_GL_VOID oldVertex3f (GLfloat x, GLfloat y, GLfloat z) _GL_VOID_RET
+
+#define glTexCoord3fv oldTexCoord3fv
+_GL_VOID oldTexCoord3fv (const GLfloat *v) _GL_VOID_RET
+
+#define glTexCoordPointer oldTexCoordPointer
+_GL_VOID oldTexCoordPointer (GLint size, GLenum type, GLsizei stride, const void *pointer) _GL_VOID_RET
+
+#define glVertexPointer oldVertexPointer
+_GL_VOID oldVertexPointer (GLint size, GLenum type, GLsizei stride, const void *pointer) _GL_VOID_RET
+
+#define glVertex3fv oldVertex3fv
+_GL_VOID oldVertex3fv (const GLfloat *v) _GL_VOID_RET
+
+
+#undef _GL_VOID
+#undef _GL_VOID_RET
+
+#undef _GL_INT
+#undef _GL_INT_RET
+
+#if defined(__GNUC__)
+# pragma GCC diagnostic pop
+#endif
+
+#endif /* __GPU_LEGACY_STUBS_H__ */