[packages/warzone2100] - fix building with glew 1.12

baggins baggins at pld-linux.org
Mon Jul 20 21:51:05 CEST 2015


commit de5dce1b90ec878baf81731094ad8121c81a4fd3
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Mon Jul 20 19:50:51 2015 +0000

    - fix building with glew 1.12

 glew-1.12.patch  | 125 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 warzone2100.spec |   2 +
 2 files changed, 127 insertions(+)
---
diff --git a/warzone2100.spec b/warzone2100.spec
index 30a5ae3..b1d2c27 100644
--- a/warzone2100.spec
+++ b/warzone2100.spec
@@ -7,6 +7,7 @@ License:	GPL v2+
 Group:		X11/Applications/Games/Strategy
 Source0:	http://downloads.sourceforge.net/warzone2100/%{name}-%{version}.tar.xz
 # Source0-md5:	4e947125e9604821164f1ad9d1922447
+Patch0:		glew-1.12.patch
 URL:		http://www.wz2100.net/
 BuildRequires:	OpenAL-devel >= 0.0.8-4
 BuildRequires:	OpenGL-GLU-devel
@@ -52,6 +53,7 @@ artyleryjskich oraz obronie przeciwlotniczej.
 
 %prep
 %setup -q
+%patch0 -p1
 
 # et_EE -> et
 %{__sed} -e 's/et_EE/et/g' -i po/LINGUAS
