I changed methods that loaded primitives to use a different name, e.g.,
!OGLExtManager class methodsFor: 'GL_ARB_transpose_matrix' stamp: 'bf
5/3/2006 11:28'!
glLoadTransposeMatrixf: m
"This method was automatically generated."
"void glLoadTransposeMatrixf(GLfloat* m);"
<apicall: void 'glLoadTransposeMatrixfARB' (float*) > " was
'glLoadTransposeMatrixf'"
^self externalCallFailed
" ^self ogl glLoadMatrixf: m transposed."
! !
This was a fix suggested by
http://bugs.squeak.org/view.php?id=6338,
inspired by the fact that without it the image wouldn't start because
glLoadTransposeMatrixf could't be found.
However, when I try to launch a Croquet (Cobalt) Master, the new code
fails too. In OpenGL>>extensions the line
extensions := (self glGetString: GLExtensions) fromCString
produces a failure while trying to evaluate fromCString, I presume
because it is being addressed to invalid external memory.
I suspected some initialization might be necessary to get the addresses
of the new methods (glLoadTransposeMatrixfARB), so I tried
OGLExtManager initialize, but this failed as before.
Both the symbols glLoadTransposeMatrixf and glLoadTransposeMatrixfARB
seem to be in libGL.so (using emacs; nm says there are no symbols).
I'm running on Linux, Pentium 4 with the nvidia proprietary driver. My
image started as cobalt20081125, with the change noted above and fileins
for FreeCAD.
I initially succeeded in getting things to work (sort of) without the
glLoad... changes, but ran into trouble when I attempted to restart an
image that had the FreeCAD master world opened.
Any suggestions?
Thanks.
Ross Boylan