Perhaps call NSRectFillUsingOperation(rect, NSCompositeClear) before drawing each rectangle?

On Jun 8, 2010, at 5:32 AM, Matej Bukovinski wrote:

* PGP Bad Signature, Signed by an unverified key

Hi,

In a cocoa application that I'm developing I have a custom NSView subclass that I use as an overlay view for annotating a WebView. The overlay view draws semi-trasparent rectangles in its drawRect: method for DOM elements that were selected by the user.

Since the fill color for the drawn rectangles is semi-transparent, the pixel values get added up when a smaller rectangle is drawn over a larger one (here's an example http://cl.ly/4fecb8fac0abff6ef6ac , as you can see the smaller rectangle has a darker background because of the larger rectangle, that was drawn first). This is especially problematic if the rectangles are of different colors, since color mixing occurs.

I would like to prevent this sort of behavior by somehow "erasing" the content that was perviously drawn (i.e., making the background transparent again) before drawing with a new element. Does anyone have an idea how to achieve this?

Thank you for your time.

Best regards,
Matej


* Matej Bukovinski <ma...@bukovinski.com>
* Issuer: The USERTRUST Network - Unverified

_______________________________________________

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