[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
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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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
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 <astares@gmx.de>:
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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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
This is really good that you are diving into Athens. It deserves it! Alexandre
On Mar 6, 2015, at 10:20 AM, Nicolai Hess <nicolaihess@web.de> 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 <astares@gmx.de>: 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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
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 ;) On Fri, Mar 6, 2015 at 6:28 PM, Alexandre Bergel <alexandre.bergel@me.com> 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 <nicolaihess@web.de> 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 <astares@gmx.de>: 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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On 06 Mar 2015, at 18:40, kilon alios <kilon.alios@gmail.com> 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 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. 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 <alexandre.bergel@me.com <mailto:alexandre.bergel@me.com>> 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 <nicolaihess@web.de <mailto:nicolaihess@web.de>> 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 <astares@gmx.de <mailto:astares@gmx.de>>: 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" <nicolaihess@web.de <mailto:nicolaihess@web.de>> An: "Pharo Development List" <pharo-dev@lists.pharo.org <mailto:pharo-dev@lists.pharo.org>>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org <mailto:pharo-users@lists.pharo.org>> 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 <http://www.bergel.eu/> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Ah thats great news Esteban, 70% to 9% is more than enough for my needs. I can wait a year, no problemo. This is all optimised inside VM ? Or you plan to bring those optimizations also inside the image ? SDL2 is a very powerful lib and a very wise move to move to it. Not just for 2d graphics, but also 3d, events and so much more. On Fri, Mar 6, 2015 at 9:18 PM, Esteban Lorenzano <estebanlm@gmail.com> wrote:
On 06 Mar 2015, at 18:40, kilon alios <kilon.alios@gmail.com> 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 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. 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 <alexandre.bergel@me.com> 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 <nicolaihess@web.de> 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 <astares@gmx.de>: 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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
2015-03-06 20:18 GMT+01:00 Esteban Lorenzano <estebanlm@gmail.com>:
On 06 Mar 2015, at 18:40, kilon alios <kilon.alios@gmail.com> 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 <alexandre.bergel@me.com> 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 <nicolaihess@web.de> 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 <astares@gmx.de>: 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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On 07 Mar 2015, at 00:02, Nicolai Hess <nicolaihess@web.de> wrote:
2015-03-06 20:18 GMT+01:00 Esteban Lorenzano <estebanlm@gmail.com <mailto:estebanlm@gmail.com>>:
On 06 Mar 2015, at 18:40, kilon alios <kilon.alios@gmail.com <mailto:kilon.alios@gmail.com>> 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 will try to explain⦠is a problem in several ways: 1) what is not efficient at all is BitBlt plugin, our current way to display things. Want an example? just open a new image, open a browser (or a playground, or any window) and start moving itâ¦. then watch how your cpu starts heating (in my machine, is around 35%, some times⦠just one browser). 2) Now⦠what we do with Athens is: a) create an in-memory surface and draw things there. b) convert that surface into a bitblt compatible format (this is actually just a copy, not much actually) c) display the result into the current world window (another copy) 3) Now imagine all that cycling (stepping)⦠With OSWindow (SDL2) what we do is: 1) create a SDL2 surface 2) draw on it 3) cycle on (2)
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?
yes, why not? and yes⦠we can have several backends. The advantage on using SDL2 is that you do not need to maintain one different backend for each platform. Of course, it has also drawbacks, as always⦠but our manpower is determinant here and we decided to take the âcommon approachâ⦠we will have time to improve later, if we find is necessary (but frankly, I do not think so for the moment)
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.
this is something inherent to cairo (and athens as a result)⦠I suppose game programmers already dealt with this problem. I suggest look there for answers (I didnât look there, nor seen your proposed solution yet⦠sorry I will as soon as I find some time). cheers, Esteban
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 <alexandre.bergel@me.com <mailto:alexandre.bergel@me.com>> 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 <nicolaihess@web.de <mailto:nicolaihess@web.de>> 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 <astares@gmx.de <mailto:astares@gmx.de>>: 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" <nicolaihess@web.de <mailto:nicolaihess@web.de>> An: "Pharo Development List" <pharo-dev@lists.pharo.org <mailto:pharo-dev@lists.pharo.org>>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org <mailto:pharo-users@lists.pharo.org>> 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 <http://www.bergel.eu/> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
"That is not really helpfull. Anything that uses cairo? I would like to make some comparisons and it would help if I can recreate the same animations. (I did some work with cairo and python, but no animation. I used cairo for animations together with GTK, sure this was faster but these applications are only made for the animation, just a simple drawing loop. Pharo of course has much more that happens in between)." No I was not talking as a developer but rather as a user, so by "everything" I mean literally everything I use, cairo based or not. I am no cairo developer , I only took a look at the pycairo docs once. I have picked the habit of taking a look at how much cpu each application consumes by using Blender. As you can imagine blender can eat cpu cycles like peanuts, so I have an overall idea under which circumstances the cpu can max out so I have learned to avoid it by utlising several techniques. I am also a blender python developer. But then its not hard to imagine that when you see a simple animation of a small logo slide in a very small area cosuming 30-50% of CPU and flicker, that 2d game running in full screen or even half screen would be a no go. On Sat, Mar 7, 2015 at 4:38 AM, Esteban Lorenzano <estebanlm@gmail.com> wrote:
On 07 Mar 2015, at 00:02, Nicolai Hess <nicolaihess@web.de> wrote:
2015-03-06 20:18 GMT+01:00 Esteban Lorenzano <estebanlm@gmail.com>:
On 06 Mar 2015, at 18:40, kilon alios <kilon.alios@gmail.com> 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 will try to explain⦠is a problem in several ways: 1) what is not efficient at all is BitBlt plugin, our current way to display things. Want an example? just open a new image, open a browser (or a playground, or any window) and start moving itâ¦. then watch how your cpu starts heating (in my machine, is around 35%, some times⦠just one browser). 2) Now⦠what we do with Athens is: a) create an in-memory surface and draw things there. b) convert that surface into a bitblt compatible format (this is actually just a copy, not much actually) c) display the result into the current world window (another copy) 3) Now imagine all that cycling (stepping)â¦
With OSWindow (SDL2) what we do is: 1) create a SDL2 surface 2) draw on it 3) cycle on (2)
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?
yes, why not? and yes⦠we can have several backends. The advantage on using SDL2 is that you do not need to maintain one different backend for each platform. Of course, it has also drawbacks, as always⦠but our manpower is determinant here and we decided to take the âcommon approachâ⦠we will have time to improve later, if we find is necessary (but frankly, I do not think so for the moment)
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.
this is something inherent to cairo (and athens as a result)⦠I suppose game programmers already dealt with this problem. I suggest look there for answers (I didnât look there, nor seen your proposed solution yet⦠sorry I will as soon as I find some time).
cheers, Esteban
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 <alexandre.bergel@me.com
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 <nicolaihess@web.de> 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 <astares@gmx.de>: 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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Let's make this happen!! Alexandre
Le 6 mars 2015 à 21:38, Esteban Lorenzano <estebanlm@gmail.com> a écrit :
On 07 Mar 2015, at 00:02, Nicolai Hess <nicolaihess@web.de> wrote:
2015-03-06 20:18 GMT+01:00 Esteban Lorenzano <estebanlm@gmail.com>:
On 06 Mar 2015, at 18:40, kilon alios <kilon.alios@gmail.com> 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 will try to explain⦠is a problem in several ways: 1) what is not efficient at all is BitBlt plugin, our current way to display things. Want an example? just open a new image, open a browser (or a playground, or any window) and start moving itâ¦. then watch how your cpu starts heating (in my machine, is around 35%, some times⦠just one browser). 2) Now⦠what we do with Athens is: a) create an in-memory surface and draw things there. b) convert that surface into a bitblt compatible format (this is actually just a copy, not much actually) c) display the result into the current world window (another copy) 3) Now imagine all that cycling (stepping)â¦
With OSWindow (SDL2) what we do is: 1) create a SDL2 surface 2) draw on it 3) cycle on (2)
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?
yes, why not? and yes⦠we can have several backends. The advantage on using SDL2 is that you do not need to maintain one different backend for each platform. Of course, it has also drawbacks, as always⦠but our manpower is determinant here and we decided to take the âcommon approachâ⦠we will have time to improve later, if we find is necessary (but frankly, I do not think so for the moment)
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.
this is something inherent to cairo (and athens as a result)⦠I suppose game programmers already dealt with this problem. I suggest look there for answers (I didnât look there, nor seen your proposed solution yet⦠sorry I will as soon as I find some time).
cheers, Esteban
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 <alexandre.bergel@me.com> 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 <nicolaihess@web.de> 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 <astares@gmx.de>: 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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
2015-03-06 18:40 GMT+01:00 kilon alios <kilon.alios@gmail.com>:
very good example and very informative thank you.
Sadly it also shows that even with Athens Pharo is incredible slow.
Compared to what?
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 ;)
On Fri, Mar 6, 2015 at 6:28 PM, Alexandre Bergel <alexandre.bergel@me.com> 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 <nicolaihess@web.de> 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 <astares@gmx.de>: 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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
compared to everything else I have used. I dont think I have ever seen even twice as big as the one used in those examples spike my single core so much. I am using menu meters ultilie that shows me how much cpu each application uses and how much each core, together with memory and otther stats. But even more so I can eve see the frames in those animations flicker. Especially that pharo slide logo example, but also all others. On Sat, Mar 7, 2015 at 12:47 AM, Nicolai Hess <nicolaihess@web.de> wrote:
2015-03-06 18:40 GMT+01:00 kilon alios <kilon.alios@gmail.com>:
very good example and very informative thank you.
Sadly it also shows that even with Athens Pharo is incredible slow.
Compared to what?
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 ;)
On Fri, Mar 6, 2015 at 6:28 PM, Alexandre Bergel <alexandre.bergel@me.com
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 <nicolaihess@web.de> 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 <astares@gmx.de>: 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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
2015-03-06 23:58 GMT+01:00 kilon alios <kilon.alios@gmail.com>:
compared to everything else I have used. I dont think I have ever seen even twice as big as the one used in those examples spike my single core so much. I am using menu meters ultilie that shows me how much cpu each application uses and how much each core, together with memory and otther stats.
That is not really helpfull. Anything that uses cairo? I would like to make some comparisons and it would help if I can recreate the same animations. (I did some work with cairo and python, but no animation. I used cairo for animations together with GTK, sure this was faster but these applications are only made for the animation, just a simple drawing loop. Pharo of course has much more that happens in between).
But even more so I can eve see the frames in those animations flicker. Especially that pharo slide logo example, but also all others.
On Sat, Mar 7, 2015 at 12:47 AM, Nicolai Hess <nicolaihess@web.de> wrote:
2015-03-06 18:40 GMT+01:00 kilon alios <kilon.alios@gmail.com>:
very good example and very informative thank you.
Sadly it also shows that even with Athens Pharo is incredible slow.
Compared to what?
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 ;)
On Fri, Mar 6, 2015 at 6:28 PM, Alexandre Bergel < alexandre.bergel@me.com> 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 <nicolaihess@web.de> 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 <astares@gmx.de>: 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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
2015-03-06 17:28 GMT+01:00 Alexandre Bergel <alexandre.bergel@me.com>:
This is really good that you are diving into Athens. It deserves it!
Thank you, and yes, we need to give it more priority. I hope Athens is fully working before we start again with another new thing.
Alexandre
On Mar 6, 2015, at 10:20 AM, Nicolai Hess <nicolaihess@web.de> 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 <astares@gmx.de>: 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" <nicolaihess@web.de> An: "Pharo Development List" <pharo-dev@lists.pharo.org>, "Any question about pharo is welcome" <pharo-users@lists.pharo.org> 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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
On 06 Mar 2015, at 23:45, Nicolai Hess <nicolaihess@web.de> wrote:
2015-03-06 17:28 GMT+01:00 Alexandre Bergel <alexandre.bergel@me.com <mailto:alexandre.bergel@me.com>>: This is really good that you are diving into Athens. It deserves it!
Thank you, and yes, we need to give it more priority. I hope Athens is fully working before we start again with another new thing.
indeed. (and yes: very nice demo + learning tool) Marcus
Hi Nicolai, This is an excellent work! Looks like to be the best set of example we have. This will surely benefits Roassal! Impressive! Alexandre
On Mar 6, 2015, at 4:14 AM, Nicolai Hess <nicolaihess@web.de> wrote:
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 ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
Argh. stop to say that this is excellent now I have to have a look :) I'm building a wood terrasse with real screw and all the rest. (I'm resting in between). Need to go to buy more wood :). Stef Le 6/3/15 16:09, Alexandre Bergel a écrit :
Hi Nicolai,
This is an excellent work! Looks like to be the best set of example we have.
This will surely benefits Roassal!
Impressive!
Alexandre
On Mar 6, 2015, at 4:14 AM, Nicolai Hess <nicolaihess@web.de> wrote:
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
Stef, you can have a look at what Nicolai did. It will not take time and this is impressive. By the way, we missed you at Saner. Nicolai, I will invite you for a beer at ESUG. Your work is excellent! Alexandre
Le 7 mars 2015 à 06:50, stepharo <stepharo@free.fr> a écrit :
Argh. stop to say that this is excellent now I have to have a look :)
I'm building a wood terrasse with real screw and all the rest. (I'm resting in between). Need to go to buy more wood :).
Stef
Le 6/3/15 16:09, Alexandre Bergel a écrit :
Hi Nicolai,
This is an excellent work! Looks like to be the best set of example we have.
This will surely benefits Roassal!
Impressive!
Alexandre
On Mar 6, 2015, at 4:14 AM, Nicolai Hess <nicolaihess@web.de> wrote:
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
This is great work! Thanks! Juraj
6. 3. 2015 v 6:14, Nicolai Hess <nicolaihess@web.de>:
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
Super! Can't wait to have SDL drawn thingies :-) I have it loaded on a 3.0 on Windows 8.1 and some examples give me the red crossed square. This has to do with fonts even if the FT fonts are enabled in the settings. A reason why? Phil On Fri, Mar 6, 2015 at 6:22 PM, Juraj Kubelka <juraj.kubelka@gmail.com> wrote:
This is great work! Thanks!
Juraj
6. 3. 2015 v 6:14, Nicolai Hess <nicolaihess@web.de>:
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
2015-03-06 20:50 GMT+01:00 phil@highoctane.be <phil@highoctane.be>:
Super!
Can't wait to have SDL drawn thingies :-)
I have it loaded on a 3.0 on Windows 8.1 and some examples give me the red crossed square. This has to do with fonts even if the FT fonts are enabled in the settings.
A reason why?
Ah, yes, I use TextStyle defaultFont, this is a FT font in Pharo4, but a StrikeFont in Pharo3 and Athens text drawing does not work in Pharo3 with a StrikeFont
Phil
On Fri, Mar 6, 2015 at 6:22 PM, Juraj Kubelka <juraj.kubelka@gmail.com> wrote:
This is great work! Thanks!
Juraj
6. 3. 2015 v 6:14, Nicolai Hess <nicolaihess@web.de>:
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
Nicolai I ****LOVE**** it :) just browsing the examples is Gorgeous. This is the exact way to show what is inside Pharo! THANKS THANKS THANKS. Stef Le 6/3/15 10:14, Nicolai Hess a écrit :
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
Nicolai May I suggest that you look at Viva (a little framework for doing animation that igor developed). MCHttpRepository location: 'http://smalltalkhub.com/mc/StephaneDucasse/PetitsBazars/main' user: '' password: '' Alex uses it in roassal and this is really a cool piece of code. Stef Le 6/3/15 10:14, Nicolai Hess a écrit :
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
2015-03-07 12:58 GMT+01:00 stepharo <stepharo@free.fr>:
Nicolai
May I suggest that you look at Viva (a little framework for doing animation that igor developed). MCHttpRepository location: 'http://smalltalkhub.com/mc/StephaneDucasse/PetitsBazars/ main' user: '' password: ''
Alex uses it in roassal and this is really a cool piece of code.
I just started to develop my own framework :) I 'll have a look.
Stef
Le 6/3/15 10:14, Nicolai Hess a écrit :
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
I love sketchInterference :) Stef Le 6/3/15 10:14, Nicolai Hess a écrit :
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
participants (9)
-
Alexandre Bergel -
Esteban Lorenzano -
Juraj Kubelka -
kilon alios -
Marcus Denker -
Nicolai Hess -
phil@highoctane.be -
stepharo -
Torsten Bergmann