Lumiere on Linux?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
18 messages Options
Reply | Threaded
Open this post in threaded view
|

Lumiere on Linux?

Schwab,Wilhelm K
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


Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

Daniel Galdames
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,

  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



Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

abergel

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]> 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 <[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



Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

Schwab,Wilhelm K
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




Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

Schwab,Wilhelm K
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




Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

rjacas
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

Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

Schwab,Wilhelm K
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


Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

rjacas
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

Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

abergel
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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

Fernando olivero-2
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
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

Igor Stasenko
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.

Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

Stéphane Ducasse
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.
>


Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

Fernando olivero-2
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.
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

Fernando olivero-2
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
>
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

abergel
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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

abergel
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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

Fernando olivero-2
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
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Lumiere on Linux?

abergel
> 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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.