If you don't need to do secondary-thread drawing in your view, you
don't have to. You can check which thread is sending the -drawRect
method. Allow the subviews such as the aqua button to draw themselves,
and skip over any thread-unsafe custom -drawRect stuff in your
superview.

The only thing you would need to redraw in your superview is the tiny
rect surrounding the pulsing blue aqua button. I can't really imagine
what kind of complex thread-unsafe stuff would be going on in the tiny
spaces around the rounded-corner edges of the button. Seems like that
would typically be transparent, a background color/pattern, or
something similar. You should be able to supply that minimal amount of
drawing in a thread-safe fashion without too much difficulty.

On Fri, Aug 14, 2009 at 8:45 AM, Frederik
Slijkerman<frede...@ultrafractal.com> wrote:
> Hi,
>
> Another question... I've noticed that Aqua animations, for example the
> pulsing default button, are implemented via a separate thread, which redraws
> the button repeatedly. This also causes the view (for example a custom view
> that I wrote myself) that contains the button to receive a drawRect message,
> of course.
>
> The problem is that this drawRect message is sent from the separate thread,
> which means that drawing in all my custom views needs to be thread-safe.
> This is a huge pain.
>
> Is there any way around this? Are you all always writing thread-safe
> drawRect handlers? It seems like a huge responsibility to make sure this
> will always work correctly...
>
> Thanks in advance!
>
> Best regards,
> Frederik Slijkerman
> _______________________________________________
>
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/bravobug%40gmail.com
>
> This email sent to bravo...@gmail.com
>
_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to