Yes, from what I have seen the differences are negligible (the links I found
stated that) a few fps or something.
And the new opengl has support for more features, the old version only goes
to like opengl 1.2 compatibility or something when I last checked.

I would recommend you use the ctypes one over the old one even if doing
immediate mode ;)

On Tue, Mar 17, 2009 at 10:43 PM, Casey Duncan <ca...@pandora.com> wrote:

> With the emphasis these days on batch operations (VBOs, etc) and doing more
> and more of the work on the video card itself via shaders, I seriously doubt
> that the bottleneck of a well-written, modern PyOpenGL application will be
> the ctypes overhead. The only time I could see that could be would be for
> immediate mode usage, which is deprecated anyhow, for the simple reason that
> per-vertex operations no longer mesh well with a modern graphics
> architecture.
>
> If you are not writing a modern OpenGL app, then by all means, use the old
> version. It's going to be a while I think before cards drop support OpenGL 2
> and earlier features. It will happen eventually though.
>
> There are significant maintenance advantages to ctypes over C-wrappers,
> generated by SWIG or otherwise. It is difficult to make the latter work well
> across platforms and python versions. If you've ever looked at the build
> system for PyOpenGL 2.x, you'd understand what I mean. And this is coming
> from somebody who enjoys writing C extensions, but for wrapping existing
> APIs, ctypes is the state of the art. Like Python itself it trades execution
> speed for development efficiency and better portability.
>
> PyOpenGL is more or less a one man project afaik, and let me tell you,
> development efficiency rules when you're trying to move mountains yourself.
>
> -Casey
>
>
> On Mar 17, 2009, at 7:37 PM, Richie Ward wrote:
>
>  why did they not make 3.0 with swig?
>>
>> On Tue, Mar 17, 2009 at 12:26 PM, RB[0] <roeb...@gmail.com> wrote:
>>
>>> http://groups.google.com/group/pyglet-users/msg/832b15389fccd28d?pli=1
>>>
>>> Hmm, this is a bit outdated, but I found a few other references that say
>>> SWIG will generally be faster to run, though would have more overhead -
>>> so I
>>> dunno.
>>>
>>> HTH
>>>
>>> On Tue, Mar 17, 2009 at 7:17 AM, RB[0] <roeb...@gmail.com> wrote:
>>>
>>>>
>>>> I saw saw tests for performance between the old C PyOpenGL and the new
>>>> ctypes one...
>>>> The older one was significantly faster from what I saw - but that is how
>>>> it will always be - direct usage of a C lib is just like calling C
>>>> functions
>>>> and such - whereas ctypes you have to call a python function (which may
>>>> call
>>>> others) which will execute the C lib code...
>>>>
>>>> I'll see if I can't find the page somewhere...
>>>>
>>>> On Mon, Mar 16, 2009 at 3:44 PM, Brian Fisher <
>>>> br...@hamsterrepublic.com>
>>>> wrote:
>>>>
>>>>>
>>>>> That's what PyOpenGL 2.0 was - a C extension instead of ctypes. (made
>>>>> with SWIG)
>>>>>
>>>>> I actually still use PyOpenGL 2.0 for reasons other than performance
>>>>> (py2exe packaging) - I had to build it myself on windows for Python
>>>>> 2.5, you
>>>>> can get at an installer for it here:
>>>>> http://thorbrian.com/pyopengl/builds.php
>>>>>
>>>>> I've never performance tested the difference between it and 3.0 though
>>>>> -
>>>>> is somebody else could do that, I'd love to see the results
>>>>>
>>>>> On Mon, Mar 16, 2009 at 10:49 AM, Zack Schilling
>>>>> <zack.schill...@gmail.com> wrote:
>>>>>
>>>>>>
>>>>>> If someone did this and I could drop it in to my code, that would be
>>>>>> very nice. But for right now, PyOpenGL is serving my needs just fine.
>>>>>> I can
>>>>>> use about 600 independently textured and animated sprites onscreen,
>>>>>> scaled
>>>>>> and rotated, without stressing a low-end system more than 40%.
>>>>>>
>>>>>> On Mar 16, 2009, at 1:00 PM, Forrest Voight wrote:
>>>>>>
>>>>>>  Would writing a replacement for PyOpenGL in C instead of in Python
>>>>>>> with ctypes help? I think it really would ... PyOpenGL is internally
>>>>>>> pretty complex, sometimes when I get tracebacks the error is 5 or 6
>>>>>>> levels into PyOpenGL. Even a C library that only implemented the
>>>>>>> common functions and relied on PyOpenGL for the constants and
>>>>>>> functions that do complex things like handling strings would probably
>>>>>>> help a lot.
>>>>>>>
>>>>>>>
>>>>>>>> Another way to increase speed is to write an opengl rendering engine
>>>>>>>> in C and call and make it available as a Python extension. This is
>>>>>>>> a major speed boost, in particular for a large number of iterations.
>>>>>>>> Iirc PyOpenGL bindings are generated, many times this is suboptimal
>>>>>>>> code for what you're trying to do, writing the Python extension in C
>>>>>>>> manually have been faster for me many times. This is indeed true
>>>>>>>> if you put your iterations inside a C loop instead of calling the
>>>>>>>> C function from Python many times.
>>>>>>>>
>>>>>>>>
>>>>>
>>>>
>>>
>>>
>>
>>
>> --
>> Thanks, Richie Ward
>>
>
>

Reply via email to