diff --git a/glew-1.12.patch b/glew-1.12.patch
new file mode 100644
index 0000000..29a7fa7
--- /dev/null
+++ b/glew-1.12.patch
@@ -0,0 +1,125 @@
+From 6a6c611ca3d9d6745e5343f2ee041892772ccae6 Mon Sep 17 00:00:00 2001
+From: vexed <vexed at wz2100.net>
+Date: Thu, 16 Jul 2015 22:45:14 -0400
+Subject: [PATCH] Resync/backport the code base:
+
+3.1: Remove hack to support some pre-OpenGL-2.0 systems that made
+assumptions about internals in GLEW that breaks with GLEW 1.12.
+
+See ticket:4300 reported by pabs
+
+(cherry picked from commit d512d1dc9857e3c2bbfa0a7b5856bdf420412b8f)
+
+Conflicts:
+	lib/ivis_opengl/screen.cpp
+---
+ lib/ivis_opengl/screen.cpp | 61 ----------------------------------------------
+ lib/ivis_opengl/screen.h   |  1 -
+ src/init.cpp               |  3 ---
+ 3 files changed, 65 deletions(-)
+
+diff --git a/lib/ivis_opengl/screen.cpp b/lib/ivis_opengl/screen.cpp
+index b0aa0f5..b957227 100644
+--- a/lib/ivis_opengl/screen.cpp
++++ b/lib/ivis_opengl/screen.cpp
+@@ -175,7 +175,6 @@ bool screenInitialise()
+ 
+ 	if (canRunShaders)
+ 	{
+-		screen_EnableMissingFunctions();  // We need to do this before pie_LoadShaders(), but the effect of this call will be undone later by iV_TextInit(), so we will need to call it again.
+ 		if (pie_LoadShaders())
+ 		{
+ 			pie_SetShaderAvailability(true);
+@@ -207,66 +206,6 @@ void screenShutDown(void)
+ 	return GLEW_VERSION_1_5 || GLEW_ARB_vertex_buffer_object;
+ }
+ 
+-// Make OpenGL's VBO functions available under the core names for drivers that support OpenGL 1.4 only but have the VBO extension
+-void screen_EnableMissingFunctions()
+-{
+-	if (!GLEW_VERSION_1_3 && GLEW_ARB_multitexture)
+-	{
+-		debug(LOG_WARNING, "Pre-OpenGL 1.3: Fixing ARB_multitexture extension function names.");
+-
+-		__glewActiveTexture = __glewActiveTextureARB;
+-		__glewMultiTexCoord2fv = __glewMultiTexCoord2fvARB;
+-	}
+-
+-	if (!GLEW_VERSION_1_5 && GLEW_ARB_vertex_buffer_object)
+-	{
+-		debug(LOG_WARNING, "Pre-OpenGL 1.5: Fixing ARB_vertex_buffer_object extension function names.");
+-
+-		__glewBindBuffer = __glewBindBufferARB;
+-		__glewBufferData = __glewBufferDataARB;
+-		__glewBufferSubData = __glewBufferSubDataARB;
+-		__glewDeleteBuffers = __glewDeleteBuffersARB;
+-		__glewGenBuffers = __glewGenBuffersARB;
+-		__glewGetBufferParameteriv = __glewGetBufferParameterivARB;
+-		__glewGetBufferPointerv = __glewGetBufferPointervARB;
+-		__glewGetBufferSubData = __glewGetBufferSubDataARB;
+-		__glewIsBuffer = __glewIsBufferARB;
+-		__glewMapBuffer = __glewMapBufferARB;
+-		__glewUnmapBuffer = __glewUnmapBufferARB;
+-	}
+-
+-	if (!GLEW_VERSION_2_0 && GLEW_ARB_shader_objects)
+-	{
+-		debug(LOG_WARNING, "Pre-OpenGL 2.0: Fixing ARB_shader_objects extension function names.");
+-
+-		__glewGetUniformLocation = __glewGetUniformLocationARB;
+-		__glewAttachShader = __glewAttachObjectARB;
+-		__glewCompileShader = __glewCompileShaderARB;
+-		__glewCreateProgram = __glewCreateProgramObjectARB;
+-		__glewCreateShader = __glewCreateShaderObjectARB;
+-		__glewGetProgramInfoLog = __glewGetInfoLogARB;
+-		__glewGetShaderInfoLog = __glewGetInfoLogARB;  // Same as previous.
+-		__glewGetProgramiv = __glewGetObjectParameterivARB;
+-		__glewUseProgram = __glewUseProgramObjectARB;
+-		__glewGetShaderiv = __glewGetObjectParameterivARB;
+-		__glewLinkProgram = __glewLinkProgramARB;
+-		__glewShaderSource = __glewShaderSourceARB;
+-		__glewUniform1f = __glewUniform1fARB;
+-		__glewUniform1i = __glewUniform1iARB;
+-		__glewUniform4fv = __glewUniform4fvARB;
+-	}
+-
+-	if ((GLEW_ARB_imaging || GLEW_EXT_blend_color) && __glewBlendColor == NULL)
+-	{
+-		__glewBlendColor = __glewBlendColorEXT;  // Shouldn't be needed if GLEW_ARB_imaging is true, but apparently is needed even in that case, with some drivers..?
+-		if (__glewBlendColor == NULL)
+-		{
+-			debug(LOG_ERROR, "Your graphics driver is broken, and claims to support ARB_imaging or EXT_blend_color without exporting glBlendColor[EXT].");
+-			__GLEW_ARB_imaging = __GLEW_EXT_blend_color = 0;
+-		}
+-	}
+-}
+-
+ void screen_SetBackDropFromFile(const char* filename)
+ {
+ 	// HACK : We should use a resource handler here!
+diff --git a/lib/ivis_opengl/screen.h b/lib/ivis_opengl/screen.h
+index 7cfc819..09235f4 100644
+--- a/lib/ivis_opengl/screen.h
++++ b/lib/ivis_opengl/screen.h
+@@ -62,7 +62,6 @@ extern void screenDoDumpToDiskIfRequired(void);
+ void screen_enableMapPreview(char *name, int width, int height, Vector2i *playerpositions);
+ void screen_disableMapPreview(void);
+ bool screen_getMapPreview(void);
+-void screen_EnableMissingFunctions();
+ 
+ struct OPENGL_DATA
+ {
+diff --git a/src/init.cpp b/src/init.cpp
+index aaf7003..3f42313 100644
+--- a/src/init.cpp
++++ b/src/init.cpp
+@@ -716,9 +716,6 @@ bool systemInitialise(void)
+ 	// Initialize the iVis text rendering module
+ 	iV_TextInit();
+ 
+-	// Fix badly named OpenGL functions. Must be done after iV_TextInit, to avoid the renames being clobbered by an extra glewInit() call.
+-	screen_EnableMissingFunctions();
+-
+ 	iV_Reset();								// Reset the IV library.
+ 	readAIs();
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/warzone2100.git/commitdiff/de5dce1b90ec878baf81731094ad8121c81a4fd3



More information about the pld-cvs-commit mailing list