private void renderSixCamerasAndReadback(final GVRCameraRig mainCameraRig, byte[][] byteArrays) { if (byteArrays.length != 6) { throw new IllegalArgumentException("byteArrays length is not 6."); } else { // temporarily create a center camera GVRPerspectiveCamera centerCamera = new GVRPerspectiveCamera(this); centerCamera.setFovY(90.0f); centerCamera.setRenderMask(GVRRenderMaskBit.Left | GVRRenderMaskBit.Right); GVRSceneObject centerCameraObject = new GVRSceneObject(this); centerCameraObject.attachCamera(centerCamera); mainCameraRig.getOwnerObject().addChildObject(centerCameraObject); GVRTransform centerCameraTransform = centerCameraObject.getTransform(); int index = 0; // render +x face centerCameraTransform.rotateByAxis(-90, 0, 1, 0); renderOneCameraAndAddToList(centerCamera, byteArrays, index++); // render -x face centerCameraTransform.rotateByAxis(180, 0, 1, 0); renderOneCameraAndAddToList(centerCamera, byteArrays, index++); // render +y face centerCameraTransform.rotateByAxis(-90, 0, 1, 0); centerCameraTransform.rotateByAxis(90, 1, 0, 0); renderOneCameraAndAddToList(centerCamera, byteArrays, index++); // render -y face centerCameraTransform.rotateByAxis(180, 1, 0, 0); renderOneCameraAndAddToList(centerCamera, byteArrays, index++); // render +z face centerCameraTransform.rotateByAxis(90, 1, 0, 0); centerCameraTransform.rotateByAxis(180, 0, 1, 0); renderOneCameraAndAddToList(centerCamera, byteArrays, index++); // render -z face centerCameraTransform.rotateByAxis(180, 0, 1, 0); renderOneCameraAndAddToList(centerCamera, byteArrays, index++); centerCameraObject.detachCamera(); mainCameraRig.getOwnerObject().removeChildObject(centerCameraObject); } }
/** * Override this method to change the default splash screen size or position. * * <p>This method will be called <em>before</em> {@link #onInit(GVRContext) onInit()} and before * the normal render pipeline starts up. In particular, this means that any {@linkplain * GVRAnimation animations} will not start until the first {@link #onStep()} and normal rendering * starts. * * @param splashScreen The splash object created from {@link #getSplashTexture(GVRContext)}, * {@link #getSplashMesh(GVRContext)}, and {@link #getSplashShader(GVRContext)}. * @since 1.6.4 */ public void onSplashScreenCreated(GVRSceneObject splashScreen) { GVRTransform transform = splashScreen.getTransform(); transform.setPosition(0, 0, DEFAULT_SPLASH_Z); }