Oculus Go Development

On 6/23/20 Oculus announced plans to sunset Oculus Go. Information about dates and alternatives can be found in the Oculus Go introduction.

Oculus Quest Development

All Oculus Quest developers MUST PASS the concept review prior to gaining publishing access to the Quest Store and additional resources. Submit a concept document for review as early in your Quest application development cycle as possible. For additional information and context, please see Submitting Your App to the Oculus Quest Store.

Mobile Native SDK Migration Guide

This section details migrating from earlier versions of the Mobile SDK for native development.

Note: For information on releases older than Mobile SDK 1.23, see Mobile Native Migration Guide - Archive.

Migrating to Mobile SDK 20.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 19.0 to 20.0.

API Changes

  • The ovrDeviceType values, VRAPI_DEVICE_TYPE_OCULUSGO and VRAPI_DEVICE_TYPE_MIVR_STANDALONE, have been removed from the API.

  • The ovrModeFlags flag, VRAPI_MODE_FLAG_FRONT_BUFFER_565, has been removed from the API.

  • The ovrSystemStatus value, VRAPI_SYS_STATUS_FRONT_BUFFER_565, has been removed from the API.

  • The ovrProperty value , VRAPI_BLOCK_REMOTE_BUTTONS_WHEN_NOT_EMULATING_HMT, has been removed from the API.

  • The ovrSystemUIType types, VRAPI_SYS_UI_KEYBOARD_MENU and VRAPI_SYS_UI_FILE_DIALOG_MENU, removed from the API.

  • vrapi_ShowFatalErrornow marked deprecated and should no longer be used.

  • The deprecated vrapi_ShowSystemUIWithExtra entry point has been removed from the public VrApi.

Migrating to Mobile SDK 19.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 18.0 to 19.0.

API Changes

  • A new ovrTextureSwapChain creation method, vrapi_CreateTextureSwapchain4, and corresponding structure, ovrSwapChainCreateInfo, have been added to the API.
  • A new ovrControllerType, ovrControllerType_StandardPointer, and corresponding structure, ovrInputStandardPointerCapabilities, have been added to the API.
  • The vrapi_SetRemoteEmulation function has been removed from the API and should no longer be used.

Migrating to Mobile SDK 18.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 17.0 to 18.0.

API Changes

  • A new ovrLayerType flag, VRAPI_LAYER_TYPE_EQUIRECT3, and corresponding structure ovrLayerEquirect3, have been added to the API. This allows specification of an equirectangular texture with a non-infinite radius at a specific location.
  • The ovrSystemStatus type, VRAPI_SYS_STATUS_DOCKED, has been deprecated and removed from the API.
  • The ovrSystemProperty type, VRAPI_SYS_PROP_EXT_SDCARD_PATH has been deprecated and removed from the API.

Migrating to Mobile SDK 17.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 16.0 to 17.0.

API Changes

  • A new ColorSpace API has been added to allow developers to set the color space of their app so that the appropriate colors are shown on the Oculus Quest’s displays. See Override Color Space for more information.
  • The ovrSystemProperty type, VRAPI_SYS_PROP_HEADSET_TYPE, and corresponding structure, ovrHeadsetType, have been deprecated and removed from the API.
  • New ovrInputStateHandStatus types, ovrInputStateHandStatus_DominantHand and ovrInputStateHandStatus_MenuPressed, have been added to the API. These allow developers to set the dominant hand and handle system gestures performed on the non-dominant hand. Enable Hand Tracking for more information.

Migrating to Mobile SDK 16.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 15.0 to 16.0.

API Changes

  • Gamepad input API has been marked as deprecated and will be removed in a future release.
  • The ovrSystemProperty value VRAPI_SYS_PROP_SRGB_LAYER_SOURCE_AVAILABLE has been deprecated and removed from the API. This value is always true for Oculus standalone devices.
  • The ovrSystemProperty value VRAPI_SYS_PROP_MULTIVIEW_AVAILABLE has been deprecated and removed from the API. This value is always true for Oculus standalone devices

Bug Fixes

  • Fixed Hand Tracking API export for c99.

Migrating to Mobile SDK 15.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 14.0 to 15.0.

API Changes

  • A new ovrSystemStatus, VRAPI_SYS_STATUS_SCREEN_CAPTURE_RUNNING, has been added, which returns true when recording is enabled
  • ovrControllerType_Headset and associated structures have been removed.
  • The permission flag in the Android manifest to use hand tracking functionality has changed to: <uses-permission android:name="com.oculus.permission.HAND_TRACKING" />.

Migrating to Mobile SDK 14.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 13.0 to 14.0.

New Features

  • There are no developer-facing changes in this release.

