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