0

I've just freshly installed python 2.7(.6) on Mac OS 10.6.8. I installed python via homebrew, as many of my needed modules as I could via pip, and the rest compiled from source.

I'm making a game, with Pygame and PyOpenGL. The game ran fine on my previous python install (which was 2.6) but unfortunately something in pygame/SDL went wrong and it wouldn't load PNGs any more, so i figured it was time to update. But, I know this code runs.

All of the modules are importing fine, but glTexImage2D fails. Code snippets:

import numpy
from OpenGL.GL import *
from OpenGL.arrays import vbo
from OpenGLContext.arrays import *
from OpenGL.GL import shaders
from OpenGL.GLU import *

--- snip ---

def makeTexture(self, image, w, h, name = False):
    texture = glGenTextures(1)
    glActiveTexture(GL_TEXTURE0)
    glBindTexture(GL_TEXTURE_2D, texture)
    glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, w,h, 0, GL_RGBA, GL_UNSIGNED_BYTE, image )
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
    if name:
        self.textures[name] = texture
    else:
        self.texture = texture

And the error:

Traceback (most recent call last):
--- snip ---
  File "GameParts/Shader.py", line 88, in makeTexture
    glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, w,h, 0, GL_RGBA, GL_UNSIGNED_BYTE, image )
  File "latebind.pyx", line 32, in OpenGL_accelerate.latebind.LateBind.__call__ (src/latebind.c:989)
  File "wrapper.pyx", line 314, in OpenGL_accelerate.wrapper.Wrapper.__call__ (src/wrapper.c:6505)
ctypes.ArgumentError: ("argument 9: <type 'exceptions.TypeError'>: No array-type handler for type <class 'ctypes.c_ubyte'> (value: c_ubyte(0)) registered", (GL_TEXTURE_2D, 0, GL_RGBA, 256, 256, 0, GL_RGBA, GL_UNSIGNED_BYTE, c_ubyte(0)))

$ pip list
mercurial (2.9.2)
numpy (1.8.1)
OpenGLContext (2.3.0b1)
Pillow (2.5.1)
pip (1.5.4)
PyDispatcher (2.0.3)
pygame (1.9.2a0)
PyOpenGL (3.1.0)
PyOpenGL-accelerate (3.1.0)
PyOpenGL-Demo (3.0.1b1)
PyVRML97 (2.3.0a3)
setuptools (3.4.1)
wsgiref (0.1.2)
wxPython (3.0.0.0)
wxPython-common (3.0.0.0)

As far as I can tell, it might be an issue with the order things were installed?

bonzairob
  • 81
  • 1
  • 4
  • 10

1 Answers1

0

I was passing the wrong data via "image" - a zero - simple error on my part. The real question is why it ever worked in the first place...

bonzairob
  • 81
  • 1
  • 4
  • 10