On 08/31/18 04:38, Martijn van Duren wrote:
So here's an updated diff that's been tried and tested.
I placed a comment in both the Makefile and the DESCR so that both users
and future ports maintainers see that it might not work on every system.

OK?

I can't directly test this myself as you know. But if this works for Intel GPUs then it's ok for me.

~Brian

martijn@

Index: Makefile
===================================================================
RCS file: /cvs/ports/games/fretsonfire/Makefile,v
retrieving revision 1.15
diff -u -p -r1.15 Makefile
--- Makefile    29 Sep 2015 10:52:12 -0000      1.15
+++ Makefile    31 Aug 2018 08:37:30 -0000
@@ -1,6 +1,7 @@
  # $OpenBSD: Makefile,v 1.15 2015/09/29 10:52:12 sthen Exp $
-BROKEN = fails at runtime "python2.7 in free(): error: modified chunk-pointer 0x..."
+# This port is known to generate errors on (some) radeon cards.
+# Intel cards appear to work fine.
V = 1.3.110
  COMMENT =             guitar hero clone
Index: patches/patch-src_Texture_py
===================================================================
RCS file: /cvs/ports/games/fretsonfire/patches/patch-src_Texture_py,v
retrieving revision 1.1
diff -u -p -r1.1 patch-src_Texture_py
--- patches/patch-src_Texture_py        6 Apr 2014 21:10:25 -0000       1.1
+++ patches/patch-src_Texture_py        31 Aug 2018 08:37:30 -0000
@@ -1,6 +1,7 @@
  $OpenBSD: patch-src_Texture_py,v 1.1 2014/04/06 21:10:25 sthen Exp $
---- src/Texture.py.orig        Sun Apr  6 18:28:33 2014
-+++ src/Texture.py     Sun Apr  6 18:29:48 2014
+Index: src/Texture.py
+--- src/Texture.py.orig
++++ src/Texture.py
  @@ -24,10 +24,10 @@ from __future__ import division
import Log
@@ -14,3 +15,41 @@ $OpenBSD: patch-src_Texture_py,v 1.1 201
   from OpenGL.GL import *
   from OpenGL.GLU import *
   from Queue import Queue, Empty
+@@ -210,13 +210,13 @@ class Texture:
+     """Load the texture from a PIL image"""
+     image = image.transpose(Image.FLIP_TOP_BOTTOM)
+     if image.mode == "RGBA":
+-      string = image.tostring('raw', 'RGBA', 0, -1)
++      string = image.tobytes('raw', 'RGBA', 0, -1)
+       self.loadRaw(image.size, string, GL_RGBA, 4)
+     elif image.mode == "RGB":
+-      string = image.tostring('raw', 'RGB', 0, -1)
++      string = image.tobytes('raw', 'RGB', 0, -1)
+       self.loadRaw(image.size, string, GL_RGB, 3)
+     elif image.mode == "L":
+-      string = image.tostring('raw', 'L', 0, -1)
++      string = image.tobytes('raw', 'L', 0, -1)
+       self.loadRaw(image.size, string, GL_LUMINANCE, 1)
+     else:
+       raise TextureException("Unsupported image mode '%s'" % image.mode)
+@@ -254,16 +254,16 @@ class Texture:
+     if monochrome:
+       # pygame doesn't support monochrome, so the fastest way
+       # appears to be using PIL to do the conversion.
+-      string = pygame.image.tostring(surface, "RGB")
++      string = pygame.image.tobytes(surface, "RGB")
+       image = Image.fromstring("RGB", surface.get_size(), string).convert("L")
+-      string = image.tostring('raw', 'L', 0, -1)
++      string = image.tobytes('raw', 'L', 0, -1)
+       self.loadRaw(surface.get_size(), string, GL_LUMINANCE, GL_INTENSITY8)
+     else:
+       if alphaChannel:
+-        string = pygame.image.tostring(surface, "RGBA", True)
++        string = pygame.image.tobytes(surface, "RGBA", True)
+         self.loadRaw(surface.get_size(), string, GL_RGBA, 4)
+       else:
+-        string = pygame.image.tostring(surface, "RGB", True)
++        string = pygame.image.tobytes(surface, "RGB", True)
+         self.loadRaw(surface.get_size(), string, GL_RGB, 3)
+     self.size = (w / w2, h / h2)
+
Index: pkg/DESCR
===================================================================
RCS file: /cvs/ports/games/fretsonfire/pkg/DESCR,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 DESCR
--- pkg/DESCR   16 Oct 2009 23:11:38 -0000      1.1.1.1
+++ pkg/DESCR   31 Aug 2018 08:37:30 -0000
@@ -10,3 +10,5 @@ Features
      * Supports importing Guitar Hero I and Guitar Hero II songs
      * Multiplatform; runs on Windows, Linux, Mac OS X, OpenBSD and FreeBSD
      * Open source, full Python source code available
+
+This game is known to crash on some (mostly radeon) graphics card.


Reply via email to