On Mon, May 2, 2016 at 5:30 PM, Victor RENE <victor-rene....@outlook.com> wrote: > > Hello, > > I am new to Pharo and would like to understand a few things. > I can search by myself, but I do not know the code base yet, so: > > [Questions] > Pharo vm (Cog/Spur): > Rendering loop
(Whoops, I notice too late you are asking about the vm. For what its worth, I send anyway what I wrote about the image side of rendering) Within the Image, do "EllipseMorph new openInWorld" then put a "self haltOnce" in EllipseMorph>>drawOn: and select World > System > Enable halt/inspect once, then in the debugger that appears, right-click to select "Full Stack". Observe the sender chain... EllipseMorph>>drawOn: FormCanvas(Canvas)>>draw: FormCanvas(Canvas)>>drawMorph: EllipseMorph(Morph)>>fullDrawOn: FormCanvas(Canvas)>>fullDraw: FormCanvas(Canvas)>>fullDrawMorph: Observe there are three implementors of fullDrawMorph: * Canvas * AthensCanvas * AthensCanvasWrapper Canvas is the bitmap rendering. Athens is vector rendering. Scroll down the stack to see MorphicUIManager>>spawnNewProcess. and also look for it's senders. Open World > Tools > Process Browser to observe the "(40) Morphic UI Process" created by #spawnNewProcess. > and event loops. In World > Tools > Process Browser, select "(60) Input Event Fetcher Process" and browse its call stack in the top-right pane. > done with SDL2, where is the code? I'm not familiar enough to comment > Message passing, object hierarchy lookup, where is the code? https://clementbera.wordpress.com/2013/08/09/the-cog-vm-lookup/ https://clementbera.wordpress.com/category/sista/ http://www.mirandabanda.org/cogblog/2011/03/01/build-me-a-jit-as-fast-as-you-can/ http://www.mirandabanda.org/cogblog/on-line-papers-and-presentations/ cheers -ben