PDL Developers and Users- Below is the announcement for pre-release testing of the Perl OpenGL library. If you can make the time, I would request that you download the latest SVN of POGL and test the configuration and build on your favorite platforms.
I'm currently working to refactor the existing TriD graphics code to use POGL instead of the internal PDL::PP implementation that is now being used. The goals of switching to POGL from our own OpenGL (derived from the OpenGL-0.5 release or there-abouts) are * Improve portability and supportability of the TriD code base: POGL has more users, hence the code is tried more often by users, Both factors can lead to faster updates and generate better support. * Enable use of TriD on win32 platforms by eliminating the GLX dependency in the current code and replacing it by FreeGLUT. This should allow portable support for multiple windows with TriD. * Improve the buildability of PDL. By factoring out the OpenGL dependence into POGL, we should be able to install the TriD perl modules independently from OpenGL. That should make it easier to get ActiveState Perl PPMs built through the official process since the build need not fail if the OpenGL configuration and build environment is not available at PDL config and build. I would appreciate if you could cc your results to me and add a copy of the OpenGL/Config.pm file that is generated if the build completes successfully. The Config.pm contains the MakeMaker arguments needed to build POGL and I need to determine how to use them to build the TriD::OpenGLQ code to replace our existing Makefile.PL process. Thanks much, Chris -------- Original Message -------- Subject: POGL 0.57 pre-release Date: Sun, 20 Jul 2008 18:57:42 -0700 From: Grafman Productions <[EMAIL PROTECTED]> To: POGL <[EMAIL PROTECTED]> References: <[EMAIL PROTECTED]> Hey gang - it's been a while since I last sent out a POGL developer newsletter. It's been a crazy year for me - but with a help of a lot (20+) of people, I'm getting ready to release OpenGL 0.57 and OpenGL-Image 1.03 to CPAN. Key enhancements: * Switched from GLUT to FreeGLUT as POGL's default windowing interface. This allows your app to capture close events for better cleanup and graceful exit handlers. * Add OpenGL::Array affine (for affine transforms) and calc - for populating, manipulating and mathematically combining OGAs (using RPN notation). See http://graphcomp.com/opengl/arrays * Added glpFullScreen and glpRestoreScreen APIs, and GLUT's Game mode APIs. * Fixed gluProject/gluUnproject. * Updated POGL to support Mac OS X 10.5.x and Xcode 3.x (iPhone SDK). * With _much_ help from Chris Marshall (key PDL contributor) and Sisyphus (Perl MinGW contributor), we've made some good progress towards adding support for building POGL via Cygwin and MinGW under Windows (as an alternative to VC6). * Updated OpenGL-Image to provide better Mac OS support and to clean up Sync/SyncOGA handling for improved integration with Image::Magick. * Added cross-referenced documentation for POGL APIs at http://graphcomp.com/opengl/api Chris Marshall has been active in migrating PDL to use POGL, and has offered to notify his PDL base to expand testing for this 0.57 pre-release. Thanks, Chris - please do send out your announcement. Everyone else - if you know of anyone who would be willing to test this out on their platform/environments, it would be _much_ appreciated. You can get the latest rev from SVN (http://graphcomp.com/opengl/downloads). Once this seems reasonably stable, I'll post updated binary PPM dists (5.6.x and 5.8.x) for Windows/ActivePerl. I'm hoping to post 0.57 to CPAN later this week. Note: I would recommend (not required) installing the latest release of PerlMagick before doing this update. If test.pl crashes (when drawing the inset), build/install OpenGL::Image 1.03 from SVN and try again. OpenGL::Image now requires calling SyncOGA after making native ImageMagick calls on POGL image buffers. Things to test: * Confirm that everything builds/installs/runs on your platforms. If successful, please send me the console output of test.pl; if it fails, run "perl Makefile.PL verbose" and send me the console output for this and for your 'make' attempt. * OpenGL-Shader - if your video card supports shaders, and you are not using Mesa (software renderer), please build/install OpenGL::Shader from SVN, and then re-run test.pl from the OpenGL installation. You should see some orange animated textures rendered on the surface of the cube. * OpenGL-Image - if you have PerlMagick 6.3.5 or newer installed, please build/install the latest OpenGL::Image from SVN, and run test.pl from the OpenGL installation. You should see a blurred inset in the upper right - this is an example of a native ImageMagick operation being applied to an OpenGL context. If you press 'c', test.pl will capture/save the current OpenGL frame via ImageMagick. * Fullscreen Mode - should work fine on Mac and Windows; some X11 window managers do not hide system menu bars; some X11 implementations fail to do proper restores (KDE seems to work correctly). To test, run test.pl and hit 'g' to toggle FullScreen mode. * Game Mode - Game mode is somewhat different than FullScreen. Most FullScreen modes are still windowed - they just cover the screen. Game mode actually takes over the OS's root display context, with the option of changing your video card's video mode. This is supposed to provide better performance - although I haven't noticed much of a difference. To test this run 'perl test.pl gamemode'. OpenGL's context is tied to the video mode, so you can't toggle game mode without reinitializing your OpenGL context. Note: GameMode on X11 systems require the XFree86-VideoModeExtension - this is enabled on some Linux distributions, and disabled on others. In order to enable it, you need to edit /etc/X11/xorg.conf and add the following to the Module section: 'Load "extmod"' - let me know whether this works for you or not. * Mac OS X - this works on my Macbook Pro (10.5.x + Xcode 3.x), but I've heard from some that their current environment still uses old-style OpenGL headers. If this fails, tell me which of the two you have: /usr/X11/include/GL/gl.h /usr/X11/include/GL/glut.h or /usr/X11/include/OpenGL/gl.h /usr/X11/include/GLUT/glut.h (possibly missing) * Windows VC6 - this seems to work fine on XP - you may encounter privilege issues on Vista. If so, let me know what you've had to do in order to make this work. Here's what's worked for me: a) building/installing as admin, or b) making Perl/site/lib folders writeable, or c) manually copying freeglut.dll (from the FreeGLUT folder) to someplace on your path. * Cygwin - "Perl Makefile.PL interface=GLX" seems to work (do the build in an xterm window); "Perl Makefile.PL interface=W32API" (X11 not required) works for me, but not others. If it doesn't work for you, run "Perl Makefile.PL inteface=W32API verbose" and send me the console output. * MinGW - utils/mingw.bat should build glversion correctly. I've had trouble building POGL via mingw/dmake; sisyphus has been sending me great patches, which work for him - but doesn't seem to work for me. Sisyphus - if you have a patch for the current SVN rev, send it to me - I'll fold it in tonight. Notes at http://www.perlmonks.org/?node_id=614808 may be helpful. * Linux - I've been testing primarily on Ubuntu/Debian; I just receive a report from John Gabriele that it works on Ubuntu's latest "Hardy Heron" release - cool! It's been a while since I've tested on Fedora - so if anyone has a current Fedora and/or RHEL installation, reports would be appreciated. I've received reports in the past that POGL builds fine on Gentoo; confirmation there would also be appreciated. * Solaris / SunOS - Nomura-san has been my sole Solaris tester/contributor - thanks, much appreciated! If you or others can test/report for Solaris, I'd appreciate it. * Other OSes - if you can get POGL running on any other OSes, please send me your console output from test.pl - that would be awesome! What's not in this release: GLU/Tesselation - I've had some bug reports that various GLU functions do not work. I've fixed a few (gluProject/gluUnproject), but after scanning the code, it's clear that POGL's GLU implementation is due for a re-write. In particular, GLU's tesselation APIs do not work. If anyone has time/interest in working on this, let me know. Geometry Shaders - I _really_ wanted to get this into 0.57 - unfortunately, this year has been too crazy for me to get to this extension. This is definitely my next priority enhancement. PPM 5.10 - VBOs seem to crash under ActivePerl 5.10 - haven't had a chance to track this down. If I can figure this out in the next few days, I'll try to get it into 0.57. glpOpenWindow - the original contributors had intended to abstract OpenGL window interfaces via glpOpenWindow - however, it was implemented to work with GLX, and never extended to work with WGL/AGL/etc. If I get a chance, I _may_ look into adding FreeGLUT support to glpOpenWindow, to make it portable. If anyone would like to work on this feature, it'd be greatly appreciated. OpenGL::Image::Imager - at some point I'd like to add support for CPAN's Imager module to OpenGL::Image as a "pure-perl" alternative to PerlMagick. The key is that I (or someone) willl need to add some APIs to Imager to provide direct image buffer access, like I did for ImageMagick. OpenGL::Video - I've been wanting to do a video interface for reading/writing video from an OpenGL context/texture that shares framebuffers, the way I did for OpenGL::Image - I was thinking about leveraging FFmpeg and/or GStreamer - just haven't had time. Maybe next year. Parrot / Perl6 - Geoff Broadwell and I have been talking about porting POGL to Parrot so that it can be used with Perl6, Python, Ruby, etc. He's in the process of porting GLUT; I may do the same for POGL next year - although it's currently a low priority, due to the progress (or lack thereof) of Perl6. iPhone - I've been doing a lot of iPhone/OpenGL-ES contracts lately... since Perl runs on the iPhone, I'm considering porting POGL to the iPhone - let me know if you'd be interested in hleping out, or using this. Requests - beyond testing, the POGL site can really use your help: * Resources - let me know if you have a published app that uses POGL - I'll post a link to your site. * Gallery - snapshots/video of what you're doing with POGL. * Sample apps / tutorials - if you have apps/snippets that would be helpful in developers making use of POGL, please send them to me. * Benchmarks - I've posted Vista vs Fedora vs Ubuntu benchmarks, and C vs Perl vs Python benchmarks. Geoff Broadwell (Perl SDL contributor) has posted SDL vs POGL benchmarks, Jan Dvorak (RubyGL author) has sent me Perl vs Ruby benchmarks (haven't posted them yet). I'm planning to do a XP/Vista benchmark, MacOS/XP benchmark and a JOGL/POGL benchmark. If anyone else has other benchmarks they'd like to post, let me know. * Developer's forum - I started to set up a POGL developers mailing list, but got side-tracked. There have been some requests for me to add a developers forum on the POGL site. Any thoughts/suggestions, offers to help? Big request - if you are an open source developer, and want to help promote POGL - please register on http://ohloh.net - then: 1. Got to http://www.ohloh.net/projects/pogl and click the "I USE THIS" button; give it a rating/review if you are so inclined. 2. Do the same for http://www.ohloh.net/projects/opengl-image and http://www.ohloh.net/projects/opengl-shader. 3. If you would like to support my effort on POGL, please go to http://www.ohloh.net/accounts/grafman/kudos and give me a 'kudo'. Thanks!!! Much thanks to all of you - POGL would not be possible without all your help/patches/testing/suggestions and support! Here's to 0.57! - Bob -- No virus found in this incoming message. Checked by AVG. Version: 7.5.526 / Virus Database: 270.5.2/1562 - Release Date: 7/19/2008 2:01 PM _______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
