Re: Tracking Rectangles Vs Manual Logic
Re: Tracking Rectangles Vs Manual Logic
- Subject: Re: Tracking Rectangles Vs Manual Logic
- From: Ricky Sharp <email@hidden>
- Date: Thu, 2 Dec 2004 15:30:45 -0600
On Dec 2, 2004, at 3:14 PM, Lemont Washington wrote:
I'd like to know whether its more efficient to use tracking rectangles
to determine if the mouse is over a certain region or to do it
manually by checking the location in a loop during your NSView's
mouseEntered method. For instance, let say you had a view with 50 or
60 that can be clicked or hovered over, this would require you to at
least loop over each item in your array looking to see if the mouse
pointer is within the bounds of each item in the array. The Sketch
AppKit Demo does this I believe. I'm wondering if using Tracking
Rectangles is more efficient.
For example it could possibly subdivide your view using a BSP tree or
similar data structure so that lets say it determined that the mouse
was in a region that is on one half of the screen but not the other,
it could discount at least half the items to check against. Is
something like this overkill? Does the Apple implementation of
tracking rects use a simple loop for bounds checking ors something
more efficient speed wise?
A handy thing to see if there is any user-perceptible performance
issues is to create a nib with hoards of widgets that use tracking
rectangles. I have a nib called "128buttons.nib" that I use to get an
initial idea if there are any huge delays in nib-loading, rendering,
tracking rects, etc.
My guess is that you shouldn't see any delays for a reasonable amount
of items. If you have thousands or more such rectangles, you may want
to throw a profiler at the problem to see if one implementation is
better than another.
___________________________________________________________
Ricky A. Sharp mailto:email@hidden
Instant Interactive(tm) http://www.instantinteractive.com
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden