On 12.05.2010 20:13, Andrei Stebakov wrote:
That's right, looks like it sends full-blown images (not the delta, not the commands to x-server) and re-drawing takes forever. I wonder if it's a Pharo issue or x-server's? My xterm works pretty fast compared to Pharo though...
AFAIK, this is a consequence of the rendering method used in Squeak/Pharo image/VM's. If I've understood the Mac platform-rendering code correctly, the way it works, is that a special Display bitmap is kept accessible to both image and VM. When rendering image side, all draws end up on the Display bitmap. (Using bitBlt as a context, rather than using f.ex. a HostGraphicsContexts to draw using the equivalent x-server/quartz/directDraw commands)

Then, when it comes time to actually display, the VM takes the registered damage rects, and sends the contents of the Display bitmap in those areas for display. (In the Mac VM, this is actually folded down to one of 16 regions which are marked dirty or not, not sure how it works on other platforms).
So yes, full-blown images is ever only sent.

The advantages I can see is that:
1. All rendering logic is actually written in smalltalk. (Well, as part of the platform-independent, compiled-to-C VM sources at least)
2. It will render exactly the same on all platforms, due to #1.
3. The platform support code for rendering is really simple, all you need is the ability to display bitmap regions to the screen.

Cheers,
Henry.

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to