# HG changeset patch # User Emmanuel Gil Peyrot # Date 1397927106 -7200 # Node ID 98380e4a0ee5e08a6d95660606d54ffa04eca8cf # Parent 653a9f0876730b8d1c7f5fb9c424e27090f4e9cd Switch to libepoxy instead of libGLEW, which will help with OpenGL portability. diff --git a/README b/README --- a/README +++ b/README @@ -15,6 +15,7 @@ Running: * Python2 (>= 2.6) * Cython * A working OpenGL driver + * libepoxy * SDL2 * SDL2_image, SDL2_mixer, SDL2_ttf * A TTF font file, placed as “font.ttf” in the game directory. diff --git a/pytouhou/lib/opengl.pxd b/pytouhou/lib/opengl.pxd --- a/pytouhou/lib/opengl.pxd +++ b/pytouhou/lib/opengl.pxd @@ -13,12 +13,7 @@ ## -IF USE_GLEW: - cdef extern from 'GL/glew.h' nogil: - GLenum glewInit() - - -cdef extern from 'GL/gl.h' nogil: +cdef extern from 'epoxy/gl.h' nogil: ctypedef unsigned int GLuint ctypedef unsigned short GLushort ctypedef int GLint @@ -123,8 +118,8 @@ cdef extern from 'GL/gl.h' nogil: void glHint(GLenum target, GLenum mode) void glEnableClientState(GLenum cap) + # Here start non-1.x declarations. -cdef extern from 'GL/glext.h' nogil: void glVertexAttribPointer(GLuint index, GLint size, GLenum type_, GLboolean normalized, GLsizei stride, const GLvoid *pointer) void glEnableVertexAttribArray(GLuint index) diff --git a/pytouhou/ui/opengl/backend.pyx b/pytouhou/ui/opengl/backend.pyx --- a/pytouhou/ui/opengl/backend.pyx +++ b/pytouhou/ui/opengl/backend.pyx @@ -6,9 +6,6 @@ from pytouhou.lib.opengl cimport \ GL_PERSPECTIVE_CORRECTION_HINT, GL_FOG_HINT, GL_NICEST, GL_COLOR_ARRAY, GL_VERTEX_ARRAY, GL_TEXTURE_COORD_ARRAY) -IF USE_GLEW: - from pytouhou.lib.opengl cimport glewInit - GameRenderer = None @@ -49,10 +46,6 @@ def create_window(title, x, y, width, he window = Window(title, x, y, width, height, flags) window.gl_create_context() - if USE_GLEW: - if glewInit() != 0: - raise Exception('GLEW init fail!') - # Initialize OpenGL glEnable(GL_BLEND) if is_legacy: diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -17,7 +17,7 @@ except ImportError: COMMAND = 'pkg-config' SDL_LIBRARIES = ['sdl2', 'SDL2_image', 'SDL2_mixer', 'SDL2_ttf'] -GL_LIBRARIES = ['gl'] +GL_LIBRARIES = ['epoxy'] packages = [] extension_names = [] @@ -45,11 +45,11 @@ default_libs = { 'SDL2_image': '-lSDL2_image', 'SDL2_mixer': '-lSDL2_mixer', 'SDL2_ttf': '-lSDL2_ttf', - 'gl': '-lGL' + 'epoxy': '-lepoxy' } -# Check for gl.pc, and don’t compile the OpenGL backend if it isn’t present. +# Check for epoxy.pc, and don’t compile the OpenGL backend if it isn’t present. try: check_output([COMMAND] + GL_LIBRARIES) except CalledProcessError: @@ -120,10 +120,8 @@ for directory, _, files in os.walk('pyto try: from cx_Freeze import setup, Executable except ImportError: - is_windows = False extra = {} else: - is_windows = True nthreads = None # It seems Windows can’t compile in parallel. base = 'Win32GUI' if sys.platform == 'win32' else None extra = {'options': {'build_exe': {'includes': extension_names + ['glob', 'socket', 'select']}}, @@ -144,7 +142,6 @@ setup(name='PyTouhou', compile_time_env={'MAX_TEXTURES': 128, 'MAX_ELEMENTS': 640 * 4 * 3, 'MAX_SOUNDS': 26, - 'USE_OPENGL': use_opengl, - 'USE_GLEW': is_windows}), + 'USE_OPENGL': use_opengl}), scripts=['scripts/pytouhou'] + (['scripts/anmviewer'] if anmviewer else []), **extra)