Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 1 participants
- 144619 messages
Re: [Pharo-project] Lumiere on Linux?
by Alexandre Bergel
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 <fernando.olivero(a)usi.ch> 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/node…
>> 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
>> <alexandre.bergel(a)me.com> 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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
March 16, 2011
Re: [Pharo-project] Lumiere on Linux?
by Alexandre Bergel
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/node…
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
> <alexandre.bergel(a)me.com> 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: pharo-project-bounces(a)lists.gforge.inria.fr [pharo-project-bounces(a)lists.gforge.inria.fr] On Behalf Of Ricardo Jacas [ricardo.jacas(a)gmail.com]
>>> Sent: Tuesday, March 15, 2011 11:07 AM
>>> To: Pharo-project(a)lists.gforge.inria.fr
>>> 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 <bschwab(a)anest.ufl.edu>:
>>>> Using libGL.so.1 gives similar results :(
>>>>
>>>>
>>>>
>>>> ________________________________________
>>>> From: pharo-project-bounces(a)lists.gforge.inria.fr [pharo-project-bounces(a)lists.gforge.inria.fr] On Behalf Of Lemuus [lemuus(a)gmail.com]
>>>> Sent: Saturday, March 12, 2011 9:48 PM
>>>> To: Pharo-project(a)lists.gforge.inria.fr
>>>> 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 <bschwab(a)anest.ufl.edu<mailto:bschwab@anest.ufl.edu>> 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
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
March 16, 2011
Re: [Pharo-project] [OT] GTK3 directions - what about Morphic ?
by Igor Stasenko
On 16 March 2011 11:09, laurent laffont <laurent.laffont(a)gmail.com> wrote:
> Hi,
> I've seen:
> - you can style GTK3 with
> CSS:Â http://gnomejournal.org/article/107/styling-gtk-with-css
> - GTK3 apps can be rendered in a web browser:
> http://blogs.gnome.org/alexl/2010/11/23/gtk3-vs-html5/
> This sounds sexy.
> I wonder how hard it would be to have SimpleMorphic go in this direction.
> And whether this is useful or not.
> Laurent.
Well, it is orthogonal.
However, i like the idea of having similar to CSS for theming/styling UI.
--
Best regards,
Igor Stasenko AKA sig.
March 16, 2011
Re: [Pharo-project] Lumiere on Linux?
by Fernando Olivero
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
<alexandre.bergel(a)me.com> 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 <fernando.olivero(a)usi.ch> 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/node…
>>> 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
>>> <alexandre.bergel(a)me.com> 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
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
>
March 16, 2011
[Pharo-project] [OT] GTK3 directions - what about Morphic ?
by laurent laffont
Hi,
I've seen:
- you can style GTK3 with CSS:
http://gnomejournal.org/article/107/styling-gtk-with-css
- GTK3 apps can be rendered in a web browser:
http://blogs.gnome.org/alexl/2010/11/23/gtk3-vs-html5/
This sounds sexy.
I wonder how hard it would be to have SimpleMorphic go in this direction.
And whether this is useful or not.
Laurent.
March 16, 2011
Re: [Pharo-project] Issue 3581 in pharo: [Failing test] 1.1.1 Full: MethodWrappers.Tests.ObjectAsOneTimeMethodWrapperTest.testInstallOnClassCategory
by pharo@googlecode.com
Updates:
Status: Closed
Comment #13 on issue 3581 by marianopeck: [Failing test] 1.1.1 Full:
MethodWrappers.Tests.ObjectAsOneTimeMethodWrapperTest.testInstallOnClassCategory
http://code.google.com/p/pharo/issues/detail?id=3581
Yes, that's perfect. THe other possibility was to implemented this way_
ObjectAsMethodWrapper>>flushCache
<primitive: 116>
Anyway, I commit your version because in this case it is cleaner.
Name: MethodWrappers-MarianoMartinezPeck.6
Author: MarianoMartinezPeck
Time: 16 March 2011, 10:57:08 am
UUID: 48366448-4da1-4351-98f5-8a5f16d52be2
Ancestors: MethodWrappers-MarianoMartinezPeck.5
Implement ObjectAsMethodWrapper>>flushCache so that it flush the entries in
the cache that match the selector
March 16, 2011
[Pharo-project] ConfigurationOfSandstoneDb working in 1.2
by Torsten Bergmann
FYI: from an offlist discussion:
ConfigurationOfSandstoneDb was updated (version 1.2)
to work on Pharo 1.2.
Thanks to Ramon Leon.
Bye
T.
--
Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
March 16, 2011
Re: [Pharo-project] Cog/FFI Return Values
by Mariano Martinez Peck
http://code.google.com/p/cog/issues/list
On Wed, Mar 16, 2011 at 8:03 AM, Stéphane Ducasse <stephane.ducasse(a)inria.fr
> wrote:
> ken
>
> it would be good to enter a bug entry on the cog vm bug tracker.
>
> Stef
>
> On Mar 15, 2011, at 11:19 PM, Ken Treis wrote:
>
> > For kicks, I tried running the GemStone tools in a Cog VM. It *almost*
> works. Apparently this sort of call:
> >
> >> apiGciPerform: anOopType a: aString a: anArray a: anInteger
> >>
> >> <apicall: OopType64 'GciPerform' (OopType64 char* ulong long) >
> >> ^self externalCallFailed
> >
> > ... works differently now. In the old (non-Cog) VM, it return an instance
> of OopType64. In Cog, it returns a SmallInteger.
> >
> > The function itself returns a uint64_t, so apparently the OopType64 class
> (a subclass of ExternalStructure) is being used to trick the FFI into
> automatically wrapping the return value in the way we want.
> >
> > 1. Is this trick no longer supported/legit (assuming it ever was)?
> > 2. Is there a better way to accomplish the same thing, or do we just have
> to do the wrapping ourselves now?
> >
> > I'm pretty new to the FFI, so forgive me if the premise is wrong. All I
> know is that it doesn't work the way it used to. :)
> >
> > --
> > Ken Treis
> > Miriam Technologies, Inc.
> >
> >
>
>
>
March 16, 2011
Re: [Pharo-project] Lumiere on Linux?
by Fernando Olivero
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 <bschwab(a)anest.ufl.edu> wrote:
> Using libGL.so.1 gives similar results :(
>
>
>
> ________________________________________
> From: pharo-project-bounces(a)lists.gforge.inria.fr [pharo-project-bounces(a)lists.gforge.inria.fr] On Behalf Of Lemuus [lemuus(a)gmail.com]
> Sent: Saturday, March 12, 2011 9:48 PM
> To: Pharo-project(a)lists.gforge.inria.fr
> 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 <bschwab(a)anest.ufl.edu<mailto:bschwab@anest.ufl.edu>> 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
>
>
>
>
>
March 16, 2011
Re: [Pharo-project] Lumiere on Linux?
by Fernando Olivero
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
<stephane.ducasse(a)inria.fr> 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 <fernando.olivero(a)usi.ch> 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/node…
>>> 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
>>> <alexandre.bergel(a)me.com> 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.
>>
>
>
March 16, 2011