Skip to content

Commit

Permalink
Deprecate GearVR and Daydream support. Devices have been discontinued…
Browse files Browse the repository at this point in the history
… for several years now
  • Loading branch information
dmarcos committed Nov 1, 2023
1 parent f196021 commit c981203
Show file tree
Hide file tree
Showing 16 changed files with 28 additions and 1,136 deletions.
6 changes: 3 additions & 3 deletions docs/components/cursor.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ AFRAME.registerComponent('cursor-listener', {
| fuseTimeout | How long to wait (in milliseconds) before triggering a fuse-based click event. | 1500 |
| mouseCursorStylesEnabled | Whether to show pointer cursor in `rayOrigin: mouse` mode when hovering over entity. | true |
| rayOrigin | Where the intersection ray is cast from (i.e. xrselect ,entity or mouse). `rayOrigin: mouse` is extremely useful for VR development on a mouse and keyboard. | entity
| upEvents | Array of additional events on the entity to *listen* to for triggering `mouseup` (e.g., `trackpadup` for daydream-controls). | [] |
| upEvents | Array of additional events on the entity to *listen* to for triggering `mouseup`. | [] |

To further customize the cursor component, we configure the cursor's dependency
component, [the raycaster component][raycaster].
Expand Down Expand Up @@ -143,9 +143,9 @@ For example:
this.el.addEventListener('click', function (evt) {
if (!evt.detail.mouseEvent || evt.detail.mouseEvent.button === 0) {
console.log("left button clicked (or touch event / no information)");
} else if (evt.detail.mouseEvent.button === 2) {
console.log("right button clicked");
console.log("right button clicked");
}
});
```
Expand Down
64 changes: 0 additions & 64 deletions docs/components/daydream-controls.md

This file was deleted.

57 changes: 0 additions & 57 deletions docs/components/gearvr-controls.md

This file was deleted.

6 changes: 1 addition & 5 deletions docs/components/laser-controls.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,9 @@ The laser-controls component provides tracked controls with a laser or ray
cursor shooting out to be used for input and interactions. *DoF* stands for
[degrees of freedom][dof]. Because they only require rotation and some form of
input, laser-based interactions scale well across 0 DoF (gaze-based,
Cardboard), 3 DoF (Daydream, GearVR with controllers), and 6 DoF (Vive, Oculus
Touch). If desired, we can get a consistent form of interaction that works
Cardboard), and 6 DoF (Vive, Oculus Touch). If desired, we can get a consistent form of interaction that works
across all VR platforms with a single line of HTML.

[daydream-controls]: ./daydream-controls.md
[gearvr-controls]: ./gearvr-controls.md
[oculus-touch-controls]: ./oculus-touch-controls.md
[tracked-controls]: ./tracked-controls.md
[vive-controls]: ./vive-controls.md
Expand All @@ -32,7 +29,6 @@ the hood, laser-controls sets all of the tracked controller components:

- [vive-controls]
- [oculus-touch-controls]
- [daydream-controls]
- [gearvr-controls]

This comment has been minimized.

Copy link
@vincentfretin

vincentfretin Nov 1, 2023

Contributor

You missed removing [gearvr-controls] here.

- [windows-motion-controls]

Expand Down
10 changes: 4 additions & 6 deletions docs/components/tracked-controls.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,16 @@ examples: []
[handcontrols]: ./hand-controls.md
[oculustouchcontrols]: ./oculus-touch-controls.md
[vivecontrols]: ./vive-controls.md
[daydreamcontrols]: ./daydream-controls.md
[windowsmotioncontrols]: ./windows-motion-controls.md

The tracked-controls component interfaces with tracked controllers.
tracked-controls uses the Gamepad API to handle tracked controllers, and is
abstracted by the [hand-controls component][handcontrols] as well as the
[vive-controls][vivecontrols], [oculus-touch-controls][oculustouchcontrols],
[windows-motion-controls][windowsmotioncontrols], and [daydream-controls][daydreamcontrols]
components. This component elects the appropriate controller, applies pose to
the entity, observes buttons state and emits appropriate events. For non-6DOF controllers
such as [daydream-controls][daydreamcontrols], a primitive arm model is used to emulate
positional data.
[windows-motion-controls][windowsmotioncontrols] components.
This component elects the appropriate controller, applies pose to
the entity, observes buttons state and emits appropriate events. For non-6DOF controllers,
a primitive arm model is used to emulate positional data.

tracked-controls sets two components that handles different Web API versions for VR:

Expand Down
6 changes: 1 addition & 5 deletions docs/core/utils.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,10 +146,6 @@ diff({a: 1, b: 2, c: 3}, {b: 2, c: 4})

Checks if a VR headset is connected by looking for orientation data. Returns a `boolean`.

### `AFRAME.utils.device.isGearVR ()`

Checks if device is Gear VR. Returns a `boolean`.

### `AFRAME.utils.device.isOculusGo ()`

Checks if device is Oculus Go. Returns a `boolean`.
Expand Down Expand Up @@ -222,7 +218,7 @@ Example use cases:
* following a mouse pointer using the mousemove event
* integrating with [THREE.TransformControls](https://threejs.org/docs/#examples/en/controls/TransformControls), via the objectChange event.

A context such as `this` can be provided to handle function binding for convenience.
A context such as `this` can be provided to handle function binding for convenience.

The same as [lodash's`throttle`][lodash], with `leading` and `trailing` options both set to `true`

Expand Down
8 changes: 4 additions & 4 deletions docs/introduction/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ be an easy yet powerful way to develop VR content. As an [independent open
source project][github], A-Frame has grown to be one of the [largest VR
communities][community].

A-Frame supports most VR headsets such as Vive, Rift, Windows Mixed Reality,
Daydream, GearVR, Cardboard, Oculus Go, and can even be used for augmented
reality. Although A-Frame supports the whole spectrum, A-Frame aims to define
A-Frame supports most VR headsets such as Vive, Rift, Windows Mixed Reality, Cardboard,
Oculus Go, and can even be used for augmented reality.
Although A-Frame supports the whole spectrum, A-Frame aims to define
fully immersive interactive VR experiences that go beyond basic 360°
content, making full use of positional tracking and controllers.

Expand Down Expand Up @@ -111,7 +111,7 @@ developers have unlimited access to JavaScript, DOM APIs, three.js, WebVR, and
WebGL.

:globe_with_meridians: **Cross-Platform VR**: Build VR applications for Vive,
Rift, Windows Mixed Reality, Daydream, GearVR, and Cardboard with support for
Rift, Meta Quest, Windows Mixed Reality, and Cardboard with support for
all respective controllers. Don't have a headset or controllers? No problem!
A-Frame still works on standard desktop and smartphones.

Expand Down
37 changes: 6 additions & 31 deletions docs/introduction/interactions-and-controllers.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ clicking directly on the entity using a raycaster.
We'll first go over gaze-based interactions. Gaze-based interactions rely on
rotating our heads and looking at objects to interact with them. This type of
interaction is for headsets without a controller. Even with a rotation-only
controller (Daydream, GearVR, Oculus Go), the interaction is still similar. Since A-Frame
controller (Oculus Go), the interaction is still similar. Since A-Frame
provides mouse-drag controls by default, gaze-based can sort of be used on
desktop to preview the interaction by dragging the camera rotation.

Expand Down Expand Up @@ -262,7 +262,7 @@ interact with objects with their hands.

A-Frame provides components for controllers across the spectrum as supported by
their respective WebVR browsers through the [Gamepad Web API][gamepad]. There
are components for Vive, Oculus Touch, Daydream, GearVR and Oculus Go controllers.
are components for Vive, Oculus Touch, Meta Quest and Oculus Go controllers.

To inspect the Gamepad object for poking around or to get the Gamepad ID, we
can call `navigator.getGamepads()` in the browser console. This will return a
Expand Down Expand Up @@ -313,7 +313,7 @@ component by:
The controller components following are only activated if they detect the
controller is found and seen as connected in the Gamepad API.

### Adding 3DoF Controllers (daydream-controls, gearvr-controls, oculus-go-controls)
### Adding 3DoF Controllers (oculus-go-controls)

[dof]: http://www.roadtovr.com/introduction-positional-tracking-degrees-freedom-dof/

Expand All @@ -325,29 +325,9 @@ degrees of freedom for VR][dof].

The 3DoF controller components provide rotational tracking, a default model
matching the real-life hardware, and events to abstract the button mappings.
The controllers for Google Daydream, Samsung GearVR and Oculus Go have 3DoF, and both
The controllers for Oculus Go have 3DoF, and both
support only one controller for one hand.

[daydreamcomponent]: ../components/daydream-controls.md

To add a controller for Google Daydream, use the [daydream-controls
component][daydreamcomponent]. Then try it out on Chrome for Android on a
Daydream smartphone:

```html
<a-entity daydream-controls></a-entity>
```

[gearvrcomponent]: ../components/gearvr-controls.md

To add a controller for Samsung GearVR, use the [gearvr-controls
component][gearvrcomponent]. Then try it out on Oculus Carmel or Samsung
Internet on a smartphone with GearVR:

```html
<a-entity gearvr-controls></a-entity>
```

[oculusgocomponent]: ../components/oculus-go-controls.md

To add a controller for Oculus Go, use the [oculus-go-controls
Expand Down Expand Up @@ -431,7 +411,7 @@ To add the hand-controls component:
```

Unfortunately, there is not yet a 3DoF controller component that abstracts well
all the types of 3DoF controllers (i.e., Daydream, GearVR). We could create a
all the types of 3DoF controllers (i.e., Oculus Go). We could create a
custom controller that works with both controllers. It would be fairly easy to
cover since 3DoF controllers do not offer much potential for interaction (i.e.,
only rotational tracking with a touchpad).
Expand All @@ -453,8 +433,7 @@ to understand how to do a custom controller without having to do everything
from scratch:

- The tracked-controls component will provide pose and events
- The vive-controls, oculus-touch-controls, daydream-controls, or
gearvr-controls components provide button mappings controller-specific events
- The vive-controls, oculus-touch-controls... components provide button mappings and controller-specific events
- Our custom controller component will build on all of the above, plus
overriding the model, animations, visual feedback, states, etc.,

Expand Down Expand Up @@ -482,8 +461,6 @@ AFRAME.registerComponent('custom-controls', {
// Build on top of controller components.
el.setAttribute('vive-controls', controlConfiguration);
el.setAttribute('oculus-touch-controls', controlConfiguration);
el.setAttribute('daydream-controls', controlConfiguration);
el.setAttribute('gearvr-controls', controlConfiguration);
el.setAttribute('windows-motion-controls', controlConfiguration);

// Set a model.
Expand All @@ -508,8 +485,6 @@ touched. To handle buttons, look for the event name in the respective
controller component documentation pages at the event tables, then register
event handlers how we want:

- [daydream-controls events](../components/daydream-controls.md#events)
- [gearvr-controls events](../components/gearvr-controls.md#events)
- [hand-controls events](../components/hand-controls.md#events)
- [oculus-touch-controls events](../components/oculus-touch-controls.md#events)
- [vive-controls events](../components/vive-controls.md#events)
Expand Down
10 changes: 4 additions & 6 deletions docs/introduction/vr-headsets-and-webxr-browsers.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,22 +44,19 @@ are constrained to looking around and wiggling the controller.

[HTC Vive]: https://www.vive.com/
[Oculus headsets]: https://www.oculus.com/
[Google Daydream]: https://vr.google.com/daydream/
[Samsung GearVR]: http://www.samsung.com/global/galaxy/gear-vr/
[Windows Mixed Reality]: https://developer.microsoft.com/en-us/windows/mixed-reality/
[Vive Focus]: https://enterprise.vive.com/us/vivefocus/

| Headset | Platform | Positional Tracking | Controllers | Controller Positional Tracking |
|-------------------------|------------|---------------------|--------------------|--------------------------------|
| [HTC Vive] | PC | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| [Oculus Rift] | PC | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| [Google Daydream] | Android | :x: | :white_check_mark: | :x: |
| [Samsung GearVR] | Android | :x: | :white_check_mark: | :x: |
| [Windows Mixed Reality] | PC | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| [Oculus Go] | Standalone | :x: | :white_check_mark: | :x: |
| [Vive Focus] | Standalone | :x: | :white_check_mark: | :x: |
| [Oculus Quest] | Standalone | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| [Oculus Quest 2] | Standalone | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| [Oculus Quest 3] | Standalone | :white_check_mark: | :white_check_mark: | :white_check_mark: |

## What is WebXR?

Expand Down Expand Up @@ -119,9 +116,10 @@ supports include:
- HTC Vive
- Oculus Rift
- Oculus Quest
- Oculus Quest 2
- Oculus Quest 3
- Oculus Go
- Google Daydream
- Samsung GearVR
- Valve Index
- Vive Focus

For general hardware recommendations (not requirements):
Expand Down
Loading

0 comments on commit c981203

Please sign in to comment.