W3C home > Mailing lists > Public > whatwg@whatwg.org > July 2012

[whatwg] بخصوص: isPointInPath v. set of pixels in canvas hit regions

From: رنا عبدالله <wedyan6221@yahoo.com>
Date: Sat, 7 Jul 2012 17:03:06 +0100 (BST)
Message-ID: <1341676986.16981.YahooMailNeo@web29209.mail.ird.yahoo.com>
To: Maciej Stachowiak <mjs@apple.com>, "Tab Atkins Jr." <jackalmage@gmail.com>
Cc: "whatwg@lists.whatwg.org" <whatwg@lists.whatwg.org>, Edward O'Connor <eoconnor@apple.com>
pls.dont send any msg to my adress

 من: Maciej Stachowiak <mjs@apple.com>
إلى: Tab Atkins Jr. <jackalmage@gmail.com> 
نسخة كربونية: whatwg@lists.whatwg.org; Edward O'Connor <eoconnor@apple.com> 
تاريخ الإرسال: الجمعة 6 يوليو، 2012‏ 10:26 م
الموضوع: Re: [whatwg] isPointInPath v. set of pixels in canvas hit regions

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 16:03:37 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:43 UTC