FROM : Ricky Sharp
DATE : Thu Dec 02 22:30:45 2004
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_removed>
Instant Interactive(tm) http://www.instantinteractive.com
DATE : Thu Dec 02 22:30:45 2004
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_removed>
Instant Interactive(tm) http://www.instantinteractive.com
| Related mails | Author | Date |
|---|---|---|
| Lemont Washington | Dec 2, 22:14 | |
| John C. Randolph | Dec 2, 22:22 | |
| Ricky Sharp | Dec 2, 22:30 |






Cocoa mail archive

