On Wed, 2008-01-16 at 22:38 -0700, Paul Seamons wrote:
> > I am starting to implement a GLUT and OpenGL binding for Parrot.
> 
> I started down this path several months ago.  The following is the thread on 
> the topic.
> 
> http://tinyurl.com/3crzpu

OK, read it now.  I think I got a little farther, but I'm blocked now
just as you were, on the same problem.

> It appears that NCI is on the roadmap a couple of months out (or more), but 
> that when it is done it will be done right - for some definition of right.

I think that Allison hand-waved over exactly the case that you and I
tried to address first -- no JIT available, and want to create the shims
in portable C instead of hand-coded assembly per platform.

I'll try to take a look at the other PDDs she mentioned in a day or two,
but from what she wrote in your thread, I didn't get the feeling her
solution quite covered the same ground.

> I would've put more work into a temporary solution, but real life has 
> interfered.

Yes, and that's exactly my worry.  I don't often get concentrated time
to help out with Parrot and Perl 6, but I have some now.  If this is
going to be blocked indefinitely, my tuits are likely to evaporate.  And
dangit, I don't want to miss out on my window of opportunity!

> I'm glad to see other people interested in OpenGL on parrot.  When the NCI 
> PDD 
> is up for drafting, it will be good to have a listing of sample libraries and 
> required callback signatures available.

I had already made a list of all of the callback signatures needed by
GLUT, which I've included below.

> I'm excited about the progress Parrot is making.

Ditto that!  I'm hoping that when this blocking issue is dealt with,
I'll be able to create a fully functioning OpenGL binding, which is
actually for me a bit of yak shaving -- what I really *want* to do is
port some of my OpenGL code to Perl 6, but I need a working binding
first.  :-)


-'f

***********

=head1 Needed Callback Signatures

XXX: Currently Parrot does not support the callback signatures needed
by GLUT to function properly (at all, really).  The following are the
missing signatures:

=over 4

=item 'v'

C<glutDisplayFunc>, C<glutOverlayDisplayFunc>, C<glutIdleFunc>,
C<glutCloseFunc>, C<glutMenuDestroyFunc>, C<glutWMCloseFunc>(*)

=item 'vi'

C<glutEntryFunc>, C<glutTimerFunc>, C<glutWindowStatusFunc>,
C<glutVisibilityFunc>(*), C<glutMenuStateFunc>(*)

=item 'vii'

C<glutReshapeFunc>, C<glutMotionFunc>, C<glutPassiveMotionFunc>,
C<glutSpaceballButtonFunc>(!), C<glutButtonBoxFunc>(!),
C<glutDialsFunc>(!), C<glutTabletMotionFunc>(!)

=item 'vcii'

C<glutKeyboardFunc>, C<glutKeyboardUpFunc>

=item 'viii'

C<glutSpecialFunc>, C<glutSpecialUpFunc>, C<glutMenuStatusFunc>,
C<glutSpaceballMotionFunc>(!), C<glutSpaceballRotateFunc>(!)

=item 'viiii'

C<glutMouseFunc>, C<glutMouseWheelFunc>, C<glutJoystickFunc>,
C<glutTabletButtonFunc>(!)

=back


Special marks are as follows:

=over 4

=item (*)

Function is deprecated in OpenGLUT in favor of a more modern callback.

=item (!)

Function is unimplemented in freeglut and OpenGLUT (these all support
rarer input devices; in many cases, the input device in question is
SGI-specific and most likely no longer manufactured).

=back

=cut


Reply via email to