db0140c
diff -uNr ogre-1.9.0/RenderSystems/GL/include/GL/glew.h ogre-1.9.0.glew/RenderSystems/GL/include/GL/glew.h
db0140c
--- ogre-1.9.0/RenderSystems/GL/include/GL/glew.h	2014-06-07 21:12:14.000000000 +0400
db0140c
+++ ogre-1.9.0.glew/RenderSystems/GL/include/GL/glew.h	2014-06-07 21:45:03.422493324 +0400
db0140c
@@ -109,6 +109,11 @@
db0140c
 #define __GLEXT_H_
db0140c
 #define __gl_ATI_h_
db0140c
 
db0140c
+// SJS
db0140c
+// Build statically
db0140c
+#define GLEW_STATIC
db0140c
+// SJS
db0140c
+
db0140c
 #if defined(_WIN32)
db0140c
 
db0140c
 /*
db0140c
diff -uNr ogre-1.9.0/RenderSystems/GL/src/glew.cpp ogre-1.9.0.glew/RenderSystems/GL/src/glew.cpp
db0140c
--- ogre-1.9.0/RenderSystems/GL/src/glew.cpp	2014-06-07 21:12:16.000000000 +0400
db0140c
+++ ogre-1.9.0.glew/RenderSystems/GL/src/glew.cpp	2014-06-07 21:48:09.519775784 +0400
Alexey Torkhov 1043f3c
@@ -29,6 +29,10 @@
Alexey Torkhov 1043f3c
 ** THE POSSIBILITY OF SUCH DAMAGE.
Alexey Torkhov 1043f3c
 */
Alexey Torkhov 1043f3c
 
Alexey Torkhov 1043f3c
+// SJS
Alexey Torkhov 1043f3c
+#include "OgreGLSupport.h"
Alexey Torkhov 1043f3c
+// SJS
Alexey Torkhov 1043f3c
+
Alexey Torkhov 1043f3c
 #include <GL/glew.h>
db0140c
 
Alexey Torkhov 1043f3c
 #if defined(_WIN32)
db0140c
@@ -57,13 +61,21 @@
Alexey Torkhov 1043f3c
 #  endif /* _WIN32 */
Alexey Torkhov 1043f3c
 #  define GLEW_CONTEXT_ARG_DEF_LIST GLEWContext* ctx
Alexey Torkhov 1043f3c
 #else /* GLEW_MX */
Alexey Torkhov 1043f3c
-#  define GLEW_CONTEXT_ARG_DEF_INIT void
Alexey Torkhov 1043f3c
-#  define GLEW_CONTEXT_ARG_VAR_INIT
Alexey Torkhov 1043f3c
-#  define GLEW_CONTEXT_ARG_DEF_LIST void
Alexey Torkhov 1043f3c
-#  define WGLEW_CONTEXT_ARG_DEF_INIT void
Alexey Torkhov 1043f3c
-#  define WGLEW_CONTEXT_ARG_DEF_LIST void
Alexey Torkhov 1043f3c
-#  define GLXEW_CONTEXT_ARG_DEF_INIT void
Alexey Torkhov 1043f3c
-#  define GLXEW_CONTEXT_ARG_DEF_LIST void
db0140c
+// SJS
Alexey Torkhov 1043f3c
+#  define GLEW_CONTEXT_ARG_DEF_INIT Ogre::GLSupport *glSupport
Alexey Torkhov 1043f3c
+#  define GLEW_CONTEXT_ARG_VAR_INIT glSupport
Alexey Torkhov 1043f3c
+#  define GLEW_CONTEXT_ARG_DEF_LIST Ogre::GLSupport *glSupport
Alexey Torkhov 1043f3c
+#  define WGLEW_CONTEXT_ARG_DEF_INIT Ogre::GLSupport *glSupport
Alexey Torkhov 1043f3c
+#  define WGLEW_CONTEXT_ARG_DEF_LIST Ogre::GLSupport *glSupport
Alexey Torkhov 1043f3c
+#  define GLXEW_CONTEXT_ARG_DEF_INIT Ogre::GLSupport *glSupport
Alexey Torkhov 1043f3c
+#  define GLXEW_CONTEXT_ARG_DEF_LIST Ogre::GLSupport *glSupport
db0140c
+//#  define GLEW_CONTEXT_ARG_DEF_INIT void
db0140c
+//#  define GLEW_CONTEXT_ARG_VAR_INIT
db0140c
+//#  define GLEW_CONTEXT_ARG_DEF_LIST void
db0140c
+//#  define WGLEW_CONTEXT_ARG_DEF_INIT void
db0140c
+//#  define WGLEW_CONTEXT_ARG_DEF_LIST void
db0140c
+//#  define GLXEW_CONTEXT_ARG_DEF_INIT void
db0140c
+//#  define GLXEW_CONTEXT_ARG_DEF_LIST void
Alexey Torkhov 1043f3c
 #endif /* GLEW_MX */
Alexey Torkhov 1043f3c
 
