Releases: googlevr/cardboard
Releases · googlevr/cardboard
v1.7.0
Cardboard SDK v1.7.0 (2021-07-27)
Breaking & behavioral changes
None.
New APIs and capabilities
- Merged #250: Added multiple orientation support via new parameter to
CardboardHeadTracker_getPose
(C). In Unity this is automatically used.
Deprecations
None.
Other changes
- URLs with HTTP schemes can now be passed to
CardboardQrCode_saveDeviceParams
(C),Api.SaveDeviceParams
(Unity) since they are internally modified to use HTTPS instead. - The iOS SDK was modified to perform only HTTPS requests when trying to get the device parameters from a certain URI.
Bug fixes
- Fixed bug in the Unity sample scene which causes the availability of collectable geodesic spheres to be inconsistent.
- Fixed Unity bug #1329845: Metal support now works on Unity 2019.4.27f1 onwards.
- Fixed #253: Fixed eye textures and widgets location when the app is launched on devices with a notch.
Known issues
- #257 and Unity bug #1346978: When importing the Cardboard XR Plugin package and building an Xcode project, the Unity meta files aren't deleted from the bundle directory. This could cause issues when trying to sign the iOS app binary and can be avoided by manually removing the aforementioned meta files from the generated Xcode project.
v1.6.0
Cardboard SDK v1.6.0 (2021-06-08)
Breaking & behavioral changes
- Changed Unity minimum version to 2019.4.25f1 from 2019.3.15f1.
New APIs and capabilities
- Fixed #198 via #224: Added new API
CardboardQrCode_saveDeviceParams
(C),Google.XR.Cardboard.Api.SaveDeviceParams
(Unity) to set Cardboard params directly from a URI without scanning a QR code. - Fixed #63 via #242: Added new API
CardboardHeadTracker_recenter
(C),Google.XR.Cardboard.Api.Recenter
(Unity) to recenter the head. - Fixed #131 via #92: The SDK now uses AndroidX instead of the Android Support Library. Applications that are not ready to use AndroidX yet should stick to Cardboard v1.5.0.
Deprecations
None.
Other changes
- Added single line namespace declaration when using nested namespaces.
Bug fixes
- Fixed #259: Fixed stereoscopic issue when using Metal on Unity.
- Fixed #251: Fixed a warning on Unity 2021.1 with Unity XR Management 4.0.1 when importing the Cardboard XR Plugin.
Known issues
None.
v1.5.0
Cardboard SDK v1.5.0 (2021-04-29)
Breaking & behavioral changes
None.
New APIs and capabilities
- Updated
third_party/unity_plugin_api
to the version from Unity 2020.2.5f1. - Fixed #11: Metal is supported on iOS. On Unity, this only works on 2020.1 and above, see known issue below.
- Fixed #90: GitHub actions-driven CI added.
Deprecations
None.
Other changes
- Added "cardboard_oss_" prefix to icon names to avoid name collisions in Android applications.
- Removed requirement of calling
Cardboard_initializeAndroid()
beforeCardboardQrCode_getCardboardV1DeviceParams()
on Android. - Silenced OpenGL deprecation warnings in Xcode.
- Removed unneeded Quaternion to Rotation conversion in
HeadTracker::GetPose()
. - Added cache of JNI global references for all
jclass
instances on Android to avoid unintended reference invalidation. See JNI Tips - Local and global references for further information. - Removed unused functionality from the
SensorFusionEkf
class. It will always use the gyroscope bias prediction. - Replaced
PoseState
byRotationState
and the use ofpose
byrotation
to improve accuracy and simplify the code. - Removed unused function
HeadTracker::GetDefaultOrientation()
. - Removed unused function
cardboard::pose_prediction::PredictPoseInv()
. - Upgraded Protobuf Gradle plugin version to 0.8.15 and Protobuf dependency to 3.8.0. This is expected to fix #237.
- Added iOS framework dependencies in cardboard_api.a.meta to avoid linking errors when building a Unity app.
Bug fixes
- Fixed #164 and #193: Bad head tracking due to using incorrect clock base.
- Fixed #166: Build errors in Xcode project.
- Fixed #182: Rendering broken after scanning improper QR codes. Now in these cases we will return Cardboard Viewer v1 device parameters.
- Fixed #207 via #211: No stereo rendering in Unity.
- Fixed #246: This release was not yet out.
- Fixed #249: Build errors on Unity 2020.2 or later with iOS.
Known issues
- #245: When using Unity on Android devices, Optimized Frame Pacing option is not supported. Note that in Unity 2020.1 and above Optimized Frame Pacing is enabled by default so developers must turn off the option.
- #251: When using XR Management package 3.2.14 or greater, a warning is logged when importing Cardboard XR Plugin. This warning refers to a bad project configuration in the Cardboard XR Plugin. It can be safely ignored and will be fixed in a future release. This was observed in Unity 2021.1 which defaults to XR Management 4.0.1.
- #252: When scanning a QR code in Unity, an incorrect camera orientation will be seen. This issue takes place only on Pixel 3 XL, when the app is launched in portrait mode, and there are no saved device parameters causing the QR code scanner to be launched at startup.
- #253: When in VR mode in Unity, the eyes may be rendered in the wrong location when the app is launched for the first time. Minimizing the app and maximizing it again fixes the issue.
- Unity bug #1329845: Metal support does not work on Unity 2019.3 or 2019.4.
- Workaround for Unity bug #1329846: Added
IOSurface
iOS framework dependency directly to the library meta file. - Workaround for Unity bug #1329853: When using Metal, a fullscreen black texture is rendered on each draw call.
- Unity issue #1291276: When importing the Cardboard XR Plugin sample project in Unity 2020.3 or later, a warning is logged related to the AssetDatabase path and the scene. This warning can be safely ignored.
v1.4.1
v1.4.0
Cardboard SDK v1.4.0 (2020-12-04)
Breaking & behavioral changes
- Changed Android minimum SDK version to 18 from 16 in Android SDK, sample app, and Unity SDK. If you want to maintain minimum SDK version 16 for your app, you must remove OpenGL ES 3.0 support by making the following changes. All the locations can be found by searching for "#gles3":
- Set
minSdkVersion
to 16 in build.gradle. - Change
glEsVersion
to 0x00020000 in AndroidManifest.xml. - Remove
GLESv3-lib
occurrences from CMakeLists.txt. - Remove the contents of opengl_es3_distortion_renderer.cc.
- (Unity only) Remove the call to
CardboardOpenGlEs3DistortionRenderer_create
in cardboard_xr_unity.cc.
- Set
New APIs and capabilities
- Closed #40: Added OpenGL ES 3.0 support.
- Closed #144: Added support for 2020 iPhones (iPhone 12, iPhone 12 Mini, iPhone 12 Pro, and iPhone 12 Pro Max).
- Added new
UpdateScreenParams
method to the Unity API. This method should be called every frame while VR is enabled as a workaround for Unity bug #1288515. Once the bug is fixed by Unity, this method will be removed. - Added support for ProGuard on Android.
- Closed #53: Added sample showing how to enable and disable Cardboard in Unity at runtime.
- Added support for iPod touch 7th generation.
Deprecations
None.
Other changes
- Added more detailed logging of QR code scanning state changes on Android.
- Improves logging of the Java code for QR code scanning.
- Replaced
CameraSource.Builder
class by a public constructor inCameraSource
to simplify code maintenance.
Bug fixes
v1.3.0
Cardboard SDK v1.3.0 (2020-10-20)
Breaking & behavioral changes
None.
New APIs and capabilities
- Added new
CardboardDistortionRenderer
constructors for to support multiple rendering APIs in a future release. Only OpenGL ES 2 is currently implemented. - Added validation for pointers passed in to each API function before dereferencing them. Invalid parameters get logged to the debug console.
- Added validation that Cardboard_initializeAndroid() has been called before any other API function is. Invalid calls get logged to the debug console.
- Updated iOS sample app to work with iOS 14.
- Changed Android minimum SDK version to 16 from 19 in Android SDK.
- Changed Android target API version to 30 from 28 in Android SDK and sample app.
Deprecations
CardboardDistortionRenderer_create
has been removed. CallCardboardOpenGlEs2DistortionRenderer_create
instead.
Other changes
- Merged #91: Added Android Studio styling.
- Fixed #29: Repository contains a gitignore file.
- Added support for apps that use Cronet for network operations. See
CronetEngine.createURLStreamHandlerFactory
for specifics. - Changed use of
Context
in Android specific code to work with anyContext
that has aWindowManager
where previously it only worked withContext
objects of typeActivity
. This helps when dependency injection frameworks like Dagger. - Improved Android API compatibility to get screen pixel density.
- Added a toast explaining when barcode detection libraries are not available and a WiFi update of Google Play Services is required.
Bug fixes
- Fixed #29: A .gitignore file has been added to the SDK repository.
- Fixed #33: Unity XR plugin no longer requires both iOS and Android Unity modules to be installed.
- Fixed #34: On Android, Unity projects entering XR mode won't crash anymore if Cardboard XR Plugin is not enabled in Player Settings > XR Plug-in Management.
- Fixed #50: Unity XR plugin displays gear and close textures after loading a new scene.
- Fixed #55, merged #2: Unity XR plugin no longer throws an error when building for platforms other than Android or iOS.
- Fixed #59 and #98: Unity XR plugin can be turned on and off at runtime.
- Fixed #89: QR code scanner accepts both TEXT and URL barcode types.
v1.2.0
Cardboard SDK v1.2.0 (2020-08-31)
Breaking & behavioral changes
- Moved from multiple shared native libraries in favor of only one shared library in Android.
- Replaced dynamic dependency on shared C++ STL library by static C++ STL to reduce aar size.
New APIs and capabilities
- Closed #32:
CardboardXrProvider
is now open source and buildable for Android and iOS.
Deprecations
None.
Other changes
- Update C# style for non-public variables. For example,
private float m_Foo
is nowprivate float _foo
.
Bug fixes
- Fixed #35: "Show Splash Screen" must be unchecked. This is no longer needed on Unity 2019.3.15f1 or later. However, see known issue related to
Screen.safeArea()
below.
Known issues
- #100: On iOS the widgets are rendered in the wrong location on devices with a notch. This only affects when the app is built with Unity 2019.3.14f1 and later.
- This is due to
Screen.safeArea()
not taking the notch into account on iPhone XS, iPhone XR, and iPhone 11.
- This is due to
v1.1.0
Cardboard SDK v1.1.0 (2020-05-18)
Breaking & behavioral changes
- Changed from degrees to radians the field of view units that Matrix4x4::Perspective() expects.
This change is internal to the SDK only and does not affect the API. - Removed OpenGL ES 2 header "GLES2/gl2.h" from being included in cardboard.h.
- Changed Protocol Buffers dependency from C++ v3.10.1 to Java v3.0.0 in Android SDK. This change is internal to the SDK only and does not affect the API.
- Changed Android minimum SDK version to 19 from 21 in Android SDK and sample app.
- Renamed Android SDK Java package to "com.google.cardboard.sdk". This change is internal to the SDK only and does not affect the API.
- Changes LensDistortion API to get eye-from-head matrices independently from the perpective matrices. Perspective matrices can now be constructed with custom near and far clip planes. Previously fixed near and far clip planes z-axis coordinates were 0.1 and 100.0 respectively.
- Changed C++ STL from std=gnu++11 to std=c++11 in Android SDK and sample.
- On Android,
CardboardQrCode_scanQrCodeAndSaveDeviceParams
now requests HTTPS even when HTTP is specified in a Cardboard QR code, removing the need for android:usesCleartextTraffic to be true. - Changed CardboardDistortionRenderer_renderEyeToDisplay() function to accept a viewport rectangle information to draw into the display.
New APIs and capabilities
- New CardboardLensDistortion_getFieldOfView() function to get device field of view half angles per eye.
- New Unity C# API using Unity's XR Plugin framework.
- New CardboardQrCode_getQrCodeScanCount() function to get the number of times device parameters are read and saved.
- New CardboardQrCode_getCardboardV1DeviceParams() to get Cardboard V1 device parameters proto buffer.
Other changes
- Enabled the following functions to be called from non-Java native threads on Android:
- CardboardLensDistortion_create()
- CardboardQrCode_getSavedDeviceParams()
- CardboardQrCode_scanQrCodeAndSaveDeviceParams()
- Removed unused parameters from "CardboardEyeTextureDescription" structure ("layer" and "eye_from_head").
- Changed OpenGL ES version to 2.0. OpenGL ES 3.x is backward compatible with 2.0, see https://developer.android.com/guide/topics/graphics/opengl.
- Removed unused dependency from LensDistortion (logging).
- Removed unused attribute from LensDistortion (kMetersPerInch).
Bug fixes
- Fixed typo in Distortion Renderer API function ("CardboardDestortionRenderer_renderEyeToDisplay()" renamed to "CardboardDistortionRenderer_renderEyeToDisplay()").
- Removed unused EGL dependency from sdk and sample app.
- Fixed memory leak when calling CardboardLensDistortion_destroy.
Known issues
- Unity XR plugin libraries libCardboardXrProvider.so for Android and CardboardXrProvider.a for iOS are still unable to be open sourced. We hope to do it in a future update.
- Unity XR plugin will have build errors unless iOS and Android support are both installed in Unity.
- On Android, Unity projects entering XR mode will crash if Cardboard XR Plugin is not enabled in Player Settings > XR Plug-in Management.
- Head tracking latency is significantly higher on Qualcomm based Samsung S10 and Samsung S10+ devices.
- QR code scanning on Android may fail without error message while Google Play services is being updated or internet connection is unreliable.
- On some versions of Unity 2019.3, XR mode will not be entered unless Project Settings > Player > Splash Image > Show Splash Screen is unchecked. Note: this option is available in Unity Plus and Unity Pro.
v1.0.0
Initial release of Cardboard SDK.
Known issues
- Head tracking latency is significantly higher on Qualcomm based Samsung S10 and Samsung S10+ devices.
- QR code scanning on Android may fail without error message while Google Play services is being updated or internet connection is unreliable.
- Android minimum SDK version must currently be 21 or higher. We hope to support 19 or higher in a future update.