Balloon3D problem

Joshua 'Schwa' Gargus schwa at cc.gatech.edu
Wed Jul 3 16:56:16 UTC 2002


On Wed, Jul 03, 2002 at 04:49:24PM +0100, David Duke wrote:
> 
> Karl Ramberg wrote:
> 
> > 
> >>I'm still having the segmentation fault; although I can now at least
> >>look more closely at what is going on, I would still be grateful for any
> >>suggestions.
> >>
> > 
> > Do you have the Squeak 3D plugin ? 
> > Is it listed when you print: 
> > 
> > Smalltalk listBuiltinModules
> > 
> > or
> > 
> > Smalltalk listLoadedModules
> 
> 
> It appears under builtin modules: 'Squeak3D 5 June 2002 (i)'
> 
> I was concerned in case I had made a mistake installing the system, so 
> I've gone back to Ian Piumarta's site and downloaded the 3.2-2 VM and 
> the 3.2gamma-4881 image.  The problem remains: using B3DCone will crash 
> the application UNLESS B3DBox has been rendered previously.
> 
> I do however now have a file Squeak3D.log being created.  It contains 
> the message "ERROR: Failed to look up stDisplay".  Now, this message is 
> produced in function glInitialize(), defined in the source file 
> platforms/unix/plugins/sqUnixOpenGL.c, if it can't look up "stDisplay" 
> in the interpreterProxy, via ioLoadFunctionWith(..).  Looking at the 
> condition under which this message is produced, it seems that the 
> consequent failure to set the value of stDisplay is the cause of the 
> segmentation fault.
> 
> However, this doesn't address the real question: why does running 
> B3DSampleMorph with my B3DCone as geometry work only after running 
> B3DBox as geometry?  Could anyone expand on how/where glInitialize is 
> being invoked, and why stDisplay might be ?
> 

glInitialize is invoked when the B3DAcceleratorPlugin is loaded.
stDisplay is used by this plugin to setup a gl context for 
accelerated rendering.  Unfortunately, it doesn't work in Ian's
latest VM, because stDisplay isn't exported.

This should not cause a segmentation fault, though.  It should just 
cause the loading of the plugin to abort, and to use the Squeak3D
renderer instead.  Try deleting the Squeak3D.log file, going to 
the 'Squeak in 3d project', and turning on hardware acceleration
in the Wonderland camera window.  This should cause the message
to appear in the .log file, but no crash.

Incidentially, if you know how to build VMs, look for my recent
message entitled '[BUG][FIX][VM] Unix B3D Acceleration'.  This
will allow you to use hardware acceleration.

However, none of this is your problem.  I tried moving the accelerator
plugin where it would not be found, so that only Squeak3D would be
used.  The crash still occured.

Looking at your code, the only difference is that B3DBox sends texture
coordinates to the renderer (although I don't understand exactly what
this means, since it sends the position of the vertex as the tex
coord).  In any event, I changed your code to do the same and it still
crashed.  

On a hunch, I filed out B3DBox, and renamed it B3DCube.st, and
find/replaced B3DBox with B3DCube.  I thought that this might cause
it to crash; the problem would then be with newly filed-in code
that hadn't initialized in some way.  Nope: it worked fine.

Sorry, I have to run.  And I'm fresh out of ideas.

Joshua


> > I have tested Squeak without the 3D plugin and Squeak will
> > then fall back on the smalltalk version of the plugin and that 
> > is not very snappy.
> 
> 
> As a result of the above, I'm assuming that I'm running the actual plug-in.
> 
> 	-- David
> 
> 



More information about the Squeak-dev mailing list