I tried the 1.2 one-click with Lumiere. Following the collaboractive book,
Gofer it squeaksource: 'Lumiere'; package: 'ConfigurationOfLumiere'; load. ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault. led to a warning about DisplayList(??), but seemed to work otherwise. Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Is glut the correct choice, or do I need to get or specify some other library? Bill Segmentation fault Smalltalk stack dump: 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class 2025126836 s [] in BlockClosure>newProcess Most recent primitives at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew new: at:put: at:put: value:value: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: basicNew at:put: at:put: at:put: at:put: basicNew: at:put: at:put: basicNew: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: species new: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: species new: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: basicNew: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: basicNew: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: new value:value: value:value: basicNew size basicNew byteAt:put: byteAt:put: bitXor: size species basicNew: replaceFrom:to:with:startingAt: basicNew: replaceFrom:to:with:startingAt: replaceFrom:to:with:startingAt: basicNew: basicNew at:put: species basicNew: replaceFrom:to:with:startingAt: replaceFrom:to:with:startingAt: size at:put: species basicNew: replaceFrom:to:with:startingAt: size size size perform:withArguments: perform:withArguments: species basicNew new: value: perform:withArguments: at:put: perform:withArguments: species new: species new: species new: replaceFrom:to:with:startingAt: newMethod:header: at:put: at:put: at:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: basicNew size objectAt: basicNew objectAt: at:put: at:put: at:put: at:put: value objectAt: size objectAt: objectAt: objectAt: objectAt: objectAt: objectAt:put: objectAt: objectAt:put: withArgs:executeMethod: basicNew perform: basicNew @ basicNew primCreateRenderer:x:y:w:h: millisecondClockValue signal primSignal:atMilliseconds: millisecondClockValue wait primGetNextEvent: millisecondClockValue wait signal millisecondClockValue primSignal:atMilliseconds: millisecondClockValue wait signal wait at:put: primRender:getProperty: basicNew primLoadLibrary: basicNew: sizeFieldPut: unsignedLongAt:put: basicNew new: value value basicNew: sizeFieldPut: unsignedLongAt:put: basicNew at:put: primFindSymbol: basicNew: sizeFieldPut: addressFieldPut: primFFICallResult:with: Aborted |
I think that the correct choice is libGL.so,but I'm just guessing.
On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <[hidden email]> wrote: I tried the 1.2 one-click with Lumiere. Following the collaboractive book, |
Hi ! We are currently working on a 3d engine which is not tied to any external libraries. We can provide more information if necessary. Cheers, Alexandre
|
Alexandre,
It's not _necessary_, but let's just say that you have my attention :) Any details would be appreciated. There is a very slight chance that I can swing a group to Smalltalk. They will probably move to Unity, but it would be interesting to show Pharo doing some needed hardware interfacing (already working) and rending 3D views. The models/meshes would be brutal; the rest should be "easy." Bill ________________________________________ From: [hidden email] [[hidden email]] On Behalf Of Alexandre Bergel [[hidden email]] Sent: Saturday, March 12, 2011 10:00 PM To: [hidden email] Subject: Re: [Pharo-project] Lumiere on Linux? Hi ! We are currently working on a 3d engine which is not tied to any external libraries. We can provide more information if necessary. Cheers, Alexandre Le 12 mars 2011 à 23:48, Lemuus <[hidden email]<mailto:[hidden email]>> a écrit : I think that the correct choice is libGL.so,but I'm just guessing. On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <<mailto:[hidden email]>[hidden email]<mailto:[hidden email]>> wrote: I tried the 1.2 one-click with Lumiere. Following the collaboractive book, Gofer it squeaksource: 'Lumiere'; package: 'ConfigurationOfLumiere'; load. ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault. led to a warning about DisplayList(??), but seemed to work otherwise. Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Is glut the correct choice, or do I need to get or specify some other library? Bill Segmentation fault Smalltalk stack dump: 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class 2025126836 s [] in BlockClosure>newProcess Most recent primitives at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew new: at:put: at:put: value:value: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: basicNew at:put: at:put: at:put: at:put: basicNew: at:put: at:put: basicNew: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: species new: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: species new: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: basicNew: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: basicNew: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: new value:value: value:value: basicNew size basicNew byteAt:put: byteAt:put: bitXor: size species basicNew: replaceFrom:to:with:startingAt: basicNew: replaceFrom:to:with:startingAt: replaceFrom:to:with:startingAt: basicNew: basicNew at:put: species basicNew: replaceFrom:to:with:startingAt: replaceFrom:to:with:startingAt: size at:put: species basicNew: replaceFrom:to:with:startingAt: size size size perform:withArguments: perform:withArguments: species basicNew new: value: perform:withArguments: at:put: perform:withArguments: species new: species new: species new: replaceFrom:to:with:startingAt: newMethod:header: at:put: at:put: at:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: basicNew size objectAt: basicNew objectAt: at:put: at:put: at:put: at:put: value objectAt: size objectAt: objectAt: objectAt: objectAt: objectAt: objectAt:put: objectAt: objectAt:put: withArgs:executeMethod: basicNew perform: basicNew @ basicNew primCreateRenderer:x:y:w:h: millisecondClockValue signal primSignal:atMilliseconds: millisecondClockValue wait primGetNextEvent: millisecondClockValue wait signal millisecondClockValue primSignal:atMilliseconds: millisecondClockValue wait signal wait at:put: primRender:getProperty: basicNew primLoadLibrary: basicNew: sizeFieldPut: unsignedLongAt:put: basicNew new: value value basicNew: sizeFieldPut: unsignedLongAt:put: basicNew at:put: primFindSymbol: basicNew: sizeFieldPut: addressFieldPut: primFFICallResult:with: Aborted |
In reply to this post by Daniel Galdames
Using libGL.so.1 gives similar results :(
________________________________________ From: [hidden email] [[hidden email]] On Behalf Of Lemuus [[hidden email]] Sent: Saturday, March 12, 2011 9:48 PM To: [hidden email] Subject: Re: [Pharo-project] Lumiere on Linux? I think that the correct choice is libGL.so,but I'm just guessing. On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <[hidden email]<mailto:[hidden email]>> wrote: I tried the 1.2 one-click with Lumiere. Following the collaboractive book, Gofer it squeaksource: 'Lumiere'; package: 'ConfigurationOfLumiere'; load. ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault. led to a warning about DisplayList(??), but seemed to work otherwise. Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Is glut the correct choice, or do I need to get or specify some other library? Bill Segmentation fault Smalltalk stack dump: 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class 2025126836 s [] in BlockClosure>newProcess Most recent primitives at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew at:put: basicNew new: at:put: at:put: value:value: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: basicNew at:put: at:put: at:put: at:put: basicNew: at:put: at:put: basicNew: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: species new: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: species new: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: basicNew: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: basicNew: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: at:put: new value:value: value:value: basicNew size basicNew byteAt:put: byteAt:put: bitXor: size species basicNew: replaceFrom:to:with:startingAt: basicNew: replaceFrom:to:with:startingAt: replaceFrom:to:with:startingAt: basicNew: basicNew at:put: species basicNew: replaceFrom:to:with:startingAt: replaceFrom:to:with:startingAt: size at:put: species basicNew: replaceFrom:to:with:startingAt: size size size perform:withArguments: perform:withArguments: species basicNew new: value: perform:withArguments: at:put: perform:withArguments: species new: species new: species new: replaceFrom:to:with:startingAt: newMethod:header: at:put: at:put: at:put: objectAt:put: objectAt:put: objectAt:put: objectAt:put: basicNew size objectAt: basicNew objectAt: at:put: at:put: at:put: at:put: value objectAt: size objectAt: objectAt: objectAt: objectAt: objectAt: objectAt:put: objectAt: objectAt:put: withArgs:executeMethod: basicNew perform: basicNew @ basicNew primCreateRenderer:x:y:w:h: millisecondClockValue signal primSignal:atMilliseconds: millisecondClockValue wait primGetNextEvent: millisecondClockValue wait signal millisecondClockValue primSignal:atMilliseconds: millisecondClockValue wait signal wait at:put: primRender:getProperty: basicNew primLoadLibrary: basicNew: sizeFieldPut: unsignedLongAt:put: basicNew new: value value basicNew: sizeFieldPut: unsignedLongAt:put: basicNew at:put: primFindSymbol: basicNew: sizeFieldPut: addressFieldPut: primFFICallResult:with: Aborted |
Hi guys, as Alex said we are currently working on a quite simple 3d
library entirely based on Morph. Right know there is only cubes and "3d lines" to play as we please, i will add some screenshots as soon as i have some spare time :) 2011/3/13 Schwab,Wilhelm K <[hidden email]>: > Using libGL.so.1 gives similar results :( > > > > ________________________________________ > From: [hidden email] [[hidden email]] On Behalf Of Lemuus [[hidden email]] > Sent: Saturday, March 12, 2011 9:48 PM > To: [hidden email] > Subject: Re: [Pharo-project] Lumiere on Linux? > > I think that the correct choice is libGL.so,but I'm just guessing. > > On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <[hidden email]<mailto:[hidden email]>> wrote: > I tried the 1.2 one-click with Lumiere. Following the collaboractive book, > > Gofer it > squeaksource: 'Lumiere'; > package: 'ConfigurationOfLumiere'; > load. > ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault. > > led to a warning about DisplayList(??), but seemed to work otherwise. Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Is glut the correct choice, or do I need to get or specify some other library? > > Bill > > > > > Segmentation fault > > Smalltalk stack dump: > 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary > 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples > 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure > 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples > 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class > 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class > 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler > 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout > 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure > 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout > 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout > 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel > 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure > 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask > 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent > 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph > 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph > 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph > 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph > 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph > 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure > 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph > 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph > 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph > 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph > 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph > 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph > 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array > 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState > 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState > 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState > 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph > 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph > 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph > 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph > 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout > 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout > 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent > 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout > 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout > 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph > 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph > 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow > 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph > 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph > 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph > 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph > 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph > 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph > 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph > 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array > 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState > 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState > 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph > 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class > 2025126836 s [] in BlockClosure>newProcess > > Most recent primitives > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > new: > at:put: > at:put: > value:value: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > basicNew > at:put: > at:put: > at:put: > at:put: > basicNew: > at:put: > at:put: > basicNew: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > species > new: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > species > new: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > basicNew: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > basicNew: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > new > value:value: > value:value: > basicNew > size > basicNew > byteAt:put: > byteAt:put: > bitXor: > size > species > basicNew: > replaceFrom:to:with:startingAt: > basicNew: > replaceFrom:to:with:startingAt: > replaceFrom:to:with:startingAt: > basicNew: > basicNew > at:put: > species > basicNew: > replaceFrom:to:with:startingAt: > replaceFrom:to:with:startingAt: > size > at:put: > species > basicNew: > replaceFrom:to:with:startingAt: > size > size > size > perform:withArguments: > perform:withArguments: > species > basicNew > new: > value: > perform:withArguments: > at:put: > perform:withArguments: > species > new: > species > new: > species > new: > replaceFrom:to:with:startingAt: > newMethod:header: > at:put: > at:put: > at:put: > objectAt:put: > objectAt:put: > objectAt:put: > objectAt:put: > basicNew > size > objectAt: > basicNew > objectAt: > at:put: > at:put: > at:put: > at:put: > value > objectAt: > size > objectAt: > objectAt: > objectAt: > objectAt: > objectAt: > objectAt:put: > objectAt: > objectAt:put: > withArgs:executeMethod: > basicNew > perform: > basicNew > @ > basicNew > primCreateRenderer:x:y:w:h: > millisecondClockValue > signal > primSignal:atMilliseconds: > millisecondClockValue > wait > primGetNextEvent: > millisecondClockValue > wait > signal > millisecondClockValue > primSignal:atMilliseconds: > millisecondClockValue > wait > signal > wait > at:put: > primRender:getProperty: > basicNew > primLoadLibrary: > basicNew: > sizeFieldPut: > unsignedLongAt:put: > basicNew > new: > value > value > basicNew: > sizeFieldPut: > unsignedLongAt:put: > basicNew > at:put: > primFindSymbol: > basicNew: > sizeFieldPut: > addressFieldPut: > primFFICallResult:with: > Aborted > > > > > -- lets reign all together |
Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code?
________________________________________ From: [hidden email] [[hidden email]] On Behalf Of Ricardo Jacas [[hidden email]] Sent: Tuesday, March 15, 2011 11:07 AM To: [hidden email] Subject: Re: [Pharo-project] Lumiere on Linux? Hi guys, as Alex said we are currently working on a quite simple 3d library entirely based on Morph. Right know there is only cubes and "3d lines" to play as we please, i will add some screenshots as soon as i have some spare time :) 2011/3/13 Schwab,Wilhelm K <[hidden email]>: > Using libGL.so.1 gives similar results :( > > > > ________________________________________ > From: [hidden email] [[hidden email]] On Behalf Of Lemuus [[hidden email]] > Sent: Saturday, March 12, 2011 9:48 PM > To: [hidden email] > Subject: Re: [Pharo-project] Lumiere on Linux? > > I think that the correct choice is libGL.so,but I'm just guessing. > > On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <[hidden email]<mailto:[hidden email]>> wrote: > I tried the 1.2 one-click with Lumiere. Following the collaboractive book, > > Gofer it > squeaksource: 'Lumiere'; > package: 'ConfigurationOfLumiere'; > load. > ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault. > > led to a warning about DisplayList(??), but seemed to work otherwise. Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Is glut the correct choice, or do I need to get or specify some other library? > > Bill > > > > > Segmentation fault > > Smalltalk stack dump: > 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary > 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples > 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure > 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples > 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class > 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class > 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler > 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout > 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure > 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout > 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout > 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel > 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure > 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask > 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent > 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph > 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph > 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph > 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph > 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph > 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure > 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph > 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph > 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph > 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph > 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph > 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph > 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array > 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState > 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState > 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState > 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph > 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph > 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph > 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph > 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout > 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout > 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent > 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout > 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout > 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph > 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph > 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow > 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph > 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph > 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph > 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph > 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph > 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph > 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph > 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array > 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState > 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState > 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph > 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class > 2025126836 s [] in BlockClosure>newProcess > > Most recent primitives > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > new: > at:put: > at:put: > value:value: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > basicNew > at:put: > at:put: > at:put: > at:put: > basicNew: > at:put: > at:put: > basicNew: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > species > new: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > species > new: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > basicNew: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > basicNew: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > new > value:value: > value:value: > basicNew > size > basicNew > byteAt:put: > byteAt:put: > bitXor: > size > species > basicNew: > replaceFrom:to:with:startingAt: > basicNew: > replaceFrom:to:with:startingAt: > replaceFrom:to:with:startingAt: > basicNew: > basicNew > at:put: > species > basicNew: > replaceFrom:to:with:startingAt: > replaceFrom:to:with:startingAt: > size > at:put: > species > basicNew: > replaceFrom:to:with:startingAt: > size > size > size > perform:withArguments: > perform:withArguments: > species > basicNew > new: > value: > perform:withArguments: > at:put: > perform:withArguments: > species > new: > species > new: > species > new: > replaceFrom:to:with:startingAt: > newMethod:header: > at:put: > at:put: > at:put: > objectAt:put: > objectAt:put: > objectAt:put: > objectAt:put: > basicNew > size > objectAt: > basicNew > objectAt: > at:put: > at:put: > at:put: > at:put: > value > objectAt: > size > objectAt: > objectAt: > objectAt: > objectAt: > objectAt: > objectAt:put: > objectAt: > objectAt:put: > withArgs:executeMethod: > basicNew > perform: > basicNew > @ > basicNew > primCreateRenderer:x:y:w:h: > millisecondClockValue > signal > primSignal:atMilliseconds: > millisecondClockValue > wait > primGetNextEvent: > millisecondClockValue > wait > signal > millisecondClockValue > primSignal:atMilliseconds: > millisecondClockValue > wait > signal > wait > at:put: > primRender:getProperty: > basicNew > primLoadLibrary: > basicNew: > sizeFieldPut: > unsignedLongAt:put: > basicNew > new: > value > value > basicNew: > sizeFieldPut: > unsignedLongAt:put: > basicNew > at:put: > primFindSymbol: > basicNew: > sizeFieldPut: > addressFieldPut: > primFFICallResult:with: > Aborted > > > > > -- lets reign all together |
plain Smalltalk (Pharo), if you can introduce me to that "native code"
boost it will be great xD. in fact this project started as a need....i spent 10 days trying to install AlienOpenGL in my notebook (with Ubuntu) 2011/3/15 Schwab,Wilhelm K <[hidden email]>: > Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code? > > > > ________________________________________ > From: [hidden email] [[hidden email]] On Behalf Of Ricardo Jacas [[hidden email]] > Sent: Tuesday, March 15, 2011 11:07 AM > To: [hidden email] > Subject: Re: [Pharo-project] Lumiere on Linux? > > Hi guys, as Alex said we are currently working on a quite simple 3d > library entirely based on Morph. > Right know there is only cubes and "3d lines" to play as we please, i > will add some screenshots as soon as i have some spare time :) > > 2011/3/13 Schwab,Wilhelm K <[hidden email]>: >> Using libGL.so.1 gives similar results :( >> >> >> >> ________________________________________ >> From: [hidden email] [[hidden email]] On Behalf Of Lemuus [[hidden email]] >> Sent: Saturday, March 12, 2011 9:48 PM >> To: [hidden email] >> Subject: Re: [Pharo-project] Lumiere on Linux? >> >> I think that the correct choice is libGL.so,but I'm just guessing. >> >> On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <[hidden email]<mailto:[hidden email]>> wrote: >> I tried the 1.2 one-click with Lumiere. Following the collaboractive book, >> >> Gofer it >> squeaksource: 'Lumiere'; >> package: 'ConfigurationOfLumiere'; >> load. >> ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault. >> >> led to a warning about DisplayList(??), but seemed to work otherwise. Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Is glut the correct choice, or do I need to get or specify some other library? >> >> Bill >> >> >> >> >> Segmentation fault >> >> Smalltalk stack dump: >> 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary >> 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples >> 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure >> 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples >> 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class >> 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class >> 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler >> 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout >> 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure >> 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout >> 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout >> 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel >> 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure >> 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask >> 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent >> 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher >> 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher >> 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher >> 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher >> 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph >> 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph >> 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph >> 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph >> 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph >> 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure >> 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph >> 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph >> 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph >> 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph >> 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph >> 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph >> 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >> 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array >> 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState >> 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >> 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState >> 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState >> 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph >> 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph >> 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph >> 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph >> 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout >> 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout >> 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent >> 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout >> 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout >> 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph >> 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph >> 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow >> 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph >> 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph >> 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph >> 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph >> 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph >> 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph >> 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph >> 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >> 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array >> 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState >> 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >> 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState >> 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph >> 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class >> 2025126836 s [] in BlockClosure>newProcess >> >> Most recent primitives >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> new: >> at:put: >> at:put: >> value:value: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> basicNew >> at:put: >> at:put: >> at:put: >> at:put: >> basicNew: >> at:put: >> at:put: >> basicNew: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> species >> new: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> species >> new: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> basicNew: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> basicNew: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> new >> value:value: >> value:value: >> basicNew >> size >> basicNew >> byteAt:put: >> byteAt:put: >> bitXor: >> size >> species >> basicNew: >> replaceFrom:to:with:startingAt: >> basicNew: >> replaceFrom:to:with:startingAt: >> replaceFrom:to:with:startingAt: >> basicNew: >> basicNew >> at:put: >> species >> basicNew: >> replaceFrom:to:with:startingAt: >> replaceFrom:to:with:startingAt: >> size >> at:put: >> species >> basicNew: >> replaceFrom:to:with:startingAt: >> size >> size >> size >> perform:withArguments: >> perform:withArguments: >> species >> basicNew >> new: >> value: >> perform:withArguments: >> at:put: >> perform:withArguments: >> species >> new: >> species >> new: >> species >> new: >> replaceFrom:to:with:startingAt: >> newMethod:header: >> at:put: >> at:put: >> at:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> basicNew >> size >> objectAt: >> basicNew >> objectAt: >> at:put: >> at:put: >> at:put: >> at:put: >> value >> objectAt: >> size >> objectAt: >> objectAt: >> objectAt: >> objectAt: >> objectAt: >> objectAt:put: >> objectAt: >> objectAt:put: >> withArgs:executeMethod: >> basicNew >> perform: >> basicNew >> @ >> basicNew >> primCreateRenderer:x:y:w:h: >> millisecondClockValue >> signal >> primSignal:atMilliseconds: >> millisecondClockValue >> wait >> primGetNextEvent: >> millisecondClockValue >> wait >> signal >> millisecondClockValue >> primSignal:atMilliseconds: >> millisecondClockValue >> wait >> signal >> wait >> at:put: >> primRender:getProperty: >> basicNew >> primLoadLibrary: >> basicNew: >> sizeFieldPut: >> unsignedLongAt:put: >> basicNew >> new: >> value >> value >> basicNew: >> sizeFieldPut: >> unsignedLongAt:put: >> basicNew >> at:put: >> primFindSymbol: >> basicNew: >> sizeFieldPut: >> addressFieldPut: >> primFFICallResult:with: >> Aborted >> >> >> >> >> > > > > -- > lets reign all together > > > -- lets reign all together |
In reply to this post by Schwab,Wilhelm K
> Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code?
It is all Smalltalk code. We are not against native libraries, however we could not make it run. And so, after several months of intensive tries. So, in order to make some progress, we coded a 3d engine in Smalltalk. Actually, this is not difficult (for basic functionalities such as light, cubes, camera -- no texture and complex light rendering). I did a 2d engine for Mondrian. So having a 3d engine should not be that hard (actually it is not). The nice advantage, that it should work on the ipad, iphone, web, ... Other things, I would be surprise to have a significant boost by using OpenGL for rendering objects if all the matrix computations are realized in Smalltalk. Anyone can comment on it? Cheers, Alexandre > > > > ________________________________________ > From: [hidden email] [[hidden email]] On Behalf Of Ricardo Jacas [[hidden email]] > Sent: Tuesday, March 15, 2011 11:07 AM > To: [hidden email] > Subject: Re: [Pharo-project] Lumiere on Linux? > > Hi guys, as Alex said we are currently working on a quite simple 3d > library entirely based on Morph. > Right know there is only cubes and "3d lines" to play as we please, i > will add some screenshots as soon as i have some spare time :) > > 2011/3/13 Schwab,Wilhelm K <[hidden email]>: >> Using libGL.so.1 gives similar results :( >> >> >> >> ________________________________________ >> From: [hidden email] [[hidden email]] On Behalf Of Lemuus [[hidden email]] >> Sent: Saturday, March 12, 2011 9:48 PM >> To: [hidden email] >> Subject: Re: [Pharo-project] Lumiere on Linux? >> >> I think that the correct choice is libGL.so,but I'm just guessing. >> >> On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <[hidden email]<mailto:[hidden email]>> wrote: >> I tried the 1.2 one-click with Lumiere. Following the collaboractive book, >> >> Gofer it >> squeaksource: 'Lumiere'; >> package: 'ConfigurationOfLumiere'; >> load. >> ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault. >> >> led to a warning about DisplayList(??), but seemed to work otherwise. Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Is glut the correct choice, or do I need to get or specify some other library? >> >> Bill >> >> >> >> >> Segmentation fault >> >> Smalltalk stack dump: >> 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary >> 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples >> 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure >> 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples >> 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class >> 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class >> 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler >> 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout >> 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure >> 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout >> 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout >> 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel >> 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure >> 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask >> 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent >> 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher >> 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher >> 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph >> 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher >> 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher >> 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph >> 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph >> 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph >> 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph >> 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph >> 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure >> 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph >> 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph >> 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph >> 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph >> 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph >> 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph >> 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >> 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array >> 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState >> 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >> 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState >> 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState >> 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph >> 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph >> 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph >> 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph >> 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout >> 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout >> 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent >> 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout >> 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout >> 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph >> 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout >> 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph >> 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow >> 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >> 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph >> 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph >> 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph >> 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph >> 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph >> 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph >> 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph >> 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >> 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array >> 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState >> 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >> 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState >> 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph >> 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class >> 2025126836 s [] in BlockClosure>newProcess >> >> Most recent primitives >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> at:put: >> basicNew >> new: >> at:put: >> at:put: >> value:value: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> basicNew >> at:put: >> at:put: >> at:put: >> at:put: >> basicNew: >> at:put: >> at:put: >> basicNew: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> species >> new: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> species >> new: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> basicNew: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> basicNew: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> at:put: >> new >> value:value: >> value:value: >> basicNew >> size >> basicNew >> byteAt:put: >> byteAt:put: >> bitXor: >> size >> species >> basicNew: >> replaceFrom:to:with:startingAt: >> basicNew: >> replaceFrom:to:with:startingAt: >> replaceFrom:to:with:startingAt: >> basicNew: >> basicNew >> at:put: >> species >> basicNew: >> replaceFrom:to:with:startingAt: >> replaceFrom:to:with:startingAt: >> size >> at:put: >> species >> basicNew: >> replaceFrom:to:with:startingAt: >> size >> size >> size >> perform:withArguments: >> perform:withArguments: >> species >> basicNew >> new: >> value: >> perform:withArguments: >> at:put: >> perform:withArguments: >> species >> new: >> species >> new: >> species >> new: >> replaceFrom:to:with:startingAt: >> newMethod:header: >> at:put: >> at:put: >> at:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> objectAt:put: >> basicNew >> size >> objectAt: >> basicNew >> objectAt: >> at:put: >> at:put: >> at:put: >> at:put: >> value >> objectAt: >> size >> objectAt: >> objectAt: >> objectAt: >> objectAt: >> objectAt: >> objectAt:put: >> objectAt: >> objectAt:put: >> withArgs:executeMethod: >> basicNew >> perform: >> basicNew >> @ >> basicNew >> primCreateRenderer:x:y:w:h: >> millisecondClockValue >> signal >> primSignal:atMilliseconds: >> millisecondClockValue >> wait >> primGetNextEvent: >> millisecondClockValue >> wait >> signal >> millisecondClockValue >> primSignal:atMilliseconds: >> millisecondClockValue >> wait >> signal >> wait >> at:put: >> primRender:getProperty: >> basicNew >> primLoadLibrary: >> basicNew: >> sizeFieldPut: >> unsignedLongAt:put: >> basicNew >> new: >> value >> value >> basicNew: >> sizeFieldPut: >> unsignedLongAt:put: >> basicNew >> at:put: >> primFindSymbol: >> basicNew: >> sizeFieldPut: >> addressFieldPut: >> primFFICallResult:with: >> Aborted >> >> >> >> >> > > > > -- > lets reign all together > > -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. |
Hi Alex, i'm sad to hear that AlienOpenGL is not working for you, i'm
currently not mainting it. IMO opinion the Croquet OpengL and Igor's native boost OpenGL are far better choices for interfacing with OpenGL. Lumiere is conceptually designed to work with any of the above, but currently tied to AlienOpenGL. Wouldn't take much to plug the other two, and you would get the high level abstractions over OpenGL that Lumiere offers. Regarding the boost, it highly depends on the 3D application being built. http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node207.html#SECTION000181100000000000000 Anyway, Croquet OpenGL does the computation on Smalltalk, (but i think FloatArray is using a plugin).With Lumiere i left the matrix calculations to OpenGL, but you get less functionality. The boost comes not from the matrix calculations but because of the efficient rendering engine (parallel pipelines) implemented in low level language, as opposed doing everything in Smalltalk. Again, this depends on the 3D application being built. Regarding the tool that you mentioned, how do you simulate 3D, in the 2D Morphic framework? I'm finding hard to understand how can you achieve a Morphic cube. Saludos, Fernando On Tue, Mar 15, 2011 at 7:29 PM, Alexandre Bergel <[hidden email]> wrote: >> Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code? > > It is all Smalltalk code. We are not against native libraries, however we could not make it run. And so, after several months of intensive tries. So, in order to make some progress, we coded a 3d engine in Smalltalk. Actually, this is not difficult (for basic functionalities such as light, cubes, camera -- no texture and complex light rendering). I did a 2d engine for Mondrian. So having a 3d engine should not be that hard (actually it is not). The nice advantage, that it should work on the ipad, iphone, web, ... > > Other things, I would be surprise to have a significant boost by using OpenGL for rendering objects if all the matrix computations are realized in Smalltalk. Anyone can comment on it? > > Cheers, > Alexandre > >> >> >> >> ________________________________________ >> From: [hidden email] [[hidden email]] On Behalf Of Ricardo Jacas [[hidden email]] >> Sent: Tuesday, March 15, 2011 11:07 AM >> To: [hidden email] >> Subject: Re: [Pharo-project] Lumiere on Linux? >> >> Hi guys, as Alex said we are currently working on a quite simple 3d >> library entirely based on Morph. >> Right know there is only cubes and "3d lines" to play as we please, i >> will add some screenshots as soon as i have some spare time :) >> >> 2011/3/13 Schwab,Wilhelm K <[hidden email]>: >>> Using libGL.so.1 gives similar results :( >>> >>> >>> >>> ________________________________________ >>> From: [hidden email] [[hidden email]] On Behalf Of Lemuus [[hidden email]] >>> Sent: Saturday, March 12, 2011 9:48 PM >>> To: [hidden email] >>> Subject: Re: [Pharo-project] Lumiere on Linux? >>> >>> I think that the correct choice is libGL.so,but I'm just guessing. >>> >>> On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <[hidden email]<mailto:[hidden email]>> wrote: >>> I tried the 1.2 one-click with Lumiere. Following the collaboractive book, >>> >>> Gofer it >>> squeaksource: 'Lumiere'; >>> package: 'ConfigurationOfLumiere'; >>> load. >>> ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault. >>> >>> led to a warning about DisplayList(??), but seemed to work otherwise. Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Is glut the correct choice, or do I need to get or specify some other library? >>> >>> Bill >>> >>> >>> >>> >>> Segmentation fault >>> >>> Smalltalk stack dump: >>> 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary >>> 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples >>> 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure >>> 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples >>> 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class >>> 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class >>> 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler >>> 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout >>> 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure >>> 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout >>> 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout >>> 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout >>> 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout >>> 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout >>> 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout >>> 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel >>> 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph >>> 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure >>> 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask >>> 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph >>> 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph >>> 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph >>> 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent >>> 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph >>> 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher >>> 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher >>> 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph >>> 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher >>> 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher >>> 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph >>> 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph >>> 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph >>> 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph >>> 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph >>> 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure >>> 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph >>> 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph >>> 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph >>> 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph >>> 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph >>> 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph >>> 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >>> 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array >>> 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState >>> 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >>> 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState >>> 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState >>> 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph >>> 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph >>> 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph >>> 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph >>> 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout >>> 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout >>> 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout >>> 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent >>> 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout >>> 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout >>> 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph >>> 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout >>> 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph >>> 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow >>> 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>> 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph >>> 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph >>> 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph >>> 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph >>> 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph >>> 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph >>> 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph >>> 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >>> 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array >>> 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState >>> 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >>> 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState >>> 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph >>> 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class >>> 2025126836 s [] in BlockClosure>newProcess >>> >>> Most recent primitives >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> at:put: >>> basicNew >>> new: >>> at:put: >>> at:put: >>> value:value: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> basicNew >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> basicNew: >>> at:put: >>> at:put: >>> basicNew: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> species >>> new: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> species >>> new: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> basicNew: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> basicNew: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> new >>> value:value: >>> value:value: >>> basicNew >>> size >>> basicNew >>> byteAt:put: >>> byteAt:put: >>> bitXor: >>> size >>> species >>> basicNew: >>> replaceFrom:to:with:startingAt: >>> basicNew: >>> replaceFrom:to:with:startingAt: >>> replaceFrom:to:with:startingAt: >>> basicNew: >>> basicNew >>> at:put: >>> species >>> basicNew: >>> replaceFrom:to:with:startingAt: >>> replaceFrom:to:with:startingAt: >>> size >>> at:put: >>> species >>> basicNew: >>> replaceFrom:to:with:startingAt: >>> size >>> size >>> size >>> perform:withArguments: >>> perform:withArguments: >>> species >>> basicNew >>> new: >>> value: >>> perform:withArguments: >>> at:put: >>> perform:withArguments: >>> species >>> new: >>> species >>> new: >>> species >>> new: >>> replaceFrom:to:with:startingAt: >>> newMethod:header: >>> at:put: >>> at:put: >>> at:put: >>> objectAt:put: >>> objectAt:put: >>> objectAt:put: >>> objectAt:put: >>> basicNew >>> size >>> objectAt: >>> basicNew >>> objectAt: >>> at:put: >>> at:put: >>> at:put: >>> at:put: >>> value >>> objectAt: >>> size >>> objectAt: >>> objectAt: >>> objectAt: >>> objectAt: >>> objectAt: >>> objectAt:put: >>> objectAt: >>> objectAt:put: >>> withArgs:executeMethod: >>> basicNew >>> perform: >>> basicNew >>> @ >>> basicNew >>> primCreateRenderer:x:y:w:h: >>> millisecondClockValue >>> signal >>> primSignal:atMilliseconds: >>> millisecondClockValue >>> wait >>> primGetNextEvent: >>> millisecondClockValue >>> wait >>> signal >>> millisecondClockValue >>> primSignal:atMilliseconds: >>> millisecondClockValue >>> wait >>> signal >>> wait >>> at:put: >>> primRender:getProperty: >>> basicNew >>> primLoadLibrary: >>> basicNew: >>> sizeFieldPut: >>> unsignedLongAt:put: >>> basicNew >>> new: >>> value >>> value >>> basicNew: >>> sizeFieldPut: >>> unsignedLongAt:put: >>> basicNew >>> at:put: >>> primFindSymbol: >>> basicNew: >>> sizeFieldPut: >>> addressFieldPut: >>> primFFICallResult:with: >>> Aborted >>> >>> >>> >>> >>> >> >> >> >> -- >> lets reign all together >> >> > > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.bergel.eu > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > > > > > |
from this message i learn that i have to kick my ass and continue
working on NativeBoost, including its OpenGL bindings. Too bad, there is not much people who can do low level assembly + VM hacking + openGL hacking and interested in pushing NB forward and/or collaborating with me :( On 16 March 2011 00:17, Fernando Olivero <[hidden email]> wrote: > Hi Alex, i'm sad to hear that AlienOpenGL is not working for you, i'm > currently not mainting it. IMO opinion the Croquet OpengL and Igor's > native boost OpenGL are far better choices for interfacing with > OpenGL. > Lumiere is conceptually designed to work with any of the above, but > currently tied to AlienOpenGL. Wouldn't take much to plug the other > two, and you would get the high level abstractions over OpenGL that > Lumiere offers. > > Regarding the boost, it highly depends on the 3D application being > built. http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node207.html#SECTION000181100000000000000 > Anyway, Croquet OpenGL does the computation on Smalltalk, (but i think > FloatArray is using a plugin).With Lumiere i left the matrix > calculations to OpenGL, but you get less functionality. > > The boost comes not from the matrix calculations but because of the > efficient rendering engine (parallel pipelines) implemented in low > level language, as opposed doing everything in Smalltalk. > Again, this depends on the 3D application being built. > > Regarding the tool that you mentioned, how do you simulate 3D, in the > 2D Morphic framework? I'm finding hard to understand how can you > achieve a Morphic cube. > > Saludos, > Fernando > > On Tue, Mar 15, 2011 at 7:29 PM, Alexandre Bergel > <[hidden email]> wrote: >>> Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code? >> >> It is all Smalltalk code. We are not against native libraries, however we could not make it run. And so, after several months of intensive tries. So, in order to make some progress, we coded a 3d engine in Smalltalk. Actually, this is not difficult (for basic functionalities such as light, cubes, camera -- no texture and complex light rendering). I did a 2d engine for Mondrian. So having a 3d engine should not be that hard (actually it is not). The nice advantage, that it should work on the ipad, iphone, web, ... >> >> Other things, I would be surprise to have a significant boost by using OpenGL for rendering objects if all the matrix computations are realized in Smalltalk. Anyone can comment on it? >> >> Cheers, >> Alexandre >> -- Best regards, Igor Stasenko AKA sig. |
igor
first a canvas because lot of people can help for using it and this will support parallelisation of actions. Stef > from this message i learn that i have to kick my ass and continue > working on NativeBoost, > including its OpenGL bindings. > > Too bad, there is not much people who can do low level assembly + VM > hacking + openGL hacking > and interested in pushing NB forward and/or collaborating with me :( > > On 16 March 2011 00:17, Fernando Olivero <[hidden email]> wrote: >> Hi Alex, i'm sad to hear that AlienOpenGL is not working for you, i'm >> currently not mainting it. IMO opinion the Croquet OpengL and Igor's >> native boost OpenGL are far better choices for interfacing with >> OpenGL. >> Lumiere is conceptually designed to work with any of the above, but >> currently tied to AlienOpenGL. Wouldn't take much to plug the other >> two, and you would get the high level abstractions over OpenGL that >> Lumiere offers. >> >> Regarding the boost, it highly depends on the 3D application being >> built. http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node207.html#SECTION000181100000000000000 >> Anyway, Croquet OpenGL does the computation on Smalltalk, (but i think >> FloatArray is using a plugin).With Lumiere i left the matrix >> calculations to OpenGL, but you get less functionality. >> >> The boost comes not from the matrix calculations but because of the >> efficient rendering engine (parallel pipelines) implemented in low >> level language, as opposed doing everything in Smalltalk. >> Again, this depends on the 3D application being built. >> >> Regarding the tool that you mentioned, how do you simulate 3D, in the >> 2D Morphic framework? I'm finding hard to understand how can you >> achieve a Morphic cube. >> >> Saludos, >> Fernando >> >> On Tue, Mar 15, 2011 at 7:29 PM, Alexandre Bergel >> <[hidden email]> wrote: >>>> Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code? >>> >>> It is all Smalltalk code. We are not against native libraries, however we could not make it run. And so, after several months of intensive tries. So, in order to make some progress, we coded a 3d engine in Smalltalk. Actually, this is not difficult (for basic functionalities such as light, cubes, camera -- no texture and complex light rendering). I did a 2d engine for Mondrian. So having a 3d engine should not be that hard (actually it is not). The nice advantage, that it should work on the ipad, iphone, web, ... >>> >>> Other things, I would be surprise to have a significant boost by using OpenGL for rendering objects if all the matrix computations are realized in Smalltalk. Anyone can comment on it? >>> >>> Cheers, >>> Alexandre >>> > > > -- > Best regards, > Igor Stasenko AKA sig. > |
Igor, i would love to have the time for working on the OpenGl bindings
to NBoost for the MAC. And then combine your text rendering examples with Pango, to combine: Canvas + Text support. I guess once i finish my Phd i will have time! In any case i will try to dedicate some spare time whenever i can to this. Fernando On Wed, Mar 16, 2011 at 8:12 AM, Stéphane Ducasse <[hidden email]> wrote: > igor > > first a canvas because lot of people can help for using it and this will support parallelisation of actions. > > Stef > >> from this message i learn that i have to kick my ass and continue >> working on NativeBoost, >> including its OpenGL bindings. >> >> Too bad, there is not much people who can do low level assembly + VM >> hacking + openGL hacking >> and interested in pushing NB forward and/or collaborating with me :( >> >> On 16 March 2011 00:17, Fernando Olivero <[hidden email]> wrote: >>> Hi Alex, i'm sad to hear that AlienOpenGL is not working for you, i'm >>> currently not mainting it. IMO opinion the Croquet OpengL and Igor's >>> native boost OpenGL are far better choices for interfacing with >>> OpenGL. >>> Lumiere is conceptually designed to work with any of the above, but >>> currently tied to AlienOpenGL. Wouldn't take much to plug the other >>> two, and you would get the high level abstractions over OpenGL that >>> Lumiere offers. >>> >>> Regarding the boost, it highly depends on the 3D application being >>> built. http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node207.html#SECTION000181100000000000000 >>> Anyway, Croquet OpenGL does the computation on Smalltalk, (but i think >>> FloatArray is using a plugin).With Lumiere i left the matrix >>> calculations to OpenGL, but you get less functionality. >>> >>> The boost comes not from the matrix calculations but because of the >>> efficient rendering engine (parallel pipelines) implemented in low >>> level language, as opposed doing everything in Smalltalk. >>> Again, this depends on the 3D application being built. >>> >>> Regarding the tool that you mentioned, how do you simulate 3D, in the >>> 2D Morphic framework? I'm finding hard to understand how can you >>> achieve a Morphic cube. >>> >>> Saludos, >>> Fernando >>> >>> On Tue, Mar 15, 2011 at 7:29 PM, Alexandre Bergel >>> <[hidden email]> wrote: >>>>> Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code? >>>> >>>> It is all Smalltalk code. We are not against native libraries, however we could not make it run. And so, after several months of intensive tries. So, in order to make some progress, we coded a 3d engine in Smalltalk. Actually, this is not difficult (for basic functionalities such as light, cubes, camera -- no texture and complex light rendering). I did a 2d engine for Mondrian. So having a 3d engine should not be that hard (actually it is not). The nice advantage, that it should work on the ipad, iphone, web, ... >>>> >>>> Other things, I would be surprise to have a significant boost by using OpenGL for rendering objects if all the matrix computations are realized in Smalltalk. Anyone can comment on it? >>>> >>>> Cheers, >>>> Alexandre >>>> >> >> >> -- >> Best regards, >> Igor Stasenko AKA sig. >> > > |
In reply to this post by Schwab,Wilhelm K
I've never tried AlienOpenGL using Linux, i was using a MAC.
It only requires a VM that works with Alien. As i mentioned, if people are interested in having the abstractions of cameras and scenes of Lumiere, it would be worth decoupling Lumiere-AlienOpenGL, by providing: Lumiere-NBoost OpenGL or Lumiere-CroquetOpenGL. The coupling is loose, since Lumiere only adds an abstraction layer on top of the existing OpenGL binding, and also provides Scenes <-->Morphic interaction. Fernando On Sun, Mar 13, 2011 at 2:55 PM, Schwab,Wilhelm K <[hidden email]> wrote: > Using libGL.so.1 gives similar results :( > > > > ________________________________________ > From: [hidden email] [[hidden email]] On Behalf Of Lemuus [[hidden email]] > Sent: Saturday, March 12, 2011 9:48 PM > To: [hidden email] > Subject: Re: [Pharo-project] Lumiere on Linux? > > I think that the correct choice is libGL.so,but I'm just guessing. > > On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <[hidden email]<mailto:[hidden email]>> wrote: > I tried the 1.2 one-click with Lumiere. Following the collaboractive book, > > Gofer it > squeaksource: 'Lumiere'; > package: 'ConfigurationOfLumiere'; > load. > ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault. > > led to a warning about DisplayList(??), but seemed to work otherwise. Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Is glut the correct choice, or do I need to get or specify some other library? > > Bill > > > > > Segmentation fault > > Smalltalk stack dump: > 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary > 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples > 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure > 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples > 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class > 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class > 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler > 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout > 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure > 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout > 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout > 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel > 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure > 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask > 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent > 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph > 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher > 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph > 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph > 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph > 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph > 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph > 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure > 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph > 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph > 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph > 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph > 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph > 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph > 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array > 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState > 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState > 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState > 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph > 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph > 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph > 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph > 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout > 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout > 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent > 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout > 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout > 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph > 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout > 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph > 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow > 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher > 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph > 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph > 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph > 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph > 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph > 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph > 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph > 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array > 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState > 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState > 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState > 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph > 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class > 2025126836 s [] in BlockClosure>newProcess > > Most recent primitives > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > at:put: > basicNew > new: > at:put: > at:put: > value:value: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > basicNew > at:put: > at:put: > at:put: > at:put: > basicNew: > at:put: > at:put: > basicNew: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > species > new: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > species > new: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > basicNew: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > basicNew: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > at:put: > new > value:value: > value:value: > basicNew > size > basicNew > byteAt:put: > byteAt:put: > bitXor: > size > species > basicNew: > replaceFrom:to:with:startingAt: > basicNew: > replaceFrom:to:with:startingAt: > replaceFrom:to:with:startingAt: > basicNew: > basicNew > at:put: > species > basicNew: > replaceFrom:to:with:startingAt: > replaceFrom:to:with:startingAt: > size > at:put: > species > basicNew: > replaceFrom:to:with:startingAt: > size > size > size > perform:withArguments: > perform:withArguments: > species > basicNew > new: > value: > perform:withArguments: > at:put: > perform:withArguments: > species > new: > species > new: > species > new: > replaceFrom:to:with:startingAt: > newMethod:header: > at:put: > at:put: > at:put: > objectAt:put: > objectAt:put: > objectAt:put: > objectAt:put: > basicNew > size > objectAt: > basicNew > objectAt: > at:put: > at:put: > at:put: > at:put: > value > objectAt: > size > objectAt: > objectAt: > objectAt: > objectAt: > objectAt: > objectAt:put: > objectAt: > objectAt:put: > withArgs:executeMethod: > basicNew > perform: > basicNew > @ > basicNew > primCreateRenderer:x:y:w:h: > millisecondClockValue > signal > primSignal:atMilliseconds: > millisecondClockValue > wait > primGetNextEvent: > millisecondClockValue > wait > signal > millisecondClockValue > primSignal:atMilliseconds: > millisecondClockValue > wait > signal > wait > at:put: > primRender:getProperty: > basicNew > primLoadLibrary: > basicNew: > sizeFieldPut: > unsignedLongAt:put: > basicNew > new: > value > value > basicNew: > sizeFieldPut: > unsignedLongAt:put: > basicNew > at:put: > primFindSymbol: > basicNew: > sizeFieldPut: > addressFieldPut: > primFFICallResult:with: > Aborted > > > > > |
In reply to this post by Fernando olivero-2
Hi Fernando,
> Hi Alex, i'm sad to hear that AlienOpenGL is not working for you, i'm > currently not mainting it. IMO opinion the Croquet OpengL and Igor's > native boost OpenGL are far better choices for interfacing with > OpenGL. I am also sad. Unfortunately, me, as a teacher, I could not ask new students to pursue on making alienOpenGL work. I personally do not have the knowledge, and it is important that the students see their progress. Being stuck on how to interface with OpenGl could have dramatic effects. In any case, doing a basic 3d engine is not that complicated (I did one in assembly when I was 15 :-). So we did one and Ricardo is happy about the result. > Regarding the boost, it highly depends on the 3D application being > built. http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node207.html#SECTION000181100000000000000 Thanks for the link. > Regarding the tool that you mentioned, how do you simulate 3D, in the > 2D Morphic framework? I'm finding hard to understand how can you > achieve a Morphic cube. The only thing we took from Morph is how to draw a polygon. Nothing more. We have some transformation matrixes that do the projection. We had to do a bit of maths, but nothing really unfeasible. Ricardo is working on doing a demo. I hope we will be able to share it soon. Alexandre > > On Tue, Mar 15, 2011 at 7:29 PM, Alexandre Bergel > <[hidden email]> wrote: >>> Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code? >> >> It is all Smalltalk code. We are not against native libraries, however we could not make it run. And so, after several months of intensive tries. So, in order to make some progress, we coded a 3d engine in Smalltalk. Actually, this is not difficult (for basic functionalities such as light, cubes, camera -- no texture and complex light rendering). I did a 2d engine for Mondrian. So having a 3d engine should not be that hard (actually it is not). The nice advantage, that it should work on the ipad, iphone, web, ... >> >> Other things, I would be surprise to have a significant boost by using OpenGL for rendering objects if all the matrix computations are realized in Smalltalk. Anyone can comment on it? >> >> Cheers, >> Alexandre >> >>> >>> >>> >>> ________________________________________ >>> From: [hidden email] [[hidden email]] On Behalf Of Ricardo Jacas [[hidden email]] >>> Sent: Tuesday, March 15, 2011 11:07 AM >>> To: [hidden email] >>> Subject: Re: [Pharo-project] Lumiere on Linux? >>> >>> Hi guys, as Alex said we are currently working on a quite simple 3d >>> library entirely based on Morph. >>> Right know there is only cubes and "3d lines" to play as we please, i >>> will add some screenshots as soon as i have some spare time :) >>> >>> 2011/3/13 Schwab,Wilhelm K <[hidden email]>: >>>> Using libGL.so.1 gives similar results :( >>>> >>>> >>>> >>>> ________________________________________ >>>> From: [hidden email] [[hidden email]] On Behalf Of Lemuus [[hidden email]] >>>> Sent: Saturday, March 12, 2011 9:48 PM >>>> To: [hidden email] >>>> Subject: Re: [Pharo-project] Lumiere on Linux? >>>> >>>> I think that the correct choice is libGL.so,but I'm just guessing. >>>> >>>> On Sat, Mar 12, 2011 at 9:43 PM, Schwab,Wilhelm K <[hidden email]<mailto:[hidden email]>> wrote: >>>> I tried the 1.2 one-click with Lumiere. Following the collaboractive book, >>>> >>>> Gofer it >>>> squeaksource: 'Lumiere'; >>>> package: 'ConfigurationOfLumiere'; >>>> load. >>>> ( Smalltalk globals classNamed:'ConfigurationOfLumiere' ) perform: #loadDefault. >>>> >>>> led to a warning about DisplayList(??), but seemed to work otherwise. Trying an example such as #testRenderingSphere gave an error trying open OpenGL.framework, which I had trouble finding on Linux. Changing AlienOpenGLLibrary>>libraryName to answer 'libglut.so.3' gets it to the point of a segment fault, shown below. Is glut the correct choice, or do I need to get or specify some other library? >>>> >>>> Bill >>>> >>>> >>>> >>>> >>>> Segmentation fault >>>> >>>> Smalltalk stack dump: >>>> 0xbfd1714c I AlienOpenGLLibrary>glMatrixMode: 2033044028: a(n) AlienOpenGLLibrary >>>> 0xbfd17170 M [] in AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples >>>> 0xbfd17190 M BlockClosure>ensure: 2033043980: a(n) BlockClosure >>>> 0xbfd171b4 M AlienOpenGLLibraryExamples>testRenderingSphere 2033042940: a(n) AlienOpenGLLibraryExamples >>>> 0xbfd171d4 I AlienOpenGLLibraryExamples class>run: 2024758496: a(n) AlienOpenGLLibraryExamples class >>>> 0xbfd171f0 M AlienOpenGLLibraryExamples class>? 2024758496: a(n) AlienOpenGLLibraryExamples class >>>> 0xbfd17228 I Compiler>evaluate:in:to:notifying:ifFail:logged: 2032491124: a(n) Compiler >>>> 0xbfd17268 I [] in OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout >>>> 0xbfd17284 M BlockClosure>on:do: 2032491080: a(n) BlockClosure >>>> 0xbfd172b8 I OBTextMorphEditorWithShout(SmalltalkEditor)>evaluateSelection 2025101912: a(n) OBTextMorphEditorWithShout >>>> 0xbfd172d0 M [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout >>>> 0xbfd172f8 I [] in OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout >>>> 0xbfd17318 I OBTextMorphWithShout(TextMorph)>handleEdit: 2024964024: a(n) OBTextMorphWithShout >>>> 0xbfd17340 I OBPluggableTextMorphWithShout(PluggableTextMorph)>handleEdit: 2024962936: a(n) OBPluggableTextMorphWithShout >>>> 0xbfd1735c M OBPluggableTextMorphWithShout(PluggableTextMorph)>doIt 2024962936: a(n) OBPluggableTextMorphWithShout >>>> 0xbfd17378 M OBDefinitionPanel(OBTextPanel)>perform:orSendTo: 2024940940: a(n) OBDefinitionPanel >>>> 0xbfd173a8 I [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph >>>> 0xbfd173c8 M BlockClosure>ensure: 2032477540: a(n) BlockClosure >>>> 0xbfd173f0 I CursorWithMask(Cursor)>showWhile: 2002515888: a(n) CursorWithMask >>>> 0xbfd17418 I ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent: 2031928172: a(n) ToggleMenuItemMorph >>>> 0xbfd1743c I ToggleMenuItemMorph(MenuItemMorph)>mouseUp: 2031928172: a(n) ToggleMenuItemMorph >>>> 0xbfd17458 M ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp: 2031928172: a(n) ToggleMenuItemMorph >>>> 0xbfd17474 M MouseButtonEvent>sentTo: 2032130572: a(n) MouseButtonEvent >>>> 0xbfd17490 M ToggleMenuItemMorph(Morph)>handleEvent: 2031928172: a(n) ToggleMenuItemMorph >>>> 0xbfd174c0 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher >>>> 0xbfd174e0 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher >>>> 0xbfd17500 M ToggleMenuItemMorph(Morph)>processEvent:using: 2031928172: a(n) ToggleMenuItemMorph >>>> 0xbfd17534 M MorphicEventDispatcher>dispatchDefault:with: 2032130556: a(n) MorphicEventDispatcher >>>> 0xbfd17554 M MorphicEventDispatcher>dispatchEvent:with: 2032130556: a(n) MorphicEventDispatcher >>>> 0xbfd17574 M MenuMorph(Morph)>processEvent:using: 2031927856: a(n) MenuMorph >>>> 0xbfd17594 M MenuMorph(Morph)>processEvent: 2031927856: a(n) MenuMorph >>>> 0xbfd175b0 M MenuMorph>handleFocusEvent: 2031927856: a(n) MenuMorph >>>> 0xbfd175d8 M [] in HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph >>>> 0xbfd175f4 M [] in PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph >>>> 0xbfd17610 M BlockClosure>on:do: 2032130460: a(n) BlockClosure >>>> 0xbfd1763c M PasteUpMorph>becomeActiveDuring: 2003523448: a(n) PasteUpMorph >>>> 0xbfd17660 M HandMorph>sendFocusEvent:to:clear: 2002449320: a(n) HandMorph >>>> 0xbfd17688 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph >>>> 0xbfd176ac M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph >>>> 0xbfd176d0 M HandMorph>handleEvent: 2002449320: a(n) HandMorph >>>> 0xbfd176fc M HandMorph>processEvents 2002449320: a(n) HandMorph >>>> 0xbfd17714 M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >>>> 0xbfd17738 M Array(SequenceableCollection)>do: 2001081712: a(n) Array >>>> 0xbfd17754 M WorldState>handsDo: 2004924588: a(n) WorldState >>>> 0xbfd17770 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >>>> 0xbfd1778c M WorldState>doOneCycleFor: 2004924588: a(n) WorldState >>>> 0xbfd101bc M WorldState>doOneSubCycleFor: 2004924588: a(n) WorldState >>>> 0xbfd101d8 M PasteUpMorph>doOneSubCycle 2003523448: a(n) PasteUpMorph >>>> 0xbfd10200 I MenuMorph>invokeModalAt:in:allowKeyboard: 2031927856: a(n) MenuMorph >>>> 0xbfd1022c I MenuMorph>invokeModal: 2031927856: a(n) MenuMorph >>>> 0xbfd10250 I MenuMorph>invokeModal 2031927856: a(n) MenuMorph >>>> 0xbfd10274 I OBPluggableTextMorphWithShout(PluggableTextMorph)>yellowButtonActivity: 2024962936: a(n) OBPluggableTextMorphWithShout >>>> 0xbfd10298 I OBTextMorphWithShout(TextMorphForEditView)>mouseDown: 2024964024: a(n) OBTextMorphWithShout >>>> 0xbfd102b4 M OBTextMorphWithShout(Morph)>handleMouseDown: 2024964024: a(n) OBTextMorphWithShout >>>> 0xbfd102d0 M MouseButtonEvent>sentTo: 2031927788: a(n) MouseButtonEvent >>>> 0xbfd102ec M OBTextMorphWithShout(Morph)>handleEvent: 2024964024: a(n) OBTextMorphWithShout >>>> 0xbfd10328 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd10348 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd10368 M OBTextMorphWithShout(Morph)>processEvent:using: 2024964024: a(n) OBTextMorphWithShout >>>> 0xbfd103a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd103c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd103e8 M TransformMorph(Morph)>processEvent:using: 2024963800: a(n) TransformMorph >>>> 0xbfd10428 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd10448 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd10468 M OBPluggableTextMorphWithShout(Morph)>processEvent:using: 2024962936: a(n) OBPluggableTextMorphWithShout >>>> 0xbfd104a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd104c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd104e8 M OBGroupingMorph(Morph)>processEvent:using: 2024957608: a(n) OBGroupingMorph >>>> 0xbfd10528 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd10548 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd10568 M OBSystemWindow(Morph)>processEvent:using: 2024944124: a(n) OBSystemWindow >>>> 0xbfd105a8 M MorphicEventDispatcher>dispatchMouseDown:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd105c8 M MorphicEventDispatcher>dispatchEvent:with: 2031927596: a(n) MorphicEventDispatcher >>>> 0xbfd105e8 M PasteUpMorph(Morph)>processEvent:using: 2003523448: a(n) PasteUpMorph >>>> 0xbfd10610 M PasteUpMorph>processEvent:using: 2003523448: a(n) PasteUpMorph >>>> 0xbfd10630 M PasteUpMorph(Morph)>processEvent: 2003523448: a(n) PasteUpMorph >>>> 0xbfd10650 M HandMorph>sendEvent:focus:clear: 2002449320: a(n) HandMorph >>>> 0xbfd10674 M HandMorph>sendMouseEvent: 2002449320: a(n) HandMorph >>>> 0xbfd10698 M HandMorph>handleEvent: 2002449320: a(n) HandMorph >>>> 0xbfd106c4 M HandMorph>processEvents 2002449320: a(n) HandMorph >>>> 0xbfd106dc M [] in WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >>>> 0xbfd10700 M Array(SequenceableCollection)>do: 2001081712: a(n) Array >>>> 0xbfd1071c M WorldState>handsDo: 2004924588: a(n) WorldState >>>> 0xbfd10738 M WorldState>doOneCycleNowFor: 2004924588: a(n) WorldState >>>> 0xbfd10754 M WorldState>doOneCycleFor: 2004924588: a(n) WorldState >>>> 0xbfd10770 M PasteUpMorph>doOneCycle 2003523448: a(n) PasteUpMorph >>>> 0xbfd10790 I [] in Project class>spawnNewProcess 2004397340: a(n) Project class >>>> 2025126836 s [] in BlockClosure>newProcess >>>> >>>> Most recent primitives >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> at:put: >>>> basicNew >>>> new: >>>> at:put: >>>> at:put: >>>> value:value: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> basicNew >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> basicNew: >>>> at:put: >>>> at:put: >>>> basicNew: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> species >>>> new: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> species >>>> new: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> basicNew: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> basicNew: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> new >>>> value:value: >>>> value:value: >>>> basicNew >>>> size >>>> basicNew >>>> byteAt:put: >>>> byteAt:put: >>>> bitXor: >>>> size >>>> species >>>> basicNew: >>>> replaceFrom:to:with:startingAt: >>>> basicNew: >>>> replaceFrom:to:with:startingAt: >>>> replaceFrom:to:with:startingAt: >>>> basicNew: >>>> basicNew >>>> at:put: >>>> species >>>> basicNew: >>>> replaceFrom:to:with:startingAt: >>>> replaceFrom:to:with:startingAt: >>>> size >>>> at:put: >>>> species >>>> basicNew: >>>> replaceFrom:to:with:startingAt: >>>> size >>>> size >>>> size >>>> perform:withArguments: >>>> perform:withArguments: >>>> species >>>> basicNew >>>> new: >>>> value: >>>> perform:withArguments: >>>> at:put: >>>> perform:withArguments: >>>> species >>>> new: >>>> species >>>> new: >>>> species >>>> new: >>>> replaceFrom:to:with:startingAt: >>>> newMethod:header: >>>> at:put: >>>> at:put: >>>> at:put: >>>> objectAt:put: >>>> objectAt:put: >>>> objectAt:put: >>>> objectAt:put: >>>> basicNew >>>> size >>>> objectAt: >>>> basicNew >>>> objectAt: >>>> at:put: >>>> at:put: >>>> at:put: >>>> at:put: >>>> value >>>> objectAt: >>>> size >>>> objectAt: >>>> objectAt: >>>> objectAt: >>>> objectAt: >>>> objectAt: >>>> objectAt:put: >>>> objectAt: >>>> objectAt:put: >>>> withArgs:executeMethod: >>>> basicNew >>>> perform: >>>> basicNew >>>> @ >>>> basicNew >>>> primCreateRenderer:x:y:w:h: >>>> millisecondClockValue >>>> signal >>>> primSignal:atMilliseconds: >>>> millisecondClockValue >>>> wait >>>> primGetNextEvent: >>>> millisecondClockValue >>>> wait >>>> signal >>>> millisecondClockValue >>>> primSignal:atMilliseconds: >>>> millisecondClockValue >>>> wait >>>> signal >>>> wait >>>> at:put: >>>> primRender:getProperty: >>>> basicNew >>>> primLoadLibrary: >>>> basicNew: >>>> sizeFieldPut: >>>> unsignedLongAt:put: >>>> basicNew >>>> new: >>>> value >>>> value >>>> basicNew: >>>> sizeFieldPut: >>>> unsignedLongAt:put: >>>> basicNew >>>> at:put: >>>> primFindSymbol: >>>> basicNew: >>>> sizeFieldPut: >>>> addressFieldPut: >>>> primFFICallResult:with: >>>> Aborted >>>> >>>> >>>> >>>> >>>> >>> >>> >>> >>> -- >>> lets reign all together >>> >>> >> >> -- >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >> Alexandre Bergel http://www.bergel.eu >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >> >> >> >> >> >> >> > -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. |
In reply to this post by Igor Stasenko
I am wondering how this will be practical (I have no mean to be arrogant, I just try to understand). Is this tied to a particular platform? Will it work on Linux and Windows? Cog or No-Cog?
Cheers, Alexandre On 15 Mar 2011, at 21:01, Igor Stasenko wrote: > from this message i learn that i have to kick my ass and continue > working on NativeBoost, > including its OpenGL bindings. > > Too bad, there is not much people who can do low level assembly + VM > hacking + openGL hacking > and interested in pushing NB forward and/or collaborating with me :( > > On 16 March 2011 00:17, Fernando Olivero <[hidden email]> wrote: >> Hi Alex, i'm sad to hear that AlienOpenGL is not working for you, i'm >> currently not mainting it. IMO opinion the Croquet OpengL and Igor's >> native boost OpenGL are far better choices for interfacing with >> OpenGL. >> Lumiere is conceptually designed to work with any of the above, but >> currently tied to AlienOpenGL. Wouldn't take much to plug the other >> two, and you would get the high level abstractions over OpenGL that >> Lumiere offers. >> >> Regarding the boost, it highly depends on the 3D application being >> built. http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node207.html#SECTION000181100000000000000 >> Anyway, Croquet OpenGL does the computation on Smalltalk, (but i think >> FloatArray is using a plugin).With Lumiere i left the matrix >> calculations to OpenGL, but you get less functionality. >> >> The boost comes not from the matrix calculations but because of the >> efficient rendering engine (parallel pipelines) implemented in low >> level language, as opposed doing everything in Smalltalk. >> Again, this depends on the 3D application being built. >> >> Regarding the tool that you mentioned, how do you simulate 3D, in the >> 2D Morphic framework? I'm finding hard to understand how can you >> achieve a Morphic cube. >> >> Saludos, >> Fernando >> >> On Tue, Mar 15, 2011 at 7:29 PM, Alexandre Bergel >> <[hidden email]> wrote: >>>> Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code? >>> >>> It is all Smalltalk code. We are not against native libraries, however we could not make it run. And so, after several months of intensive tries. So, in order to make some progress, we coded a 3d engine in Smalltalk. Actually, this is not difficult (for basic functionalities such as light, cubes, camera -- no texture and complex light rendering). I did a 2d engine for Mondrian. So having a 3d engine should not be that hard (actually it is not). The nice advantage, that it should work on the ipad, iphone, web, ... >>> >>> Other things, I would be surprise to have a significant boost by using OpenGL for rendering objects if all the matrix computations are realized in Smalltalk. Anyone can comment on it? >>> >>> Cheers, >>> Alexandre >>> > > > -- > Best regards, > Igor Stasenko AKA sig. > -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. |
Hi Alex, Have you ever tried Ballon3D? http://www.squeaksource.com/Balloon3D
It's an "OpenGL" coded in Smalltalk. It seems like the toolkit you are building, surely you can reuse or enhance it to suit your needs. Seems my previous question was ambiguous, I've meant if you are using Forms as the surface for creating your 3D scenes, (similar as Ballon3D does). If not, if each polygon is a morph in itself, did you modify Morph class? Or you are computing the matrices on your engine, and then converting the scene coordinates into world coordinates? Dont know if this is clear enough, please let me know. If you are talking about Lumiere and the practicality of decoupling it from AlienOpenGL: I'm 99% sure that CroquetOpenGL works on Linux, Windows and Mac VMs. And if COG VMs support FFI, then on those too, because the CroqueOpenGL interfaces to OpenGL by FFI. So you wouldn't have problems in using Lumiere-CroquetOpenGL on every platform. Fernando pd: http://www.squeaksource.com/CroquetGL On Wed, Mar 16, 2011 at 1:39 PM, Alexandre Bergel <[hidden email]> wrote: > I am wondering how this will be practical (I have no mean to be arrogant, I just try to understand). Is this tied to a particular platform? Will it work on Linux and Windows? Cog or No-Cog? > > Cheers, > Alexandre > > > On 15 Mar 2011, at 21:01, Igor Stasenko wrote: > >> from this message i learn that i have to kick my ass and continue >> working on NativeBoost, >> including its OpenGL bindings. >> >> Too bad, there is not much people who can do low level assembly + VM >> hacking + openGL hacking >> and interested in pushing NB forward and/or collaborating with me :( >> >> On 16 March 2011 00:17, Fernando Olivero <[hidden email]> wrote: >>> Hi Alex, i'm sad to hear that AlienOpenGL is not working for you, i'm >>> currently not mainting it. IMO opinion the Croquet OpengL and Igor's >>> native boost OpenGL are far better choices for interfacing with >>> OpenGL. >>> Lumiere is conceptually designed to work with any of the above, but >>> currently tied to AlienOpenGL. Wouldn't take much to plug the other >>> two, and you would get the high level abstractions over OpenGL that >>> Lumiere offers. >>> >>> Regarding the boost, it highly depends on the 3D application being >>> built. http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node207.html#SECTION000181100000000000000 >>> Anyway, Croquet OpenGL does the computation on Smalltalk, (but i think >>> FloatArray is using a plugin).With Lumiere i left the matrix >>> calculations to OpenGL, but you get less functionality. >>> >>> The boost comes not from the matrix calculations but because of the >>> efficient rendering engine (parallel pipelines) implemented in low >>> level language, as opposed doing everything in Smalltalk. >>> Again, this depends on the 3D application being built. >>> >>> Regarding the tool that you mentioned, how do you simulate 3D, in the >>> 2D Morphic framework? I'm finding hard to understand how can you >>> achieve a Morphic cube. >>> >>> Saludos, >>> Fernando >>> >>> On Tue, Mar 15, 2011 at 7:29 PM, Alexandre Bergel >>> <[hidden email]> wrote: >>>>> Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code? >>>> >>>> It is all Smalltalk code. We are not against native libraries, however we could not make it run. And so, after several months of intensive tries. So, in order to make some progress, we coded a 3d engine in Smalltalk. Actually, this is not difficult (for basic functionalities such as light, cubes, camera -- no texture and complex light rendering). I did a 2d engine for Mondrian. So having a 3d engine should not be that hard (actually it is not). The nice advantage, that it should work on the ipad, iphone, web, ... >>>> >>>> Other things, I would be surprise to have a significant boost by using OpenGL for rendering objects if all the matrix computations are realized in Smalltalk. Anyone can comment on it? >>>> >>>> Cheers, >>>> Alexandre >>>> >> >> >> -- >> Best regards, >> Igor Stasenko AKA sig. >> > > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.bergel.eu > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > > > > > |
> Hi Alex, Have you ever tried Ballon3D? http://www.squeaksource.com/Balloon3D
> It's an "OpenGL" coded in Smalltalk. It seems like the toolkit you are > building, surely you can reuse or enhance it to suit your needs. We had a look at Balloon3D. Impossible to load it in Pharo. Too many obsolete code and dependencies. Sure, we could have taken some bit from there. But again, I estimated the task too difficult for a student who is learning Smalltalk. I had the feeling that we will have a much better result in two weeks of work by implanting a new engine. > Seems my previous question was ambiguous, I've meant if you are using > Forms as the surface for creating your 3D scenes, (similar as > Ballon3D does). Yes, we are using Forms. > If not, if each polygon is a morph in itself, did you modify Morph class? > Or you are computing the matrices on your engine, and then converting > the scene coordinates into world coordinates? Oh no :-) There is just one morph, the world. 3d objects are rendered by displaying polygon on a form canvas. This is the same in Mondrian. > If you are talking about Lumiere and the practicality of decoupling it > from AlienOpenGL: > I'm 99% sure that CroquetOpenGL works on Linux, Windows and Mac VMs. > > And if COG VMs support FFI, then on those too, because the > CroqueOpenGL interfaces to OpenGL by FFI. > > So you wouldn't have problems in using Lumiere-CroquetOpenGL on every platform. I would be happy to see that. Please, note that I am 100% for using the native 3d support. Really. However, we simply did not have the resources to open the VM and do what we have to. We have a very simple and primitive (but working) 3d engine. We are building on it. Then, if one day, we have a working and reliable solution for displaying 3d objects, when we will switch. There is no doubt about it. But the multiple effort (AlienOpenGL, Croquet, ...) demonstrated this is not easy. But I am optimistic. Cheers, Alexandre > > > On Wed, Mar 16, 2011 at 1:39 PM, Alexandre Bergel > <[hidden email]> wrote: >> I am wondering how this will be practical (I have no mean to be arrogant, I just try to understand). Is this tied to a particular platform? Will it work on Linux and Windows? Cog or No-Cog? >> >> Cheers, >> Alexandre >> >> >> On 15 Mar 2011, at 21:01, Igor Stasenko wrote: >> >>> from this message i learn that i have to kick my ass and continue >>> working on NativeBoost, >>> including its OpenGL bindings. >>> >>> Too bad, there is not much people who can do low level assembly + VM >>> hacking + openGL hacking >>> and interested in pushing NB forward and/or collaborating with me :( >>> >>> On 16 March 2011 00:17, Fernando Olivero <[hidden email]> wrote: >>>> Hi Alex, i'm sad to hear that AlienOpenGL is not working for you, i'm >>>> currently not mainting it. IMO opinion the Croquet OpengL and Igor's >>>> native boost OpenGL are far better choices for interfacing with >>>> OpenGL. >>>> Lumiere is conceptually designed to work with any of the above, but >>>> currently tied to AlienOpenGL. Wouldn't take much to plug the other >>>> two, and you would get the high level abstractions over OpenGL that >>>> Lumiere offers. >>>> >>>> Regarding the boost, it highly depends on the 3D application being >>>> built. http://www.opengl.org/resources/code/samples/advanced/advanced97/notes/node207.html#SECTION000181100000000000000 >>>> Anyway, Croquet OpenGL does the computation on Smalltalk, (but i think >>>> FloatArray is using a plugin).With Lumiere i left the matrix >>>> calculations to OpenGL, but you get less functionality. >>>> >>>> The boost comes not from the matrix calculations but because of the >>>> efficient rendering engine (parallel pipelines) implemented in low >>>> level language, as opposed doing everything in Smalltalk. >>>> Again, this depends on the 3D application being built. >>>> >>>> Regarding the tool that you mentioned, how do you simulate 3D, in the >>>> 2D Morphic framework? I'm finding hard to understand how can you >>>> achieve a Morphic cube. >>>> >>>> Saludos, >>>> Fernando >>>> >>>> On Tue, Mar 15, 2011 at 7:29 PM, Alexandre Bergel >>>> <[hidden email]> wrote: >>>>>> Great. What about the usual "native code" speed boost? Are you writing a plugin, or is it all Smalltalk code? >>>>> >>>>> It is all Smalltalk code. We are not against native libraries, however we could not make it run. And so, after several months of intensive tries. So, in order to make some progress, we coded a 3d engine in Smalltalk. Actually, this is not difficult (for basic functionalities such as light, cubes, camera -- no texture and complex light rendering). I did a 2d engine for Mondrian. So having a 3d engine should not be that hard (actually it is not). The nice advantage, that it should work on the ipad, iphone, web, ... >>>>> >>>>> Other things, I would be surprise to have a significant boost by using OpenGL for rendering objects if all the matrix computations are realized in Smalltalk. Anyone can comment on it? >>>>> >>>>> Cheers, >>>>> Alexandre >>>>> >>> >>> >>> -- >>> Best regards, >>> Igor Stasenko AKA sig. >>> >> >> -- >> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: >> Alexandre Bergel http://www.bergel.eu >> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. >> >> >> >> >> >> >> > -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. |
Free forum by Nabble | Edit this page |