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_scanQrCodeAndSaveDeviceParamsnow 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.