I'm pretty new to squeak, please let me know if I should be looking
for help elsewhere, (and where that would be :) TIA I'm trying to follow a OpenGL tutorial posted on YouTube by user sparaig. It's only 9 lines of code (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 "this is where the trouble begins" The transcript shows: reading http://source.squeak..org/FFI... reading http://source.squeak.org/FFI... finding FFI-Pools... found FFI-Pools-eem.3.mcz... loaded reading http://source.squeak.org/FFI... finding FFI-Pools... found FFI-Pools-eem.3.mcz... finding FFI-Kernel... found FFI-Kernel.threaded-eem.25.mcz... loaded reading http://source.squeak.org/FFI... finding FFI-Pools... found FFI-Pools-eem.3.mcz... finding FFI-Kernel... found FFI-Kernel.threaded-eem.25.mcz... finding FFI-Tests... found FFI-Tests-ar.5.mcz... loaded reading http://www.squeaksource.com/CroquetGL... finding 3DTransform... found 3DTransform-ar.21.mcz... loaded reading http://www.squeaksource.com/CroquetGL... finding 3DTransform... found 3DTransform-ar.21.mcz... finding OpenGL-Pools... found OpenGL-Pools-jcg.9.mcz... loaded reading http://www.squeaksource.com/CroquetGL... finding 3DTransform... found 3DTransform-ar.21.mcz... finding OpenGL-Pools... found OpenGL-Pools-jcg.9.mcz... finding OpenGL-Core... found OpenGL-Core-hmm.15.mcz... loaded and here's the output I get in the debugger 1 March 2012 2:12:18.278 pm VM: Win32 - Smalltalk Image: Squeak4.1 [latest update: #9957] SecurityManager state: Restricted: false FileAccess: true SocketAccess: true Working Dir C:\Documents and Settings\Chuck\My Documents\Squeak 4.1 Trusted Dir C:\Documents and Settings\Chuck\My Documents\Squeak 4.1\Chuck Untrusted Dir C:\Documents and Settings\Chuck\My Documents\My Squeak OGLWin32(Object)>>error: Receiver: an OGLWin32 Arguments and temporary variables: aString: 'External function is invalid' Receiver's instance variables: handle: 0 bufRect: 0@0 corner: 400@400 glExt: a *OGLExtManager extensions: nil frontFace: 2305 maxPortalDepth: 5 changeTexture: true test: false timeStamp: 0 formManager: nil textureManager: an OGLTextureManager fontManager: an OGLFontManager shaderManager: an OGLShaderManager glListRegistry: a WeakIdentityKeyDictionary() isMirror: false inPortal3D: false camera: nil forceWire: false numVtx: 0 numPrims: 0 inGLBlock: false distance: nil harness: nil eventPointer: nil avatar: nil forcePick: false forceHilite: nil suppressPortals: false noSwap: false fogOn: false transparency: 1.0 matrixStack: nil portalDepth: 0 bufferObjects: a Dictionary() OGLWin32(Object)>>externalCallFailed Receiver: an OGLWin32 Arguments and temporary variables: errCode: 17 Receiver's instance variables: handle: 0 bufRect: 0@0 corner: 400@400 glExt: a *OGLExtManager extensions: nil frontFace: 2305 maxPortalDepth: 5 changeTexture: true test: false timeStamp: 0 formManager: nil textureManager: an OGLTextureManager fontManager: an OGLFontManager shaderManager: an OGLShaderManager glListRegistry: a WeakIdentityKeyDictionary() isMirror: false inPortal3D: false camera: nil forceWire: false numVtx: 0 numPrims: 0 inGLBlock: false distance: nil harness: nil eventPointer: nil avatar: nil forcePick: false forceHilite: nil suppressPortals: false noSwap: false fogOn: false transparency: 1.0 matrixStack: nil portalDepth: 0 bufferObjects: a Dictionary() OGLWin32(OpenGL)>>glPixelStorei:with: Receiver: an OGLWin32 Arguments and temporary variables: pname: 3317 param: 4 Receiver's instance variables: handle: 0 bufRect: 0@0 corner: 400@400 glExt: a *OGLExtManager extensions: nil frontFace: 2305 maxPortalDepth: 5 changeTexture: true test: false timeStamp: 0 formManager: nil textureManager: an OGLTextureManager fontManager: an OGLFontManager shaderManager: an OGLShaderManager glListRegistry: a WeakIdentityKeyDictionary() isMirror: false inPortal3D: false camera: nil forceWire: false numVtx: 0 numPrims: 0 inGLBlock: false distance: nil harness: nil eventPointer: nil avatar: nil forcePick: false forceHilite: nil suppressPortals: false noSwap: false fogOn: false transparency: 1.0 matrixStack: nil portalDepth: 0 bufferObjects: a Dictionary() OGLWin32(OpenGL)>>beginFrame Receiver: an OGLWin32 Arguments and temporary variables: Receiver's instance variables: handle: 0 bufRect: 0@0 corner: 400@400 glExt: a *OGLExtManager extensions: nil frontFace: 2305 maxPortalDepth: 5 changeTexture: true test: false timeStamp: 0 formManager: nil textureManager: an OGLTextureManager fontManager: an OGLFontManager shaderManager: an OGLShaderManager glListRegistry: a WeakIdentityKeyDictionary() isMirror: false inPortal3D: false camera: nil forceWire: false numVtx: 0 numPrims: 0 inGLBlock: false distance: nil harness: nil eventPointer: nil avatar: nil forcePick: false forceHilite: nil suppressPortals: false noSwap: false fogOn: false transparency: 1.0 matrixStack: nil portalDepth: 0 bufferObjects: a Dictionary() --- The full stack --- OGLWin32(Object)>>error: OGLWin32(Object)>>externalCallFailed OGLWin32(OpenGL)>>glPixelStorei:with: OGLWin32(OpenGL)>>beginFrame - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OGLWin32>>beginFrame [] in OpenGL class>>example BlockClosure>>ensure: OpenGL class>>example UndefinedObject>>DoIt Compiler>>evaluate:in:to:notifying:ifFail:logged: [] in SmalltalkEditor(TextEditor)>>evaluateSelection ...etc... |
Most probably, some library was not found (I see the handle is 0).
If I open a browser on OGLWin32 OGLWin32 browse. In class definition, you see that handle is an instance variable. Then looks at instance variable assignment (menu assignment... or CTRL+a in class pane) I get these two methods OpenGL>>destroy OpenGL>>initializeIn: bounds handle := self primCreateRenderer: 1 "B3DSoftwareRenderer" + 2 "B3DHardwareRenderer" + 4 "B3DStencilBuffer" x: bounds left y: bounds top w: bounds width h: bounds height. bufRect := bounds. handle ifNotNil:[glExt := OGLExtManager new ogl: self]. ^handle ifNotNil:[self] If I browse implementors of primCreateRenderer:x:y:w:h:, I get OpenGL>>primCreateRenderer: flags x: x y: y w: w h: h <primitive: 'primitiveCreateRendererFlags' module:'B3DAcceleratorPlugin'> ^nil It could be that your VM does not have the optional module B3DAcceleratorPlugin... I see you are using Squeak 4.1, and don't remember if it was already available... But you could search for top menu bar item help->about this system. If you have it, in the resulting window, select VM Modules and report if B3DAcceleratorPlugin was loaded. Also select VM General and report your results. If you don't have this tool, then try SmalltalkImage current listBuiltinModules , SmalltalkImage current listLoadedModules. and SmalltalkImage current vmVersion. Nicolas Le 1 mars 2012 22:33, Chuck Hipschman <[hidden email]> a écrit : > I'm pretty new to squeak, please let me know if I should be looking > for help elsewhere, (and where that would be :) TIA > > I'm trying to follow a OpenGL tutorial posted on YouTube by user > sparaig. It's only 9 lines of code > > (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 "this is where the trouble begins" > > The transcript shows: > > reading http://source.squeak..org/FFI... > reading http://source.squeak.org/FFI... > finding FFI-Pools... found FFI-Pools-eem.3.mcz... > loaded > reading http://source.squeak.org/FFI... > finding FFI-Pools... found FFI-Pools-eem.3.mcz... > finding FFI-Kernel... found FFI-Kernel.threaded-eem.25.mcz... > loaded > reading http://source.squeak.org/FFI... > finding FFI-Pools... found FFI-Pools-eem.3.mcz... > finding FFI-Kernel... found FFI-Kernel.threaded-eem.25.mcz... > finding FFI-Tests... found FFI-Tests-ar.5.mcz... > loaded > reading http://www.squeaksource.com/CroquetGL... > finding 3DTransform... found 3DTransform-ar.21.mcz... > loaded > reading http://www.squeaksource.com/CroquetGL... > finding 3DTransform... found 3DTransform-ar.21.mcz... > finding OpenGL-Pools... found OpenGL-Pools-jcg.9.mcz... > loaded > reading http://www.squeaksource.com/CroquetGL... > finding 3DTransform... found 3DTransform-ar.21.mcz... > finding OpenGL-Pools... found OpenGL-Pools-jcg.9.mcz... > finding OpenGL-Core... found OpenGL-Core-hmm.15.mcz... > loaded > > and here's the output I get in the debugger > > 1 March 2012 2:12:18.278 pm > > VM: Win32 - Smalltalk > Image: Squeak4.1 [latest update: #9957] > > SecurityManager state: > Restricted: false > FileAccess: true > SocketAccess: true > Working Dir C:\Documents and Settings\Chuck\My Documents\Squeak 4.1 > Trusted Dir C:\Documents and Settings\Chuck\My Documents\Squeak 4.1\Chuck > Untrusted Dir C:\Documents and Settings\Chuck\My Documents\My Squeak > > OGLWin32(Object)>>error: > Receiver: an OGLWin32 > Arguments and temporary variables: > aString: 'External function is invalid' > Receiver's instance variables: > handle: 0 > bufRect: 0@0 corner: 400@400 > glExt: a *OGLExtManager > extensions: nil > frontFace: 2305 > maxPortalDepth: 5 > changeTexture: true > test: false > timeStamp: 0 > formManager: nil > textureManager: an OGLTextureManager > fontManager: an OGLFontManager > shaderManager: an OGLShaderManager > glListRegistry: a WeakIdentityKeyDictionary() > isMirror: false > inPortal3D: false > camera: nil > forceWire: false > numVtx: 0 > numPrims: 0 > inGLBlock: false > distance: nil > harness: nil > eventPointer: nil > avatar: nil > forcePick: false > forceHilite: nil > suppressPortals: false > noSwap: false > fogOn: false > transparency: 1.0 > matrixStack: nil > portalDepth: 0 > bufferObjects: a Dictionary() > > OGLWin32(Object)>>externalCallFailed > Receiver: an OGLWin32 > Arguments and temporary variables: > errCode: 17 > Receiver's instance variables: > handle: 0 > bufRect: 0@0 corner: 400@400 > glExt: a *OGLExtManager > extensions: nil > frontFace: 2305 > maxPortalDepth: 5 > changeTexture: true > test: false > timeStamp: 0 > formManager: nil > textureManager: an OGLTextureManager > fontManager: an OGLFontManager > shaderManager: an OGLShaderManager > glListRegistry: a WeakIdentityKeyDictionary() > isMirror: false > inPortal3D: false > camera: nil > forceWire: false > numVtx: 0 > numPrims: 0 > inGLBlock: false > distance: nil > harness: nil > eventPointer: nil > avatar: nil > forcePick: false > forceHilite: nil > suppressPortals: false > noSwap: false > fogOn: false > transparency: 1.0 > matrixStack: nil > portalDepth: 0 > bufferObjects: a Dictionary() > > OGLWin32(OpenGL)>>glPixelStorei:with: > Receiver: an OGLWin32 > Arguments and temporary variables: > pname: 3317 > param: 4 > Receiver's instance variables: > handle: 0 > bufRect: 0@0 corner: 400@400 > glExt: a *OGLExtManager > extensions: nil > frontFace: 2305 > maxPortalDepth: 5 > changeTexture: true > test: false > timeStamp: 0 > formManager: nil > textureManager: an OGLTextureManager > fontManager: an OGLFontManager > shaderManager: an OGLShaderManager > glListRegistry: a WeakIdentityKeyDictionary() > isMirror: false > inPortal3D: false > camera: nil > forceWire: false > numVtx: 0 > numPrims: 0 > inGLBlock: false > distance: nil > harness: nil > eventPointer: nil > avatar: nil > forcePick: false > forceHilite: nil > suppressPortals: false > noSwap: false > fogOn: false > transparency: 1.0 > matrixStack: nil > portalDepth: 0 > bufferObjects: a Dictionary() > > OGLWin32(OpenGL)>>beginFrame > Receiver: an OGLWin32 > Arguments and temporary variables: > > Receiver's instance variables: > handle: 0 > bufRect: 0@0 corner: 400@400 > glExt: a *OGLExtManager > extensions: nil > frontFace: 2305 > maxPortalDepth: 5 > changeTexture: true > test: false > timeStamp: 0 > formManager: nil > textureManager: an OGLTextureManager > fontManager: an OGLFontManager > shaderManager: an OGLShaderManager > glListRegistry: a WeakIdentityKeyDictionary() > isMirror: false > inPortal3D: false > camera: nil > forceWire: false > numVtx: 0 > numPrims: 0 > inGLBlock: false > distance: nil > harness: nil > eventPointer: nil > avatar: nil > forcePick: false > forceHilite: nil > suppressPortals: false > noSwap: false > fogOn: false > transparency: 1.0 > matrixStack: nil > portalDepth: 0 > bufferObjects: a Dictionary() > > > --- The full stack --- > OGLWin32(Object)>>error: > OGLWin32(Object)>>externalCallFailed > OGLWin32(OpenGL)>>glPixelStorei:with: > OGLWin32(OpenGL)>>beginFrame > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > OGLWin32>>beginFrame > [] in OpenGL class>>example > BlockClosure>>ensure: > OpenGL class>>example > UndefinedObject>>DoIt > Compiler>>evaluate:in:to:notifying:ifFail:logged: > [] in SmalltalkEditor(TextEditor)>>evaluateSelection > ...etc... > |
Free forum by Nabble | Edit this page |