0d05100
 #if defined(__sgi) || defined (__sun) || defined(GLEW_APPLE_GLX)
db0140c
@@ -137,7 +149,7 @@
db0140c
 #endif
Alexey Torkhov 1043f3c
   }
Alexey Torkhov 1043f3c
   /* prepend a '_' for the Unix C symbol mangling convention */
Alexey Torkhov 1043f3c
-  symbolName = malloc(strlen((const char*)name) + 2);
Alexey Torkhov 1043f3c
+  symbolName = (char*)malloc(strlen((const char*)name) + 2);
Alexey Torkhov 1043f3c
   strcpy(symbolName+1, (const char*)name);
Alexey Torkhov 1043f3c
   symbolName[0] = '_';
Alexey Torkhov 1043f3c
   symbol = NULL;
db0140c
@@ -9481,9 +9493,11 @@
Alexey Torkhov 1043f3c
 
Alexey Torkhov 1043f3c
 /* ------------------------------------------------------------------------- */
Alexey Torkhov 1043f3c
 
Alexey Torkhov 1043f3c
-#ifndef GLEW_MX
Alexey Torkhov 1043f3c
-static
Alexey Torkhov 1043f3c
-#endif
Alexey Torkhov 1043f3c
+// SJS
Alexey Torkhov 1043f3c
+//#ifndef GLEW_MX
Alexey Torkhov 1043f3c
+//static
Alexey Torkhov 1043f3c
+//#endif
Alexey Torkhov 1043f3c
+// SJS
db0140c
 GLenum GLEWAPIENTRY glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST)
Alexey Torkhov 1043f3c
 {
Alexey Torkhov 1043f3c
   const GLubyte* s;
db0140c
@@ -12543,7 +12557,14 @@
Alexey Torkhov 1043f3c
 {
Alexey Torkhov 1043f3c
   GLboolean r = GL_FALSE;
Alexey Torkhov 1043f3c
 
Alexey Torkhov 1043f3c
-  r = ((glXGetCurrentDisplay = (PFNGLXGETCURRENTDISPLAYPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentDisplay")) == NULL) || r;
db0140c
+    // SJS
db0140c
+       // FB: Patched to allow Ogre to overload glXGetCurrentDisplay
db0140c
+       if (glXGetCurrentDisplay == NULL)
db0140c
+       {
db0140c
+               r = ((glXGetCurrentDisplay = (PFNGLXGETCURRENTDISPLAYPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentDisplay")) == NULL) || r;
db0140c
+       }
db0140c
+       //r = ((glXGetCurrentDisplay = (PFNGLXGETCURRENTDISPLAYPROC)glewGetProcAddress((const GLubyte*)"glXGetCurrentDisplay")) == NULL) || r;
db0140c
+    // SJS
Alexey Torkhov 1043f3c
 
Alexey Torkhov 1043f3c
   return r;
Alexey Torkhov 1043f3c
 }
db0140c
@@ -13476,19 +13497,21 @@
db0140c
 extern GLenum GLEWAPIENTRY glxewContextInit (void);
Alexey Torkhov 1043f3c
 #endif /* _WIN32 */
Alexey Torkhov 1043f3c
 
db0140c
-GLenum GLEWAPIENTRY glewInit (void)
Alexey Torkhov 1043f3c
-{
Alexey Torkhov 1043f3c
-  GLenum r;
db0140c
-  r = glewContextInit();
db0140c
-  if ( r != 0 ) return r;
Alexey Torkhov 1043f3c
-#if defined(_WIN32)
Alexey Torkhov 1043f3c
-  return wglewContextInit();
db0140c
-#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */
Alexey Torkhov 1043f3c
-  return glxewContextInit();
Alexey Torkhov 1043f3c
-#else
Alexey Torkhov 1043f3c
-  return r;
Alexey Torkhov 1043f3c
-#endif /* _WIN32 */
Alexey Torkhov 1043f3c
-}
Alexey Torkhov 1043f3c
+// SJS
db0140c
+//GLenum GLEWAPIENTRY glewInit (void)
Alexey Torkhov 1043f3c
+//{
Alexey Torkhov 1043f3c
+//  GLenum r;
db0140c
+//  r = glewContextInit();
db0140c
+//  if ( r != 0 ) return r;
Alexey Torkhov 1043f3c
+//#if defined(_WIN32)
Alexey Torkhov 1043f3c
+//  return wglewContextInit();
db0140c
+//#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) /* _UNIX */
Alexey Torkhov 1043f3c
+//  return glxewContextInit();
Alexey Torkhov 1043f3c
+//#else
Alexey Torkhov 1043f3c
+//  return r;
Alexey Torkhov 1043f3c
+//#endif /* _WIN32 */
Alexey Torkhov 1043f3c
+//}
Alexey Torkhov 1043f3c
+// End SJS
Alexey Torkhov 1043f3c
 
Alexey Torkhov 1043f3c
 #endif /* !GLEW_MX */
Alexey Torkhov 1043f3c
 #ifdef GLEW_MX