Migrating to Mobile SDK 13.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 12.0 to 13.0.

New Features

  • Focus awareness is a feature that allows the Oculus system UI to appear as an overlay over an app, without requiring it to be paused. For more information, see the Enabling Focus Awareness topic.

Migrating to Mobile SDK 12.0

Versioning methodology has been updated to bring consistency to Oculus SDK releases. This release (12.0) follows Mobile SDK 1.28.

This section is intended to help you upgrade from the Oculus Mobile SDK version 1.28.0 to 12.0.

New Features

  • Hand tracking is now supported on Oculus Quest as a developer preview feature. See the “Hand Tracking” section of VrApi Input and the new VrHands sample for example usage.
  • Dynamic foveation is now supported. See the “Dynamic Foveation” section of Fixed Foveated Rendering for more information.

API Changes

  • A new hand tracking API has been added.
  • A new ovrProperty, VRAPI_DYNAMIC_FOVEATION_ENABLED, has been provided which allows the application to specify whether dynamic foveation should be enabled.
  • A new event polling mechanism, vrapi_PollEvent, has been added to the API.
  • New ovrSystemProperty values VRAPI_SYS_PROP_HAS_ORIENTATION_TRACKING and VRAPI_SYS_PROP_HAS_POSITION_TRACKING have been added for querying device tracking capabilities.

Migrating to Mobile SDK 1.28.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 1.27.0 to 1.28.0.

Overview

There are no developer-facing changes in this release.

Migrating to Mobile SDK 1.27.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 1.26.0 to 1.27.0.

Overview

There are no developer-facing changes in this release.

Migrating to Mobile SDK 1.26.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 1.25.0 to 1.26.0.

Overview

In this release, the samples have been updated and refreshed.

API Changes

  • A new ovrProperty, VRAPI_DEVICE_EMULATION_MODE, has been added to detect if an application is running in compatibility mode for older devices.

Migrating to Mobile SDK 1.25.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 1.24.0 to 1.25.0.

Overview

There are no developer-facing changes in this release.

Bug Fixes

  • An issue with stale frame judder on Oculus Quest when the latency mode is set to VRAPI_EXTRA_LATENCY_MODE_OFF has been resolved.

Migrating to Mobile SDK 1.24.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 1.23.0 to 1.24.0.

Overview

This release adds support for several new Vulkan features, all of which are demonstrated in the VrCubeWorld_Vulkan sample included with the SDK. These features are as follows:

  • Vulkan Fixed Foveated Rendering (FFR)
  • Vulkan Multiview
  • Vulkan MSAA support

Additionally, protected content rendering is now supported on both Oculus Quest and Oculus Go.

VrApi Changes

  • The vrapi_CreateAndroidSurfaceSwapChain2 function has been added to create an Android Surface SwapChain as a protected resource.
  • The vrapi_GetTextureSwapChainBufferFoveationVulkan function has been added to acquire the foveation Vulkan image associated with the SwapChain.
  • A new ovrSystemStatus, VRAPI_SYS_STATUS_USER_RECENTER_COUNT, has been added for retrieving the number of user-initiated recenter operations.
  • A new ovrFrameLayerFlag, VRAPI_FRAME_LAYER_FLAG_FILTER_EXPENSIVE, has been added to enable expensive filtering for a layer. This option is only useful for 2D layers that are high resolution (such as a remote desktop layer), typically double or more the target resolution.
  • Deprecated extended FrameParms support has been removed.
  • vrapi_GetEyeViewMatrix has been removed from VrApi_Helpers.h. See VrAppSupport/VrModel/Src/SceneView.cppGetEyeViewMatrix for a valid replacement.

LibOVRKernel Removed

LibOVRKernel has been removed from the SDK. Most LibOVRKernel usage was replaced by the C++11 Standard Library equivalent. Any functionality that was not replaced was moved into header files at 1stParty/OVR/Include.

Migrating to Mobile SDK 1.23.0

This section is intended to help you upgrade from the Oculus Mobile SDK version 1.22.0 to 1.23.0.

Overview

This release provides support for Samsung Galaxy S10 smartphone.

VrApi Changes

  • Added Samsung Galaxy S10 Device Type to the API.
  • New ovrTrackingStatus flags were added: VRAPI_TRACKING_STATUS_POSITION_VALID and VRAPI_TRACKING_STATUS_ORIENTATION_VALID. Prior to these status bits, it was unclear how to treat orientation and position data when the TRACKED status bits were unset. The new VALID bits indicate whether the value delivered is usable for rendering or other computation. When the TRACKED bit is unset, but the VALID bit is set, the provided pose is usable, but is the result of some model or estimation heuristic.