From 412dc0b70402bb4e974287672335c1b6b7758b77 Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Fri, 21 Feb 2020 22:25:31 +0000 Subject: [PATCH] Work-around for an issue which cropped up with the release of gcc-10. In their infinite wisdom, they decided to build with -fno-common as default from now on, breaking every piece of C code which used to declare common symbols in header files, as was the convention since the dawn of time. We now have to duplicate all declarations to an arbitrary source file, and change the header-file ones to prefix them with extern. git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@1863 7f0cb862-5218-0410-a997-914c9d46530a --- src/fg_gl2.c | 14 ++++++++++++++ src/fg_gl2.h | 14 +++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/fg_gl2.c b/src/fg_gl2.c index 38b0acb..54b4285 100644 --- a/src/fg_gl2.c +++ b/src/fg_gl2.c @@ -27,6 +27,20 @@ #include "fg_internal.h" #include "fg_gl2.h" +#ifndef GL_ES_VERSION_2_0 +/* GLES2 has the corresponding entry points built-in, and these fgh-prefixed + * names are defined in fg_gl2.h header to reference them, for any other case, + * define them as function pointers here. + */ +FGH_PFNGLGENBUFFERSPROC fghGenBuffers; +FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; +FGH_PFNGLBINDBUFFERPROC fghBindBuffer; +FGH_PFNGLBUFFERDATAPROC fghBufferData; +FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; +FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; +FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; +#endif + void FGAPIENTRY glutSetVertexAttribCoord3(GLint attrib) { if (fgStructure.CurrentWindow != NULL) fgStructure.CurrentWindow->Window.attribute_v_coord = attrib; diff --git a/src/fg_gl2.h b/src/fg_gl2.h index ab8ba5c..fb3d467 100644 --- a/src/fg_gl2.h +++ b/src/fg_gl2.h @@ -67,13 +67,13 @@ typedef void (APIENTRY *FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); typedef void (APIENTRY *FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint); typedef void (APIENTRY *FGH_PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -FGH_PFNGLGENBUFFERSPROC fghGenBuffers; -FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; -FGH_PFNGLBINDBUFFERPROC fghBindBuffer; -FGH_PFNGLBUFFERDATAPROC fghBufferData; -FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; -FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; -FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; +extern FGH_PFNGLGENBUFFERSPROC fghGenBuffers; +extern FGH_PFNGLDELETEBUFFERSPROC fghDeleteBuffers; +extern FGH_PFNGLBINDBUFFERPROC fghBindBuffer; +extern FGH_PFNGLBUFFERDATAPROC fghBufferData; +extern FGH_PFNGLENABLEVERTEXATTRIBARRAYPROC fghEnableVertexAttribArray; +extern FGH_PFNGLDISABLEVERTEXATTRIBARRAYPROC fghDisableVertexAttribArray; +extern FGH_PFNGLVERTEXATTRIBPOINTERPROC fghVertexAttribPointer; # endif -- 1.7.10.4