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

Reply via email to