Re: Using PyopenGL with GLArea
Matti Kariluoma <[email protected]> Sat, 11 Mar 2017 11:15:39 -0600
| Newsgroups | gmane.comp.python.opengl.user |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format.
--===============4350110599147389445==
Content-Type: multipart/alternative;
boundary="------------51EF42C50B0E250BF0226C92"
This is a multi-part message in MIME format.
--------------51EF42C50B0E250BF0226C92
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
I forked your gist:
https://gist.github.com/matti-kariluoma/7786a620abe87deb54c6012b07ded884
I added error-checking to work around the errors I encountered, and
placed a print-statement to show how to check which PyOpenGL Platform is
loaded at runtime.
When I tried to run either gist on my Nvidia+Debian laptop (pyopengl
3.0.2), the program crashed immediately with an error similar to:
http://askubuntu.com/questions/175744/x-error-of-failed-request-badrequest-invalid-request-code-or-no-such-operation
When I tried to run your gist on my Intel+Ubuntu 16.10 machine, your
gist gives the errors you described. After making my changes, my gist
displayed a red triangle with platforms "linux2" and "posix".
==
> I just dont 100% get why i need to prefix I would not want to tell a
user they need todo that
PYOPENGL_PLATFORM allows one codebase to support osx, windows, and
various linux flavors. A platform is selected at runtime to simplify the
distribution of PyOpenGL. Some platforms implement things differently-
there will always be bugs or missing functionality when running on
different platforms. Avoid the use of `from X import *' to make your
code more likely to run on a different platform. Instead of:
from OpenGL.GLUT import *
glutInit([])
...try:
from OpenGL import GLUT as glut
glut.glutInit([])
... you'd be surprised how much this helps platform portability.
Each of the platforms has various dependencies that are not installed
when you get pyopengl from source or pip, however the system package
manager (apt) will download the dependencies automatically (e.g.
freeglut3, etc.) for your system's recommended platform. Some of the
"optional" platforms (osmesa, egl) do not have packages in apt, so
you'll need to install the dependencies yourself. This becomes very
complicated when you use external PPAs, or build your own drivers and
libraries!
Hint: Use strace to see which drivers/libraries are being used by your
process, to ensure you are using the drivers/libraries you intend:
$ strace python glutexample.py 2>&1 | grep open
==
>is there a way i can detect the profiles and select the best on startup ?
You can choose between PyOpenGL platforms at runtime by setting
`os.environ' in your code:
import os
os.environ['PYOPENGL_PLATFORM'] = 'posix'
import OpenGL
...you /should/ be able to use the `reload' function
(http://stackoverflow.com/questions/437589/how-do-i-unload-reload-a-python-module)
to choose a different platform at runtime:
import os
os.environ['PYOPENGL_PLATFORM'] = 'posix'
import OpenGL
# check if we have the features we want, if not...
if reload_opengl_platform:
os.environ['PYOPENGL_PLATFORM'] = 'osmesa'
reload(OpenGL)
I did not test the`reload' code above, your results may vary.
On 3/9/17 1:57 PM, Oliver Marks wrote:
> I am not sure if this is an issue now there are a few things I have
> noticed it occurs when using osmesa on x11 and wayland.
>
> I can now run it on both with x11 it just works in wayland if i prefix
> PYOPENGL_PLATFORM = "EGL" then it works.
>
> I am using ubuntu 16.10 and python-gobject 3.22.0-1 from the repository.
>
>
> PYOPENGL_PLATFORM = "EGL"
>
> I have a gi gtkglarea example on stack overflow
> http://stackoverflow.com/questions/42185728/why-is-glgenvertexarrays-undefined-in-pyopengl-when-using-gtkglarea.
>
>
> Tried to use Glut which i have never used before but that seems to be
> a world of pain and brings up new errors :/
>
> - using EGL NotImplementedError: Platform does not define a GLUT font
> retrieval function
> - using osmesa gives me TypeError: unhashable type contextdata.py",
> line 106, in getValue
> - using glx gives me glGenVertexArrays(1) this function takes at least
> 2 arguments (1 given)
>
> This is where i got to with the code but it could be completely wrong
> as you don't seem to manage context in the same way but i did not find
> many glut examples most see to use pygame.
>
> https://gist.github.com/olymk2/b156f7490e3f5662e2fa0cf42b8c7c63
>
>
> Anyway my code kind of works I just dont 100% get why i need to prefix
> I would not want to tell a user they need todo that, so is there a way
> i can detect the profiles and select the best on startup
>
>
>
>
>
>
>
>
> On Wed, Mar 8, 2017 at 3:25 PM Matti Kariluoma
> <[email protected] <mailto:[email protected]>> wrote:
>
> I will take a look on Saturday.
>
> 1) In the meantime, could you create a minimal example that
> demonstrates the problem?
>
> Its always very interesting to see simple-looking code that works
> on some platforms but doesn't work on others; we just had an
> example of such two weeks ago from another user.
>
> Ideally your minimal example would not involve the use of the `gi'
> module, or at the very least, include instructions to bring a
> fresh installation up with that package installed, i.e. "sudo
> apt-get install ..."
>
> 2) Does your problem require `gi' for this error to show?
>
> 3) Is the error reproducible under GLUT or GLFW?
>
> 4) If (2), what steps are needed to install `gi', and what version
> of `gi'?
>
> On 3/5/17 12:49 PM, Oly wrote:
>> Just another thing of note,
>>
>> using PYOPENGL_PLATFORM = "osmesa" with x11 causes the same
>> issue, so it would appear related to the mesa drivers.
>>
>> What other options can that take, can i enforce nvidia or intel
>> instead of osmesa ?
>>
>> perhaps wayland is defaulting to mesa and x11 is using something
>> else.
>>
>> feels like i am getting nearer to a solution, or at least a work
>> around.
>>
>>
>>
>> On Sun, 5 Mar 2017 at 17:29 Oly <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> Also because it maybe useful, i have this being reported by
>> gtk / opengl.
>>
>> Intel_Open_Source_Technology_Center_4.5_(Core_Profile)_Mesa_17.0.0_-_padoka_PPA_Mesa_DRI_Intel(R)_Kabylake_GT2__4.50
>> OpenGL Version 4.5_(Core_Profile)_Mesa_17.0.0_-_padoka_PPA
>> OpenGL Renderer Mesa_DRI_Intel(R)_Kabylake_GT2_
>> Shader Language version 4.50
>>
>> so it looks like things should be new enough to support that
>> feature under wayland.
>>
>>
>> On Sun, 5 Mar 2017 at 17:28 Oly <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> Thanks for the offer not sure how i missed your reply.
>>
>> Anyway i made some progress, yes my issue is with linux
>> and gtk specifically I have also found out it has
>> something todo with wayland.
>>
>> Running the example i can get it to work with my intel
>> and nvidia graphics (optimus card) on x11 but if i am
>> using wayland then i get the error above.
>>
>> Not sure why wayland would effect what available to me
>> anyone seen anything similar ?
>>
>> Seems it i graphics card related.
>>
>> I did not know about this trick
>> PYOPENGL_PLATFORM="osmesa" so thats useful to know but it
>> does not help unfortunately.
>>
>>
>> On Sun, 12 Feb 2017 at 20:20 Matti Kariluoma
>> <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> I tried to have a look at your code, but I don't have
>> the `gi' package
>> on my machine, and `pip install gi' can't find it either.
>>
>> 1) Would you accept help in the form of a program
>> that starts with
>> `from OpenGL import GLUT' , or does your problem
>> require gi?
>>
>> As for the error you posted, looking at
>> https://mesamatrix.net/ I see
>> that glGenVertexArrays is a part of OpenGL 3.0, extension
>> GL_ARB_vertex_array_object which seems to have broad
>> support.
>>
>> 2) Maybe your graphics device (or its driver) is ancient?
>>
>> Since your gist seems to indicate you are using GTK,
>> I assume you are
>> running this under Linux. You may want to look into
>> running PyOpenGL
>> under mesa, using one of their software renderers if
>> for whatever
>> reason you don't have OpenGL3.0 support.
>>
>> Using the mesa CPU renderer under Linux:
>> http://www.mattikariluoma.com/blog/Headless%20Rendered%20OpenGL%20Scenes.html
>>
>> >From: Oliver Marks <oly@di...> <mailto:oly@di...> -
>> 2017-02-11 22:40:09
>> >
>> >Thought i would have a stab at trying to make this
>> work, I cant find any
>> >existing working examples.
>> >
>> >I have linked a gist if any one want to try.
>> >
>> >currently I am getting this error.
>> >
>> >OpenGL.error.NullFunctionError: Attempt to call an
>> undefined function
>> >glGenVertexArrays, check for bool(glGenVertexArrays)
>> before calling
>> >
>> >Which to me sounds like its not available to the
>> context, GLArea is
>> >supplying the context so i am unsure why this would be ?
>> >
>> >Any ideas or can anyone give me some pointers ?
>> >
>> >https://gist.github.com/olymk2/5b3e49ac83130e580bd9983f2e5d49c3
>> >
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the
>> world's most
>> engaging tech sites, SlashDot.org!
>> http://sdm.link/slashdot
>> _______________________________________________
>> PyOpenGL Homepage
>> http://pyopengl.sourceforge.net
>> _______________________________________________
>> PyOpenGL-Users mailing list
>> [email protected]
>> <mailto:[email protected]>
>> https://lists.sourceforge.net/lists/listinfo/pyopengl-users
>>
>
> ------------------------------------------------------------------------------
> Announcing the Oxford Dictionaries API! The API offers world-renowned
> dictionary content that is easy and intuitive to access. Sign up
> for an
> account today to start using our lexical data to power your apps and
> projects. Get started today and enter our developer competition.
> http://sdm.link/oxford_______________________________________________
> PyOpenGL Homepage
> http://pyopengl.sourceforge.net
> _______________________________________________
> PyOpenGL-Users mailing list
> [email protected]
> <mailto:[email protected]>
> https://lists.sourceforge.net/lists/listinfo/pyopengl-users
>
--------------51EF42C50B0E250BF0226C92
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>I forked your gist:
<a class="moz-txt-link-freetext" href="https://gist.github.com/matti-kariluoma/7786a620abe87deb54c6012b07ded884">https://gist.github.com/matti-kariluoma/7786a620abe87deb54c6012b07ded884</a></p>
<p>I added error-checking to work around the errors I encountered,
and placed a print-statement to show how to check which PyOpenGL
Platform is loaded at runtime.<br>
</p>
<p>When I tried to run either gist on my Nvidia+Debian laptop
(pyopengl 3.0.2), the program crashed immediately with an error
similar to:
<a class="moz-txt-link-freetext" href="http://askubuntu.com/questions/175744/x-error-of-failed-request-badrequest-invalid-request-code-or-no-such-operation">http://askubuntu.com/questions/175744/x-error-of-failed-request-badrequest-invalid-request-code-or-no-such-operation</a><br>
</p>
<div class="moz-cite-prefix">When I tried to run your gist on my
Intel+Ubuntu 16.10 machine, your gist gives the errors you
described. After making my changes, my gist displayed a red
triangle with platforms "linux2" and "posix".<br>
<br>
==<br>
<br>
> I just dont 100% get why i need to prefix I would not want to
tell a user they need todo that<br>
<br>
PYOPENGL_PLATFORM allows one codebase to support osx, windows, and
various linux flavors. A platform is selected at runtime to
simplify the distribution of PyOpenGL. Some platforms implement
things differently- there will always be bugs or missing
functionality when running on different platforms. Avoid the use
of `from X import *' to make your code more likely to run on a
different platform. Instead of:<br>
from OpenGL.GLUT import *<br>
glutInit([])<br>
...try:<br>
from OpenGL import GLUT as glut<br>
glut.glutInit([])<br>
... you'd be surprised how much this helps platform portability.<br>
<br>
Each of the platforms has various dependencies that are not
installed when you get pyopengl from source or pip, however the
system package manager (apt) will download the dependencies
automatically (e.g. freeglut3, etc.) for your system's recommended
platform. Some of the "optional" platforms (osmesa, egl) do not
have packages in apt, so you'll need to install the dependencies
yourself. This becomes very complicated when you use external
PPAs, or build your own drivers and libraries!<br>
<br>
Hint: Use strace to see which drivers/libraries are being used by
your process, to ensure you are using the drivers/libraries you
intend:<br>
$ strace python glutexample.py 2>&1 | grep open<br>
==<br>
<br>
>is there a way i can detect the profiles and select the best
on startup ?<br>
<br>
You can choose between PyOpenGL platforms at runtime by setting
`os.environ' in your code:<br>
import os<br>
os.environ['PYOPENGL_PLATFORM'] = 'posix'<br>
import OpenGL<br>
<br>
...you /should/ be able to use the `reload' function
(<a class="moz-txt-link-freetext" href="http://stackoverflow.com/questions/437589/how-do-i-unload-reload-a-python-module">http://stackoverflow.com/questions/437589/how-do-i-unload-reload-a-python-module</a>)
to choose a different platform at runtime:<br>
import os<br>
os.environ['PYOPENGL_PLATFORM'] = 'posix'<br>
import OpenGL<br>
# check if we have the features we want, if not...<br>
if reload_opengl_platform:<br>
os.environ['PYOPENGL_PLATFORM'] = 'osmesa'<br>
reload(OpenGL)<br>
<br>
I did not test the`reload' code above, your results may vary.<br>
<br>
On 3/9/17 1:57 PM, Oliver Marks wrote:<br>
</div>
<blockquote
cite="mid:CACvA_FdYZCY_fkc8sZTqsOqFTev12uANotur9LkjosTGU0ypzw@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div>
<div>I am not sure if this is an issue now there are a few
things I have noticed it occurs when using osmesa on x11
and wayland.<br>
<br>
</div>
I can now run it on both with x11 it just works in wayland
if i prefix PYOPENGL_PLATFORM = "EGL" then it works.<br>
<br>
</div>
I am using ubuntu 16.10 and python-gobject 3.22.0-1 from the
repository.<br>
<br>
<br>
PYOPENGL_PLATFORM = "EGL"<br>
<br>
</div>
I have a gi gtkglarea example on stack overflow <a
moz-do-not-send="true"
href="http://stackoverflow.com/questions/42185728/why-is-glgenvertexarrays-undefined-in-pyopengl-when-using-gtkglarea">http://stackoverflow.com/questions/42185728/why-is-glgenvertexarrays-undefined-in-pyopengl-when-using-gtkglarea</a>.<br>
<br>
<br>
<div>Tried to use Glut which i have never used before but that
seems to be a world of pain and brings up new errors :/<br>
<br>
</div>
<div>- using EGL NotImplementedError: Platform does not define a
GLUT font retrieval function<br>
</div>
<div>- using osmesa gives me TypeError: unhashable type
contextdata.py", line 106, in getValue<br>
</div>
<div>- using glx gives me glGenVertexArrays(1) this function
takes at least 2 arguments (1 given)<br>
</div>
<div><br>
This is where i got to with the code but it could be
completely wrong as you don't seem to manage context in the
same way but i did not find many glut examples most see to use
pygame.<br>
<br>
<a moz-do-not-send="true"
href="https://gist.github.com/olymk2/b156f7490e3f5662e2fa0cf42b8c7c63">https://gist.github.com/olymk2/b156f7490e3f5662e2fa0cf42b8c7c63</a><br>
</div>
<div><br>
<br>
</div>
<div>Anyway my code kind of works I just dont 100% get why i
need to prefix I would not want to tell a user they need todo
that, so is there a way i can detect the profiles and select
the best on startup
<meta http-equiv="content-type" content="text/html;
charset=utf-8">
</div>
<div><br>
<br>
<br>
<br>
<br>
<div><br>
<div><br>
</div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr">On Wed, Mar 8, 2017 at 3:25 PM Matti Kariluoma
<<a moz-do-not-send="true"
href="mailto:[email protected]">[email protected]</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
<p class="gmail_msg">I will take a look on Saturday.</p>
<p class="gmail_msg">1) In the meantime, could you create a
minimal example that demonstrates the problem? <br
class="gmail_msg">
</p>
<p class="gmail_msg">Its always very interesting to see
simple-looking code that works on some platforms but
doesn't work on others; we just had an example of such two
weeks ago from another user.<br class="gmail_msg">
</p>
<p class="gmail_msg">Ideally your minimal example would not
involve the use of the `gi' module, or at the very least,
include instructions to bring a fresh installation up with
that package installed, i.e. "sudo apt-get install ..." <br
class="gmail_msg">
</p>
<p class="gmail_msg">2) Does your problem require `gi' for
this error to show? <br class="gmail_msg">
</p>
<p class="gmail_msg">3) Is the error reproducible under GLUT
or GLFW?<br class="gmail_msg">
</p>
<p class="gmail_msg">4) If (2), what steps are needed to
install `gi', and what version of `gi'?<br
class="gmail_msg">
</p>
</div>
<div bgcolor="#FFFFFF" text="#000000" class="gmail_msg">
<div class="m_-5089312650406477093moz-cite-prefix gmail_msg">On
3/5/17 12:49 PM, Oly wrote:<br class="gmail_msg">
</div>
<blockquote type="cite" class="gmail_msg">
<div dir="ltr" class="gmail_msg">Just another thing of
note,<br class="gmail_msg">
<br class="gmail_msg">
using PYOPENGL_PLATFORM = "osmesa" with x11 causes the
same issue, so it would appear related to the mesa
drivers.<br class="gmail_msg">
<br class="gmail_msg">
What other options can that take, can i enforce nvidia
or intel instead of osmesa ? <br class="gmail_msg">
<br class="gmail_msg">
perhaps wayland is defaulting to mesa and x11 is using
something else.<br class="gmail_msg">
<br class="gmail_msg">
feels like i am getting nearer to a solution, or at
least a work around.<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
</div>
<br class="gmail_msg">
<div class="gmail_quote gmail_msg">
<div dir="ltr" class="gmail_msg">On Sun, 5 Mar 2017 at
17:29 Oly <<a moz-do-not-send="true"
href="mailto:[email protected]" class="gmail_msg"
target="_blank">[email protected]</a>> wrote:<br
class="gmail_msg">
</div>
<blockquote class="gmail_quote gmail_msg"
style="margin:0 0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div dir="ltr" class="gmail_msg">
<div class="gmail_msg">Also because it maybe useful,
i have this being reported by gtk / opengl.<br
class="gmail_msg">
<br class="gmail_msg">
Intel_Open_Source_Technology_Center_4.5_(Core_Profile)_Mesa_17.0.0_-_padoka_PPA_Mesa_DRI_Intel(R)_Kabylake_GT2__4.50<br
class="gmail_msg">
OpenGL Version
4.5_(Core_Profile)_Mesa_17.0.0_-_padoka_PPA<br
class="gmail_msg">
OpenGL Renderer Mesa_DRI_Intel(R)_Kabylake_GT2_<br
class="gmail_msg">
Shader Language version 4.50<br class="gmail_msg">
<br class="gmail_msg">
</div>
so it looks like things should be new enough to
support that feature under wayland.<br
class="gmail_msg">
<div class="gmail_msg"><br class="gmail_msg">
</div>
</div>
<br class="gmail_msg">
<div class="gmail_quote gmail_msg">
<div dir="ltr" class="gmail_msg">On Sun, 5 Mar 2017
at 17:28 Oly <<a moz-do-not-send="true"
href="mailto:[email protected]" class="gmail_msg"
target="_blank">[email protected]</a>> wrote:<br
class="gmail_msg">
</div>
<blockquote class="gmail_quote gmail_msg"
style="margin:0 0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div dir="ltr" class="gmail_msg">
<div class="gmail_msg">
<div class="gmail_msg">
<div class="gmail_msg">
<div class="gmail_msg">
<div class="gmail_msg">Thanks for the
offer not sure how i missed your
reply.<br class="gmail_msg">
<br class="gmail_msg">
</div>
Anyway i made some progress, yes my
issue is with linux and gtk specifically
I have also found out it has something
todo with wayland.<br class="gmail_msg">
<br class="gmail_msg">
</div>
Running the example i can get it to work
with my intel and nvidia graphics (optimus
card) on x11 but if i am using wayland
then i get the error above.<br
class="gmail_msg">
<br class="gmail_msg">
</div>
Not sure why wayland would effect what
available to me anyone seen anything similar
?<br class="gmail_msg">
<br class="gmail_msg">
</div>
Seems it i graphics card related.<br
class="gmail_msg">
<br class="gmail_msg">
</div>
I did not know about this trick
PYOPENGL_PLATFORM="osmesa" so thats useful to
know but it does not help unfortunately.<br
class="gmail_msg">
<div class="gmail_msg">
<div class="gmail_msg">
<div class="gmail_msg">
<div class="gmail_msg"><br
class="gmail_msg">
</div>
</div>
</div>
</div>
</div>
<br class="gmail_msg">
<div class="gmail_quote gmail_msg">
<div dir="ltr" class="gmail_msg">On Sun, 12 Feb
2017 at 20:20 Matti Kariluoma <<a
moz-do-not-send="true"
href="mailto:[email protected]"
class="gmail_msg" target="_blank">[email protected]</a>>
wrote:<br class="gmail_msg">
</div>
<blockquote class="gmail_quote gmail_msg"
style="margin:0 0 0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">I tried to have a look
at your code, but I don't have the `gi'
package<br class="gmail_msg">
on my machine, and `pip install gi' can't find
it either.<br class="gmail_msg">
<br class="gmail_msg">
1) Would you accept help in the form of a
program that starts with<br class="gmail_msg">
`from OpenGL import GLUT' , or does your
problem require gi?<br class="gmail_msg">
<br class="gmail_msg">
As for the error you posted, looking at <a
moz-do-not-send="true"
href="https://mesamatrix.net/"
rel="noreferrer" class="gmail_msg"
target="_blank">https://mesamatrix.net/</a>
I see<br class="gmail_msg">
that glGenVertexArrays is a part of OpenGL
3.0, extension<br class="gmail_msg">
GL_ARB_vertex_array_object which seems to have
broad support.<br class="gmail_msg">
<br class="gmail_msg">
2) Maybe your graphics device (or its driver)
is ancient?<br class="gmail_msg">
<br class="gmail_msg">
Since your gist seems to indicate you are
using GTK, I assume you are<br
class="gmail_msg">
running this under Linux. You may want to look
into running PyOpenGL<br class="gmail_msg">
under mesa, using one of their software
renderers if for whatever<br class="gmail_msg">
reason you don't have OpenGL3.0 support.<br
class="gmail_msg">
<br class="gmail_msg">
Using the mesa CPU renderer under Linux:<br
class="gmail_msg">
<a moz-do-not-send="true"
href="http://www.mattikariluoma.com/blog/Headless%20Rendered%20OpenGL%20Scenes.html"
rel="noreferrer" class="gmail_msg"
target="_blank">http://www.mattikariluoma.com/blog/Headless%20Rendered%20OpenGL%20Scenes.html</a><br
class="gmail_msg">
<br class="gmail_msg">
>From: Oliver Marks <a
moz-do-not-send="true"
class="m_-5089312650406477093moz-txt-link-rfc2396E
gmail_msg" href="mailto:oly@di..."
target="_blank"><oly@di...></a> -
2017-02-11 22:40:09<br class="gmail_msg">
><br class="gmail_msg">
>Thought i would have a stab at trying to
make this work, I cant find any<br
class="gmail_msg">
>existing working examples.<br
class="gmail_msg">
><br class="gmail_msg">
>I have linked a gist if any one want to
try.<br class="gmail_msg">
><br class="gmail_msg">
>currently I am getting this error.<br
class="gmail_msg">
><br class="gmail_msg">
>OpenGL.error.NullFunctionError: Attempt to
call an undefined function<br
class="gmail_msg">
>glGenVertexArrays, check for
bool(glGenVertexArrays) before calling<br
class="gmail_msg">
><br class="gmail_msg">
>Which to me sounds like its not available
to the context, GLArea is<br class="gmail_msg">
>supplying the context so i am unsure why
this would be ?<br class="gmail_msg">
><br class="gmail_msg">
>Any ideas or can anyone give me some
pointers ?<br class="gmail_msg">
><br class="gmail_msg">
><a moz-do-not-send="true"
href="https://gist.github.com/olymk2/5b3e49ac83130e580bd9983f2e5d49c3"
rel="noreferrer" class="gmail_msg"
target="_blank">https://gist.github.com/olymk2/5b3e49ac83130e580bd9983f2e5d49c3</a><br
class="gmail_msg">
><br class="gmail_msg">
<br class="gmail_msg">
------------------------------------------------------------------------------<br
class="gmail_msg">
Check out the vibrant tech community on one of
the world's most<br class="gmail_msg">
engaging tech sites, SlashDot.org! <a
moz-do-not-send="true"
href="http://sdm.link/slashdot"
rel="noreferrer" class="gmail_msg"
target="_blank">http://sdm.link/slashdot</a><br
class="gmail_msg">
_______________________________________________<br class="gmail_msg">
PyOpenGL Homepage<br class="gmail_msg">
<a moz-do-not-send="true"
href="http://pyopengl.sourceforge.net"
rel="noreferrer" class="gmail_msg"
target="_blank">http://pyopengl.sourceforge.net</a><br
class="gmail_msg">
_______________________________________________<br class="gmail_msg">
PyOpenGL-Users mailing list<br
class="gmail_msg">
<a moz-do-not-send="true"
href="mailto:[email protected]"
class="gmail_msg" target="_blank">[email protected]</a><br
class="gmail_msg">
<a moz-do-not-send="true"
href="https://lists.sourceforge.net/lists/listinfo/pyopengl-users"
rel="noreferrer" class="gmail_msg"
target="_blank">https://lists.sourceforge.net/lists/listinfo/pyopengl-users</a><br
class="gmail_msg">
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
<br class="gmail_msg">
</div>
------------------------------------------------------------------------------<br
class="gmail_msg">
Announcing the Oxford Dictionaries API! The API offers
world-renowned<br class="gmail_msg">
dictionary content that is easy and intuitive to access. Sign
up for an<br class="gmail_msg">
account today to start using our lexical data to power your
apps and<br class="gmail_msg">
projects. Get started today and enter our developer
competition.<br class="gmail_msg">
<a moz-do-not-send="true" href="http://sdm.link/oxford"
rel="noreferrer" class="gmail_msg" target="_blank">http://sdm.link/oxford</a>_______________________________________________<br
class="gmail_msg">
PyOpenGL Homepage<br class="gmail_msg">
<a moz-do-not-send="true"
href="http://pyopengl.sourceforge.net" rel="noreferrer"
class="gmail_msg" target="_blank">http://pyopengl.sourceforge.net</a><br
class="gmail_msg">
_______________________________________________<br
class="gmail_msg">
PyOpenGL-Users mailing list<br class="gmail_msg">
<a moz-do-not-send="true"
href="mailto:[email protected]"
class="gmail_msg" target="_blank">[email protected]</a><br
class="gmail_msg">
<a moz-do-not-send="true"
href="https://lists.sourceforge.net/lists/listinfo/pyopengl-users"
rel="noreferrer" class="gmail_msg" target="_blank">https://lists.sourceforge.net/lists/listinfo/pyopengl-users</a><br
class="gmail_msg">
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>
--------------51EF42C50B0E250BF0226C92--
--===============4350110599147389445==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
------------------------------------------------------------------------------
Announcing the Oxford Dictionaries API! The API offers world-renowned
dictionary content that is easy and intuitive to access. Sign up for an
account today to start using our lexical data to power your apps and
projects. Get started today and enter our developer competition.
http://sdm.link/oxford
--===============4350110599147389445==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
PyOpenGL Homepage
http://pyopengl.sourceforge.net
_______________________________________________
PyOpenGL-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pyopengl-users
--===============4350110599147389445==--