Thank you for your feedback

@Marcus
I spend hours doing experiments with the font rendering, I think
there must be a way to make it look better, because AFAIK there
are other cairo based applications and the font rendering looks better.
(maybe only linux?)

Yes, the AthensTestDisplay is initialized with the current screen extent.
We can reset that after the window changed (AthensTestDisplay reset).

But this is only a test envionment, if we *ever* change the default morphic
rendering
backend to Athens, we have to develop a real athens world display workflow.
(reinit athens on startup, provide a fallback if we move the image to a
system
without cairo...)


2015-01-31 10:33 GMT+01:00 Alain Plantec <alain.plan...@yahoo.com>:

> super!
> it just works fine, except the font.
> I’ve also noticed that the mouse pointer is not drawn while dragging a
> morph.
>

@Alain

Yes the HandMorph is handled like any other Morph, it draws itself and
after that it draws all its submorphs. (And actually it does not use any
caching, and it is still quite fast)
But yes, it needs a special drawOnAthens method.


> Do you plane to make a package for it ?
> I would like to integrate it in Bloc.
>

What would like to integrate? I will upload the changes  in Athens-Morphic
package to
the Athens repository.
But there are actually 5 different kinds of changes and I will group them
as:

athens morphic support (missing implementation for borderstyles,
fillstyles, )
athens text support (athens based display scanner and some changes to the
TextMorphs)
athens drawOn (some more drawOnAthensCanvas methods (based on the two above)
athens canvas wrapper ( the Athens based wrapper for (Morphic-)Canvas)
athens drawOn with canvas wrapper ( other missing drawOnAthensCanvas
methods, but  those that use the CanvasWrapper for its implementation)

And the AthensTestDisplay? I don't know, it is just for the testing, but we
need something better.

nicolai




> thanks
> Alain
>
>
> Le 31 janv. 2015 à 09:48, Marcus Denker <marcus.den...@inria.fr> a écrit :
>
> Nice! It works fine here (font looks strange, yes).
> The world size seems to be limited to the small window
> that pharo starts up with? Making it larger seems to still clip at that
> border.
>
> On 23 Jan 2015, at 17:40, Nicolai Hess <nicolaih...@web.de> wrote:
>
>
>
> 2015-01-10 13:18 GMT+01:00 Nicolai Hess <nicolaih...@web.de>:
>
>>
>> I think I got the MorphTreeTransformMorph now working, need to clean up
>> the code
>> and maybe I 'll upload this to the athens repository.
>>
>> nicolai
>>
>>
>>
>
> I don't know how often I thought "I got this working", but NOW I think I
> got this morphic transformation working :)
>
> I give up to use the AthensTextRenderer classes, they aren't implemented
> fully, to much work for me to do this.
> Instead, I just subclass the DisplayScanner and reimplemented all
> Canvas-draw-methods with athens-drawing-methods.
>
> Still some morphs aren't "ported", but they use some magic. For example,
> for some morphs the drawOn:Canvas methods
> calls many other methods drawBackroundOn: aCanvas, drawIconOn: aCanvas,
> drawLinesOn: ...
> (for exampe: IndentingListItemMorph, MorphTreeMorph). Porting this morphs
> means, we have to duplicate all this methods.
> (Ok there are other options, but I don't want to change something in the
> original Morphic/Canvas workflow).
> Other Morphs just delegate the drawing call, that delegate the calls
> further and deep in this call change the
> drawing actually happens. This again means I have to duplicate all this
> methods just to use an AthensCanvas for drawing.
>
> So, for those Morphs I use a Canvas Wrapper (AthensCanvasWrapper). I
> already wrote about this one, it implements (most)
> of the Morphic/Canvas API on top of Athens, it was an alternative approach
> for Morphic<->Athens porting. This one is
> now a much more advanced version and I can use it in combination with the
> other drawOnAthensCanvas methods.
>
> The drawOnAthensCanvas method in MorphTreeNodeMorph for example just calls
> this
> drawOnAthensCanvas: anAthensCanvas
>     self drawOnCanvasWrapperFor: anAthensCanvas
> which in turn creates an AthensCanvasWrapper and then calls
>   self drawOn: wrapper
> The same Morphic/Canvas drawOn method is used! But the rendering is done
> with Athens.
>
> Rubric does not work - Itself already duplicates many code, I don't want
> to look at this now.
> Brick does not work - It uses some of Canvas' private api, and it is
> difficult to provide this with Athens.
>
>
> Many other things are working,
> PLEASE try it out. Morphic on Athens looks great (except the font issue
> ...).
>
> Just take a fresh image (I use 40442) and load the attached
>
> morphic_on_athens.cs (<-- all code for Morphic<->Athens porting)
> athens_test_display.3.cs (<-- Tests Athens for the whole MorphicWorld)
>
> Open a Workspace (old workspace preferred) and execute
>
> AthensTestDisplay testSwitchToAthensFor: 25.
>
> This will switch the world display rendering for 25 seconds from Morphics
> Canvas-Api to
> Athens.
>
>
> Feedback welcome.
>
>
>
>
>
>
>
> <athens_test_display.3.cs><morphic_on_athens.cs>
>
>
>

Reply via email to