On Wed, 2008-03-26 at 16:27 -0700, Bob Free wrote:
> Cool - great to hear from you - sorry that it's been a while since I've 
> posted an update!

Real life can be so darned intrusive ....  ;-)

> It'd be great to have you participate - you've done quite a lot for POGL. 
> Regarding your work/ideas on abstracting GLUT - definitely want to leverage 
> that - I'll let you know as soon as I'm ready to tackle this.

Fair enough.

> As for automating support for new OpenGL extensions, I wrote a perl script 
> back when I first started this project that parses glext.h to generate 
> glext_procs.h - which helps abstract WGL and GLX implementations. 
> Attempting to fully automate it may be problematic - particularly for APIs 
> involving pointers.  Worth investigating, tho.

Definitely.  Would you mind sending that over?  I can poke and prod at
it a bit, see what I can manage.

> A related task that I've been contemplating is to support OpenGL extensions 
> dynamically (like WGL) - so that a binary build can be distributed for a 
> given distro - rather than having to be built from source.  POGL's binary 
> distros for Windows (PPMs) works on any Windows box with an OpenGL driver 
> (standard on NT/XP/Vista) - this doesn't work for other platforms.

I keep thinking we should just do runtime stub patching everywhere, as
with GLee/GLEW/SDL/etc.  The nice thing is that this can be done cleanly
in Parrot, because setting up a Parrot NCI sub involves doing dlfunc
calls anyway [*] -- and Parrot's core handles making the 'dlfunc' op do
the right thing on every platform.

[*] Unless you manually create a library wrapper in C using Parrot's C
API -- which *might* produce very slightly faster code (debateable, in
the face of JIT for PIR code), but which seems to be leaving us back in
the hellish XS place again.

> BTW - since we're talking about doing a better Perl OpenGL implementation - 
> it has always bugged me that the Perl APIs involving pointers have a "_c" 
> suffix.  I get the "_s" and "_p" suffixes, but my preference would be to get 
> rid of the "_c" suffix.

Oh certainly, those are not only ugly, but won't be mnemonic for all
Parrot languages.  Since Parrot very deeply has multiple dispatch, we
may not even need to have different names at all -- they may just
properly dispatch based on arguments.  I have no experience with the
performance of Parrot's multiple dispatch -- if it proves to be slow, we
can revisit the suffices, but definitely choose better ones.  Or we can
present the evidence to the core Parrot team and ask them to make
multiple dispatch faster, which ought to help the performance of several
high level languages as a bonus.  ;-)


-'f


Reply via email to