| From b9998bbc1e1c329f6bf69c24606a2be7a4973b8c Mon Sep 17 00:00:00 2001 |
| From: jtsiomb <jtsiomb@7f0cb862-5218-0410-a997-914c9d46530a> |
| 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: https://svn.code.sf.net/p/freeglut/code/trunk@1863 7f0cb862-5218-0410-a997-914c9d46530a |
| [Retrieved from: |
| https://github.com/dcnieho/FreeGLUT/commit/b9998bbc1e1c329f6bf69c24606a2be7a4973b8c] |
| Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> |
| --- |
| freeglut/freeglut/src/fg_gl2.c | 14 ++++++++++++++ |
| freeglut/freeglut/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 38b0acbb..54b4285b 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 ab8ba5c7..fb3d4676 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 |
| |