Pending mac 3.8.8b6
John M McIntosh
johnmci at smalltalkconsulting.com
Fri Jul 22 06:40:40 UTC 2005
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
========================================================================
===
More information about the Squeak-dev
mailing list
|