Hi Nacho,

2015-02-06 22:32 GMT+01:00 nacho <0800na...@gmail.com>:

> Hi,
> I've been digging and inspecting all the classes related to Morphic. But
> there's something that I don't happen to figure out.
> Morph has a method
> drawOn: aCanvas
>         aCanvas fillRectangle: self bounds fillStyle: self fillStyle
> borderStyle: self borderStyle
>
>
> Which if it's not overridden by a subclass of Morph makes it possible to
> still instantiate a Morph -the classic blue rectangle.
>
> Now aCanvas is obviously an instance of FormCanvas or some other subclasses
> of Canvas.
> But the question is, where does Morph create such instance of FormCanvas?
>

The Morph does not care where this Canvas come from *

The WorldMorph (a PasteUpMorph) has a "WorldState" instance variable and
this
world state controlls the update cycle. During this update it
creates THE canvas from the DisplayScreen (this is now a FormCanvas for the
DisplayScreen(Form)).
Now it calls drawOn:canvas for all Morph(and submorphs) of the WorldMorph.
(With some more or less complex computations for clipping resp. updating
only the changed areas).


> How does this work? I'm getting all wrong?
>
look at:
WorldMorph>>#displayWorld
WorldState>>#displayWorld:submorphs:


> I read the documentation available but I can't grasp it from what I have
> read.
>


* you can create your own Form and Canvas instance and call drawOn: for a
Morph with that canvas:

|f canvas |
f:=Form extent:300@300 depth:32.
canvas := f getCanvas.
EllipseMorph new extent:300@300;drawOn:canvas.
f display



> Thanks in advance for your help
> best
> Nacho
>
>
>
>
> -----
> Nacho
> Smalltalker apprentice.
> Buenos Aires, Argentina.
> --
> View this message in context:
> http://forum.world.st/Relationship-between-Morph-and-Canvas-tp4804251.html
> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
>
>

Reply via email to