FWIW, I've used PyOpenGL on Win64 without issue.
From: Mike C. Fletcher [mailto:mcfletch@...]
Sent: Sunday, March 21, 2010 4:28 PM
To: Derek Escontrias
Subject: Re: [PyOpenGL-Users] Getting Started With PyOpenGL and OpenGL 3.2
Derek Escontrias wrote:
> Hello, this is my first message to the mailing list. I am using
> Python 2.6, PyOpenGL 3.0.1, Windows Vista 64,
> and a NVIDIA GeForce 9800 GTX+ graphics card with the latest
Just as a note, I don't have a Win64 box on which to test, so PyOpenGL
isn't tested on Win64 at all. It is possible it just doesn't work at
all due to some bug or another.
> I am trying to use PyOpenGL in a forward compatible mode. I am
> new to OpenGL 3.x and I am finding
> it very difficult to locate information about getting started. I
> have been piecemealing information
> from the OpenGL specifications; However, I do not believe my
> PyOpenGL is setup correctly to be used
> in this way.
> My current problem is that I am receiving a NullFunctionError
> when attempting to call
> glGenBuffers. The documentation states that this method is not
> available if the OpenGL version is
> less than 1.5.
I don't really use Windows. I believe the NVidia drivers will advertise
2.x level functionality at least, but I know there are some Win32
drivers that advertise 1.x and have everything beyond that as extensions.
> I am not sure how to hook-up PyOpenGL for use with OpenGL 3.2.
> Do I need to compile
> PyOpenGL myself?
PyOpenGL isn't compiled. There are a few binary plug-ins that can be
compiled to optimize it, but the core is pure-python + ctypes.
> Is there a flag I can set to indicate which library files to use?
Nope, it will use your platform's OpenGL implementation.
> Is this a result of an
> inappropriate context?
Possible, but extremely unlikely unless you're going out-of-your-way to
do something exotic. Default contexts generally have the driver's
primary features available.
> What is the appropriate way to setup a forward compatible
> context in PyOpenGL?
I haven't tried recently. There are now entry points that allow you to
specify it, but when I was doing it they weren't yet available. You can do:
at the top of your application, but that doesn't change the context,
only prevents legacy entry-points from being loaded.
> I am using wxPython and its GLCanvas that implements a GL
> context. I am under the impression that
> I need to create my own; However, I was having some difficulty
> following guides on using WGL as I found
> some of the functionality not present in PyOpenGL. This is in
> reference to an AMD whitepaper
> <http://developer.amd.com/gpu_assets/GL3_WhitePaper.pdf> in which
> I could not locate the ARB create context extension or the PFN
> for creating context attributes, where
> I think the specification mentioned one would set a forward
> compatibility mode if desired.
wxPython has its own mechanism for specifying flags, but I don't see any
legacy-free constant when I import it here.
You shouldn't *need* a forward-compatible context, generally speaking.
That is, the forward-compatible context is just not loading the legacy
functions, it doesn't change the behavior of the context itself. The
ARB entry points for the various OpenGL 3.x features are all available,
so you *should* be able to use those if your card is able to provide
them. You can see which extensions are available by calling
glGetString(GL_EXTENSIONS). You can see what version of OpenGL is
advertised by doing glGetString( GL_VERSION ), note that both of those
need to be done with a GL context (window) created.
Mike C. Fletcher
Designer, VR Plumber, Coder
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
PyOpenGL-Users mailing list
This message, including any attachments, may contain privileged and/or confidential information. Any distribution or use of this email by anyone other than the intended recipient(s) is strictly prohibited. If you are not the intended recipient, please notify the sender immediately and delete all copies. Thank you.