Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to use Pointer Events #120

Closed
ThreeDfish opened this issue Aug 27, 2020 · 5 comments
Closed

Update to use Pointer Events #120

ThreeDfish opened this issue Aug 27, 2020 · 5 comments

Comments

@ThreeDfish
Copy link

ThreeDfish commented Aug 27, 2020

I think we should update the camera controls to user Pointer Events.

https://www.w3.org/TR/pointerevents/

https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events

I wasn't even aware of it until recently when I was looking at the programming examples for BabylonJS and I saw they were using a Pointer Events Polyfil https://github.com/jquery/PEP

And then I looked and saw that all current browsers support Pointer Events natively https://caniuse.com/#feat=pointer

I just looked at the orbit controls in ThreeJS R119 and I see that it is now using Pointer Events...

I think this is an important update, and I would be willing to pay to have the code updated to use Pointer Events.

@yomotsu
Copy link
Owner

yomotsu commented Aug 28, 2020

Thanks for your suggestion.
I would like to support last 3 versions of iOS without polyfill so far.
Maybe someday...

@ThreeDfish
Copy link
Author

??? What does that have to do with it? It appears that the last 4 versions of Safari support Pointer Events. The current version of Safari is 13.5 -- Pointer Events were fully supported in 13.2 -- and the polyfill doesn't run if there is native support.

I have an iPhone 6 and it is running iOS 13.6 which is 5 versions past 13.1.

If my 6 year old iPhone supports Pointer Events, I don't see why we shouldn't be using them. Especially since ThreeJS and BabylonJS are using them.

https://caniuse.com/#feat=pointer

@yomotsu
Copy link
Owner

yomotsu commented Aug 31, 2020

I meant major 3 versions. Pointer Events is not supported on 12.x (released last year).

@ThreeDfish
Copy link
Author

Yes, that is correct, Safari 12 didn't support Pointer Events, however, I would like to point out that Safari was the LAST major browser to support Pointer Events and Safari has a history of being behind the curve on updates.

Further, if we wait till version 15 is released it could be 2 to 3 years from now based on the previous release cycles for Safari. Safari 11 isn't even registering on the usage charts ( https://www.w3counter.com/globalstats.php ) and Safari 12 is only at 1.6%, further, all of the other mainline browsers have supported Pointer Events for years now ( up to 5 years now ). Personally, in my app I wouldn't be too concerned about supporting any browser that doesn't do Pointer Events, but the polyfill is small and easy to add, and doesn't affect the majority of the browsers that do have native support.

94% of users will not have any problem, and chances are, the remaining 6% that are using extremely outdated browsers including Internet Explorer and Safari 12 and earlier, will probably not even be hitting a site that uses ThreeJS, and those that do can easily be taken care of by using the polyfill.

@yomotsu
Copy link
Owner

yomotsu commented Jul 1, 2021

Closing the issue.
PointerEvents has been supported with touchEvent and mouseEvent fallback
#197

@yomotsu yomotsu closed this as completed Jul 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants