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' >>>
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: