Pending mac 3.8.8b6

John M McIntosh johnmci at smalltalkconsulting.com
Mon Jul 25 22:57:25 UTC 2005


Ok, didn't get any feedback, but I'll assume it works ok, so could  
someone push it to the ftp servers?

On 21-Jul-05, at 11:40 PM, John M McIntosh wrote:

> After pushing 3.8.8b5 out a few people let me know that there were  
> problems with it.
>
> a) Hide, show all, hide other menu commands not working (actually  
> this problem started in 10.4).
> b) The CPU time taken as a background application went from 7% to 20%.
> c) Drawing seemed to have an excessive lag time.
>
>
> In poking at the menu command logic again I discovered that I was  
> passing the hide/hide others/show cmd to the squeak event queue for  
> Tweak Ffenestri processing, this was not a problem in 10.3.9  
> because carbon was processing the resulting cmd (I handled it)  
> incorrectly. This bug was fixed in 10.4, but then
> exposed the problem in Squeak. The change is to ignore the hide/ 
> show menu cmds and let the base carbon UI handle the behaviour.
>
> The window drawing was altered to flush every 1/50 of a second to  
> satisfy changes to quickdraw in 10.4, and to address the fact that  
> Quickdraw is going away. What I found was setting up the carbon  
> event timer to flush all window every 1/50 of a second was too  
> expensive. So I decided on a more radical approach and moved to  
> Quartz for drawing the bitmap image.  I need to do this to take  
> advantage of pending Quartz changes and for MacIntel.  Work earlier  
> in the year showed me how to take Squeak bitmaps in 1/2/4/8 bits of  
> color and use QuickDraw to convert to 16 or 32bit color before  
> drawing, this was carried forward into the Quartz draw logic since  
> we work with only 16 or 32 bits of color for the host window.
>
> Early Shark benchmarking shows that timing are similar to the times  
> the Quickdraw memcpy logic gave us.
>
> Many late hours were taken to figure out how to flush the screen.  
> First I did a GCSync operation after each draw which should trigger  
> a flush about every 1/50 of a second, however this fails when the  
> drawing area becomes very small say 1 pixel and is updated at very  
> high rates. What I found is that I need to do a CGContextFlush  
> every 100ms or so to make the drawing not lose sync.
>
> Feedback on the drawing changes are welcome. Things feel better and  
> I think Croquet works faster?
>
> http://homepage.mac.com/johnmci/FileSharing.html
>
> or see the following ftp directory for the zip file.
>
> ftp://ftp.smalltalkconsulting.com/
>
> --
> ====================================================================== 
> =====
> John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
> Corporate Smalltalk Consulting Ltd.  http:// 
> www.smalltalkconsulting.com
> ====================================================================== 
> =====
>
>
>
>

--
======================================================================== 
===
John M. McIntosh <johnmci at smalltalkconsulting.com> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
======================================================================== 
===




More information about the Squeak-dev mailing list