- From: Maciej Stachowiak <mjs@apple.com>
- Date: Fri, 06 Jul 2012 22:26:59 -0700
- To: "Tab Atkins Jr." <jackalmage@gmail.com>
- Cc: whatwg@lists.whatwg.org, Edward O'Connor <eoconnor@apple.com>
On Jul 5, 2012, at 11:28 PM, Tab Atkins Jr. <jackalmage@gmail.com> wrote: > On Thu, Jul 5, 2012 at 1:05 PM, Edward O'Connor <eoconnor@apple.com> wrote: >> As things currently stand in the spec, implementations basically need to >> keep N+1 bitmaps per canvas, where N is the number of hit regions. I >> doubt any implementors would be enthusiastic to implement hit regions >> like this. From a WebKit perspective, we'd much prefer keeping a Path >> for each hit region, and then simply using isPointInPath for hit >> testing. This also implies that the current piggybacking of "Clear >> regions that cover the pixels" in clearRect() could go away. Yay! :) > > Bog-standard hit-testing algorithms apply. Keep a single extra canvas > around, draw each region into it with a different color. When you're > hit-testing, just see what color that pixel is, and look up which > region is associated with it. This is extremely fast and simple to > implement, and has all the right properties - the "topmost" region for > a given pixel is the one returned. It also doubles the memory cost of the canvas if you use hit regions, which is likely much more than path-based hit testing would cost. - Maciej
Received on Saturday, 7 July 2012 05:27:30 UTC