2015-03-06 20:18 GMT+01:00 Esteban Lorenzano <[email protected]>:

>
> On 06 Mar 2015, at 18:40, kilon alios <[email protected]> wrote:
>
> very good example and very informative thank you.
>
> Sadly it also shows that even with Athens Pharo is incredible slow. Simple
> animation spiking a single 3.2 Ghz core to 50% does not look very promising
> for heavy big size graphic based animations. Which is not a surprise since
> this was also evident the first time I tried the VGTiger demo. But still ,
> its better than no Athens ;)
>
>
> That’s because we are converting the rendering into a bitmap that is after
> drawn for the vm… a complete inefficient mechanism.
>

I heard this multiple times, but I still don't get it. The (cairo)
rendering happens on a (in memory) imagesurface. There is no extra
allocation
of a bitmap for every drawing on the screen. Drawing the rendering on the
screen is a bitblt (copybits) operation, like it is done for every other
Form.


> I have a running experiment for drawing directly in the canvas (using SDL2
> library) and the tiger demo drops from eating 70% of cpu to 9% in my
> machine.
>

We can do this without SDL, but of course less platform independent, with
cairos win32 , quartz, or xrender (os dependent) surfaces. This is really
fast, no need
for an (in memory) image surface. But one problem with this approach is,
some morphs need to access the current displays Form data (HandMorph for
example).
And this does not work (or not easily) with the OS device surface.
Does this work with cairo and SDL?

One thing that is really slow is painting an image with Athens, because the
cairo backend creates a new surface for this image and uses this
image as a pattern paint. The slow part is copying and converting the image
data into the surface.
I already proposed an alternative, (it's a bit like cheating), we can use
the bitblt to copy and convert the image data into the surface, this again
is much faster.



> Our idea is to move pharo in that direction for Pharo5 so next year we
> will be a lot better :)
>
> Esteban
>
>
> On Fri, Mar 6, 2015 at 6:28 PM, Alexandre Bergel <[email protected]>
> wrote:
>
>> This is really good that you are diving into Athens. It deserves it!
>>
>> Alexandre
>>
>>
>> > On Mar 6, 2015, at 10:20 AM, Nicolai Hess <[email protected]> wrote:
>> >
>> > There is a "play" button in the SketchBrowser.
>> > And if you open just the simple sketch view:
>> > ASketchExampleColors openView
>> > you'll have to start the drawing from the morph menu.
>> >
>> > In a prior version I had some "autoplay" option, but sometimes this
>> throws
>> > a NativeBoost error, if it is the first time it loads the cairo library.
>> >
>> > Maybe I should add the autoplay again.
>> >
>> >
>> >
>> >
>> > 2015-03-06 16:03 GMT+01:00 Torsten Bergmann <[email protected]>:
>> > For me all the samples stay black. But the Athens tiger demo works...
>> >
>> > Is this a driver problem?
>> >
>> > Bye
>> > T.
>> >
>> > Gesendet: Freitag, 06. März 2015 um 10:14 Uhr
>> > Von: "Nicolai Hess" <[email protected]>
>> > An: "Pharo Development List" <[email protected]>, "Any
>> question about pharo is welcome" <[email protected]>
>> > Betreff: [Pharo-dev] [ANN AthensSketch] A playground for drawings with
>> Athens.
>> >
>> > The main purpose of this packages is to ease the creation of simple
>> drawings and provide a rich set of examples for Athens drawing API.
>> > --------------
>> > Gofer new
>> >   smalltalkhubUser: 'NicolaiHess' project: 'AthensSketch';
>> >   configuration;
>> >   load.
>> > ConfigurationOfAthensSketch loadDevelopment.
>> >
>> > AthensSketchBrowser open.
>> >
>> > -----------------
>> >
>> >
>> > This is a simple playground for Athens drawings. Just subclass
>> AthensSketch and define your own sketch drawing in the #drawStepOn: method.
>> It provides basic frame based animation (play/pause/stop).
>> >
>> > Open a player with
>> > ASketchExampleColors openPlayer',
>> > or a simple viewer morph with
>> > ASketchExampleColors openView (start and stop rendering from the morph
>> menu)
>> >
>> > The AthensSketchBrowser lists all defined AthensSketch subclasses.
>> (Basic examples
>> > from package AthensSketch and some more examples from package
>> ASketchExamples).
>> > You can step through the list of examples, start and stop the drawing,
>> or view and edit the drawing code.
>> >
>> > It is great that we have now a vector based drawing API. The (old)
>> Canvas API is
>> > already great for pixel based drawings. A rich API and many good things
>> if
>> > you discover it. And Athens is a  addition that can increase our
>> possibilities.
>> > There were some questions about Athens, what it is and what it is used
>> for, maybe this
>> > helps.
>> >
>> >
>> > nicolai
>> >
>>
>> --
>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>> Alexandre Bergel  http://www.bergel.eu
>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>
>>
>>
>>
>>
>
>

Reply via email to