Skip to content
Advertisement

Python 3.6.4 Arcade Module Window Errors? {pyglet.gl.lib.GLException: b’invalid enumerant’}

UPDATE:

I checked the graphics cards installed on the computers.

The one where it “works” has Nvidia Graphics and the other has Intel HD R graphics under display adapter in Device Manager. I’m assuming the Intel HD R graphics driver is not sufficient (does not contain the OpenGL required?).

What do I need to get on the Intel HD R graphics computer in order for the arcade module to work?

ORIGINAL QUESTION:

Experiencing a very weird issue where python code I’ve written works on one computer but not on another one and I’m not sure why…

I have Python 3.6.4 installed on both computers. Any version which is 3.6 + should be able to run the Arcade module.

This is my code, super simple stuff:

# import needed modules
import random
import arcade

arcade.open_window(800, 600,'most awesome nothing', False)
arcade.set_background_color(arcade.color.BLUE)
arcade.start_render()

python = arcade.Sprite(r"C:UsersThe CubeDesktopSTUDENT FILESPython Game Projects - Teensdiamond.png")

python.center_x = 200
python.center_y = 200
python.draw()

arcade.finish_render()
arcade.run()

Works fine on one computer, but on the other, I get this error:

Code Format:

Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 
 RESTART: C:UsersThe CubeDesktopSTUDENT FILESPython Game Projects - Teensphoenix is a cool cat.py 
Traceback (most recent call last):
  File "C:UsersThe CubeDesktopSTUDENT FILESPython Game Projects - Teensphoenix is a cool cat.py", line 5, in <module>
    arcade.open_window(800, 600,'most awesome nothing', False)
  File "C:UsersThe CubeAppDataLocalProgramsPythonPython36-32libsite-packagesarcadeapplication.py", line 384, in open_window
    _window = Window(width, height, window_title, resizable, update_rate=None)
  File "C:UsersThe CubeAppDataLocalProgramsPythonPython36-32libsite-packagesarcadeapplication.py", line 56, in __init__
    gl.glEnable(gl.GL_MULTISAMPLE_ARB)
  File "C:UsersThe CubeAppDataLocalProgramsPythonPython36-32libsite-packagespygletgllib.py", line 105, in errcheck
    raise GLException(msg)
pyglet.gl.lib.GLException: b'invalid enumerant'
>>> 

Screenshot: enter image description here

Question: Why does it work on one computer and not the other?

Any help would be greatly appreciated. Thank you!

Advertisement

Answer

That line of code enables OpenGL multisampling. It is required for anti-aliasing. It appears that isn’t supported with the graphics card/driver combination.

You can create an arcade.Window instance with antialiasing=False, but the open_window command you are using unfortunately does not support that in 2.0.1.

As issue has been opened to downgrade gracefully if multisampling isn’t supported:

https://github.com/pvcraven/arcade/issues/339

Advertisement