To answer my own question: with the latest Cog VMs and 4.3gamma image, the OpenGL example works fine.
It appears to be an issue with Squeak 4.2 (4.1?) all-in-one distributions which don't have Cog as the default. Since I am no longer using a PowerPC Mac, moving to Cog for everything won't be an issue for me, but I think this is a political decision that needs to be made: does the squeak community standardize on Intel-only/Cog-only, or will legacy PowerPC systems still be supported?
I believe that Pharo has gone all-Cog for the past few releases. I know plenty of people/schools that are still using PowerMacs however, so the issue is not not as cut and dried as it might be for Pharo.
L.
On 12/19/11 3:25 AM, Andreas Raab wrote:
On 12/19/2011 10:08, Alexander Lazarević wrote:
Just tested this in an up to date image and it worked. As always I had to manually adapt the library path, but that was all.
Which, according to http://www.opengl.org/registry/ABI/ should not be necessary:
3.1. There are two link-level libraries. libGL includes the OpenGL and GLX entry points and in general depends on underlying hardware and/or X server dependent code that may or may not be incorporated into this library. libGLU includes the GLU utility routines and should be hardware independent, using only the OpenGL API.
Each library has two names: the link name used on the ld command line, and the DT_SONAME within that library (specified by the -soname switch when linking the library), defining where it's looked up at runtime. Both forms must exist so that both linking and running will operate properly. The library names are: Link name Runtime name (DT_SONAME) libGL.so libGL.so.1 libGLU.so libGLU.so.1
libGL.so and libGLU.so should be symbolic links pointing to the runtime names, so that future versions of the standard can be implemented transparently to applications by changing the link.
3.2. These libraries must be located in /usr/lib. The X-specific library direction (/usr/lib/X11) was also considered, but existing practice on Linux and other platforms indicates that /usr/lib is preferable.
Cheers,
- Andreas
Alex
2011/12/17 Lawson Englishlenglish5@cox.net:
Has anyone tested this with 4.3?
It still doesn't work out of the box with 4.2 all-in-one, which means I can't do a "look how easy it is to do this in 3D" tutorial yet.
L.
On 9/11/11 6:09 PM, Lawson English wrote:
On a Mac, download the latest 4.2 all-in-one squeak.
Put the following into a workspace and "do it".
I get Error: External function failed. The offending method is #beginFrame.
I'm using an Intel Mac, Mac OS X 10.6.8. Doing the same code with Cog doesn't seem to show the errors.
L
(Installer repository: 'http://source.squeak.org/FFI') install: 'FFI-Pools'; install: 'FFI-Kernel'; install: 'FFI-Tests'.
(Installer repository: 'http://www.squeaksource.com/CroquetGL') install: '3DTransform'; install: 'OpenGL-Pools'; install: 'OpenGL-Core'.
OpenGL example.