From 5501a869091a020051708e0756558aeffbd054c7 Mon Sep 17 00:00:00 2001 From: Raj Advani Date: Mon, 11 May 2020 19:41:34 -0400 Subject: [PATCH] Remove GVR from iOS builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GVR was using the deprecated UIWebView, which was preventing app store submission. Remove GVR entirely from iOS as it’s now deprecated. --- ios/Podfile | 2 - ios/Podfile.lock | 21 +- ios/ViroKit/VRODisplayOpenGLiOSGVR.h | 79 --- ios/ViroKit/VRODriverOpenGLiOSGVR.h | 58 --- ios/ViroKit/VROSceneRendererGVR.cpp | 332 ------------ ios/ViroKit/VROSceneRendererGVR.h | 108 ---- ios/ViroKit/VROViewControllerGVR.h | 41 -- ios/ViroKit/VROViewControllerGVR.m | 129 ----- ios/ViroKit/VROViewGVR.h | 41 -- ios/ViroKit/VROViewGVR.m | 555 --------------------- ios/ViroKit/ViroKit.h | 2 - ios/ViroRenderer.xcodeproj/project.pbxproj | 190 +------ ios/ViroSample/VROTestViewController.m | 13 +- 13 files changed, 16 insertions(+), 1555 deletions(-) delete mode 100644 ios/ViroKit/VRODisplayOpenGLiOSGVR.h delete mode 100644 ios/ViroKit/VRODriverOpenGLiOSGVR.h delete mode 100644 ios/ViroKit/VROSceneRendererGVR.cpp delete mode 100644 ios/ViroKit/VROSceneRendererGVR.h delete mode 100644 ios/ViroKit/VROViewControllerGVR.h delete mode 100644 ios/ViroKit/VROViewControllerGVR.m delete mode 100644 ios/ViroKit/VROViewGVR.h delete mode 100644 ios/ViroKit/VROViewGVR.m diff --git a/ios/Podfile b/ios/Podfile index 4c5d836a..bdcbf8e5 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -13,11 +13,9 @@ end target 'ViroKit' do use_frameworks! common_pods - pod 'GVRSDK', '1.120.0' end target 'ViroKit_static_lib' do common_pods - pod 'GVRKit', '1.120.0' end diff --git a/ios/Podfile.lock b/ios/Podfile.lock index be779f8f..0fc3b27f 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,35 +1,16 @@ PODS: - - GoogleToolboxForMac/Defines (2.1.0) - - GoogleToolboxForMac/Logger (2.1.0): - - GoogleToolboxForMac/Defines (= 2.1.0) - - GTMSessionFetcher/Core (1.1.6) - GVRAudioSDK (1.120.0) - - GVRKit (1.120.0): - - GVRSDK (= 1.120.0) - - GVRSDK (1.120.0): - - GoogleToolboxForMac/Logger (= 2.1.0) - - GTMSessionFetcher/Core (= 1.1.6) DEPENDENCIES: - GVRAudioSDK (= 1.120.0) - - GVRKit (= 1.120.0) - - GVRSDK (= 1.120.0) SPEC REPOS: https://github.com/cocoapods/specs.git: - - GoogleToolboxForMac - - GTMSessionFetcher - GVRAudioSDK - - GVRKit - - GVRSDK SPEC CHECKSUMS: - GoogleToolboxForMac: 2b2596cbb7186865e98cadf2b1e262d851c2b168 - GTMSessionFetcher: 6aacd0ab48ddf0c3633ab2642d792abfcad1b08a GVRAudioSDK: 302f0a8f190d855868ea07f246ce4f9b44c392ae - GVRKit: 424e48fafa9f8a6249a14ffda48d2f1dbe3d9def - GVRSDK: 0cb9d0ce06a84d698e61e3db9509766022dcf815 -PODFILE CHECKSUM: 26ce74a09cf7430dd7c82b2b79c95dfd6159f50c +PODFILE CHECKSUM: 89c2f1709300d1c1cec2b0716b4cb044211565ba COCOAPODS: 1.5.3 diff --git a/ios/ViroKit/VRODisplayOpenGLiOSGVR.h b/ios/ViroKit/VRODisplayOpenGLiOSGVR.h deleted file mode 100644 index 9f37c5a7..00000000 --- a/ios/ViroKit/VRODisplayOpenGLiOSGVR.h +++ /dev/null @@ -1,79 +0,0 @@ -// -// VRODisplayOpenGLiOSGVR.h -// ViroKit -// -// Created by Raj Advani on 11/29/17. -// Copyright © 2017 Viro Media. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -#ifndef VRODisplayOpenGLGVR_h -#define VRODisplayOpenGLGVR_h - -#include -#include -#include "VROOpenGL.h" -#include "VRODisplayOpenGLiOS.h" -#include "vr/gvr/capi/include/gvr.h" -#include "vr/gvr/capi/include/gvr_types.h" - -class VRODriverOpenGL; - -/* - In GVR the VRODisplay (the primary framebuffer) is managed by a - gvr::Frame object. - */ -class VRODisplayOpenGLiOSGVR : public VRODisplayOpenGLiOS { -public: - - VRODisplayOpenGLiOSGVR(GLKView *viewGL, std::shared_ptr driver) : - VRODisplayOpenGLiOS(viewGL, driver), - _frame(nullptr) {} - virtual ~VRODisplayOpenGLiOSGVR() {} - - void bind() { - if (_frame != nullptr) { - // Do *not* directly call gvr_frame_bind or gvr_frame_unbind here; instead, - // get the underlying FBO ID for buffer 0 in the frame and bind that. - // We don't call the gvr functions directly because frame bind and unbind - // appear to do much more than just bind the underlying FBO. In particular, - // if we call gvr_frame_unbind in the midst of a render cycle, we are likely - // to get driver-level (BufferObjectDisableReorderCheck) crashes on S3 devices. - // And if we call gvr_frame_bind without calling gvr_frame_unbind, we get - // recurring log spam about performance degradation from GVR. - _framebuffer = gvr_frame_get_framebuffer_object(_frame, 0); - VRODisplayOpenGL::bind(); - } - else { - // 360 mode, we don't use the gvr frame but we have a valid framebuffer object - VRODisplayOpenGLiOS::bind(); - } - } - - void setFrame(gvr::Frame &frame) { - _frame = frame.cobj(); - } - -private: - gvr_frame *_frame; - -}; - -#endif /* VRODisplayOpenGLGVR_h */ diff --git a/ios/ViroKit/VRODriverOpenGLiOSGVR.h b/ios/ViroKit/VRODriverOpenGLiOSGVR.h deleted file mode 100644 index 8966527d..00000000 --- a/ios/ViroKit/VRODriverOpenGLiOSGVR.h +++ /dev/null @@ -1,58 +0,0 @@ -// -// VRODriverOpenGLiOSGVR.h -// ViroRenderer -// -// Created by Raj Advani on 11/29/17. -// Copyright © 2017 Viro Media. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -#ifndef VRODriverOpenGLiOSGVR_h -#define VRODriverOpenGLiOSGVR_h - -#include "VRODriverOpenGLiOS.h" -#include "VRODisplayOpenGLiOSGVR.h" - -class VRODriverOpenGLiOSGVR : public VRODriverOpenGLiOS { -public: - - VRODriverOpenGLiOSGVR(GLKView *viewGL, EAGLContext *eaglContext) : - VRODriverOpenGLiOS(viewGL, eaglContext) { - } - virtual ~VRODriverOpenGLiOSGVR() { } - - /* - On GVR the primary framebuffer (display) is tied to a GVR - swapchain. - */ - std::shared_ptr getDisplay() { - if (!_display) { - GLKView *viewGL = _viewGL; - std::shared_ptr driver = shared_from_this(); - _display = std::make_shared(viewGL, driver); - } - return _display; - } - -private: - -}; - -#endif /* VRODriverOpenGLiOSGVR_h */ diff --git a/ios/ViroKit/VROSceneRendererGVR.cpp b/ios/ViroKit/VROSceneRendererGVR.cpp deleted file mode 100644 index b4dff89a..00000000 --- a/ios/ViroKit/VROSceneRendererGVR.cpp +++ /dev/null @@ -1,332 +0,0 @@ -// -// VROSceneRendererGVR.cpp -// ViroRenderer -// -// Created by Raj Advani on 11/8/16. -// Copyright © 2016 Viro Media. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -#include "VROSceneRendererGVR.h" -#include "VROLog.h" -#include -#include -#include -#include -#include "VROTime.h" -#include "VROEye.h" -#include "VROGVRUtil.h" -#include "VROViewport.h" -#include "VRORenderer.h" -#include "VROReticle.h" -#include "VRODisplayOpenGLiOSGVR.h" -#include "VROAllocationTracker.h" - -static const uint64_t kPredictionTimeWithoutVsyncNanos = 50000000; - -#pragma mark - Setup - -VROSceneRendererGVR::VROSceneRendererGVR(int width, int height, UIInterfaceOrientation orientation, - float contentScaleFactor, - std::shared_ptr renderer, - std::shared_ptr driver) : - _frame(0), - _contentScaleFactor(contentScaleFactor), - _renderer(renderer), - _driver(driver), - _sizeChanged(false), - _vrModeEnabled(true) { - setSurfaceSizeInternal(width, height, orientation); -} - -VROSceneRendererGVR::~VROSceneRendererGVR() { - _viewportList.release(); - _swapchain.release(); - _gvr.release(); -} - -#pragma mark - Rendering - -void VROSceneRendererGVR::initGL() { - _gvr = gvr::GvrApi::Create(); - _gvr->InitializeGl(); - createSwapchain(); - - _viewportList.reset(new gvr::BufferViewportList(_gvr->CreateEmptyBufferViewportList())); - _sceneViewport = _gvr->CreateBufferViewport(); - - // Configure the common properties of the HUD viewport. Each frame this viewport gets - // modified for each eye and copied into the viewport list. The most important property - // here is setting the source buffer index to 1, so GVR knows to read from buffer 1 to - // get the contents of this viewport - _hudViewport = _gvr->CreateBufferViewport(); - _hudViewport.SetSourceBufferIndex(1); - _hudViewport.SetReprojection(GVR_REPROJECTION_NONE); -} - -void VROSceneRendererGVR::createSwapchain() { - std::vector specs; - - // Buffer specification for the Scene. Do not multisample; we'll do that when rendering - // from GVR into the GLKView - specs.push_back(_gvr->CreateBufferSpec()); - specs[0].SetColorFormat(GVR_COLOR_FORMAT_RGBA_8888); - specs[0].SetDepthStencilFormat(GVR_DEPTH_STENCIL_FORMAT_DEPTH_24_STENCIL_8); - specs[0].SetSize(_surfaceSize); - specs[0].SetSamples(1); - - // Buffer specification for the HUD - specs.push_back(_gvr->CreateBufferSpec()); - specs[1].SetColorFormat(GVR_COLOR_FORMAT_RGBA_8888); - specs[1].SetDepthStencilFormat(GVR_DEPTH_STENCIL_FORMAT_NONE); - specs[1].SetSize(_surfaceSize); - specs[1].SetSamples(1); - - _swapchain.reset(new gvr::SwapChain(_gvr->CreateSwapChain(specs))); -} - -void VROSceneRendererGVR::onDrawFrame() { - if (_sizeChanged) { - if (_vrModeEnabled) { - _swapchain->ResizeBuffer(0, _surfaceSize); - _swapchain->ResizeBuffer(1, _surfaceSize); - } - _sizeChanged = false; - } - - // Obtain the latest, predicted head pose - gvr::ClockTimePoint target_time = gvr::GvrApi::GetTimePointNow(); - target_time.monotonic_system_time_nanos += kPredictionTimeWithoutVsyncNanos; - - _headView = _gvr->GetHeadSpaceFromStartSpaceRotation(target_time); - VROMatrix4f headView = VROGVRUtil::toMatrix4f(_headView); - if (_vrModeEnabled) { - renderStereo(headView); - } else { - renderMono(headView); - } - - ++_frame; - ALLOCATION_TRACKER_PRINT(); -} - -// For stereo rendering we use GVR's swapchain, which provides async reprojection -// (async timewarp, basically), and distorts the images. To do this we render to the -// buffers in the Frame. The Submit() call at the end takes the viewports and performs -// distortion and async reprojection. -void VROSceneRendererGVR::renderStereo(VROMatrix4f &headView) { - gvr::Sizei renderSize = _surfaceSize; - VROMatrix4f headRotation = headView.invert(); - - // Update the viewports to the latest (these change if the user changed the viewer) - _viewportList->SetToRecommendedBufferViewports(); - - // Acquire a frame from the swap chain - gvr::Frame frame = _swapchain->AcquireFrame(); - std::dynamic_pointer_cast(_driver->getDisplay())->setFrame(frame); - - // Get the eye, view, and projection matrices - VROMatrix4f eyeFromHeadMatrices[GVR_NUM_EYES]; - VROFieldOfView fovs[GVR_NUM_EYES]; - VROViewport viewports[GVR_NUM_EYES]; - VROMatrix4f projectionMatrices[GVR_NUM_EYES]; - - for (int i = 0; i < GVR_NUM_EYES; i++) { - gvr::Eye eye = (gvr::Eye) i; - eyeFromHeadMatrices[i] = VROGVRUtil::toMatrix4f(_gvr->GetEyeFromHeadMatrix(eye)); - - _viewportList->GetBufferViewport(eye, &_sceneViewport); - extractViewParameters(_sceneViewport, renderSize, &viewports[i], &fovs[i]); - projectionMatrices[i] = fovs[i].toPerspectiveProjection(kZNear, _renderer->getFarClippingPlane()); - - // Setup the HUD viewport for this eye. The HUD viewport has the same parameters as the - // scene viewport (its common properties however, configured in initGL, are different) - _hudViewport.SetTransform(_sceneViewport.GetTransform()); - _hudViewport.SetTargetEye(eye); - _hudViewport.SetSourceFov(_sceneViewport.GetSourceFov()); - _hudViewport.SetSourceUv(_sceneViewport.GetSourceUv()); - _viewportList->SetBufferViewport(2 + i, _hudViewport); - } - - // Prepare the frame and render the left eye - _renderer->prepareFrame(_frame, viewports[0], fovs[0], headRotation, projectionMatrices[0], _driver); - clearViewport(viewports[0], false); - _renderer->renderEye(VROEyeType::Left, - eyeFromHeadMatrices[GVR_LEFT_EYE].multiply(_renderer->getLookAtMatrix()), - projectionMatrices[GVR_LEFT_EYE], - viewports[GVR_LEFT_EYE], _driver); - - // Render the right eye - clearViewport(viewports[1], false); - _renderer->renderEye(VROEyeType::Right, - eyeFromHeadMatrices[GVR_RIGHT_EYE].multiply(_renderer->getLookAtMatrix()), - projectionMatrices[GVR_RIGHT_EYE], - viewports[GVR_RIGHT_EYE], _driver); - frame.Unbind(); - - // Bind the HUD buffer and render to both eyes - frame.BindBuffer(1); - clearViewport(viewports[0], true); - _renderer->renderHUD(VROEyeType::Left, - eyeFromHeadMatrices[GVR_LEFT_EYE], - projectionMatrices[GVR_LEFT_EYE], - _driver); - - clearViewport(viewports[1], true); - _renderer->renderHUD(VROEyeType::Right, - eyeFromHeadMatrices[GVR_RIGHT_EYE], - projectionMatrices[GVR_RIGHT_EYE], - _driver); - _renderer->endFrame(_driver); - - frame.Unbind(); // Binds the root OpenGL framebuffer, so we can submit the Frame - frame.Submit(*_viewportList, _headView); // Submits all layers (buffer 0, buffer 1, etc.) to the framebuffer -} - -// For mono rendering we simply render direct to our GLSurfaceView, avoiding -// the gvr::Frame and its buffers (so long as gvr::Frame.BindBuffer is not -// called, the GLSurfaceView's primary default framebuffer is bound) -void VROSceneRendererGVR::renderMono(VROMatrix4f &headView) { - headView = _orientationMatrix * headView; - VROMatrix4f headRotation = headView.invert(); - - const gvr::Recti rect = calculatePixelSpaceRect(_surfaceSize, {0, 1, 0, 1}); - VROViewport viewport(rect.left, rect.bottom, - rect.right - rect.left, - rect.top - rect.bottom); - - VROFieldOfView fov = _renderer->computeUserFieldOfView(viewport.getWidth(), viewport.getHeight()); - VROMatrix4f projection = fov.toPerspectiveProjection(kZNear, _renderer->getFarClippingPlane()); - VROMatrix4f eyeFromHeadMatrix; // Identity - - clearViewport(viewport, false); - _renderer->prepareFrame(_frame, viewport, fov, headRotation, projection, _driver); - _renderer->renderEye(VROEyeType::Monocular, _renderer->getLookAtMatrix(), projection, viewport, _driver); - _renderer->renderHUD(VROEyeType::Monocular, eyeFromHeadMatrix, projection, _driver); - _renderer->endFrame(_driver); -} - -#pragma mark - Lifecycle and Settings - -void VROSceneRendererGVR::refreshViewerProfile() { - if (!_gvr) { - return; - } - _gvr->RefreshViewerProfile(); -} - -void VROSceneRendererGVR::recenterTracking() { - if (!_gvr) { - return; - } - _gvr->RecenterTracking(); -} - -void VROSceneRendererGVR::setVRModeEnabled(bool enabled) { - _vrModeEnabled = enabled; -} - -void VROSceneRendererGVR::pause() { - if (!_gvr) { - return; - } - _gvr->PauseTracking(); -} - -void VROSceneRendererGVR::resume() { - if (!_gvr) { - return; - } - _gvr->ResumeTracking(); -} - -void VROSceneRendererGVR::setSurfaceSize(int width, int height, UIInterfaceOrientation orientation) { - int previousWidth = _surfaceSize.width; - int previousHeight = _surfaceSize.height; - - setSurfaceSizeInternal(width, height, orientation); - if (width != previousWidth || height != previousHeight) { - _sizeChanged = true; - } -} - -void VROSceneRendererGVR::setSurfaceSizeInternal(int width, int height, UIInterfaceOrientation orientation) { - _surfaceSize.width = width; - _surfaceSize.height = height; - _orientationMatrix = VROMatrix4f::identity(); - - if (!_vrModeEnabled) { - if (orientation == UIInterfaceOrientationPortrait) { - _orientationMatrix.rotateZ(-M_PI_2); - } - else if (orientation == UIInterfaceOrientationPortraitUpsideDown) { - _orientationMatrix.rotateZ(M_PI_2); - } - else if (orientation == UIInterfaceOrientationLandscapeLeft) { - _orientationMatrix.rotateZ(M_PI); - } - } -} - -#pragma mark - Utility Methods - -void VROSceneRendererGVR::clearViewport(VROViewport viewport, bool transparent) { - // Scissor must be enabled to ensure we only clear the viewport's area - glEnable(GL_SCISSOR_TEST); - glViewport(viewport.getX(), viewport.getY(), viewport.getWidth(), viewport.getHeight()); - glScissor (viewport.getX(), viewport.getY(), viewport.getWidth(), viewport.getHeight()); - if (transparent) { - glClearColor(0.0f, 0.0f, 0.0f, 0.0f); - } - else { - glClearColor(0.0f, 0.0f, 0.0f, 1.0f); - } - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); -} - -gvr::Rectf VROSceneRendererGVR::modulateRect(const gvr::Rectf &rect, float width, float height) { - gvr::Rectf result = {rect.left * width, rect.right * width, - rect.bottom * height, rect.top * height}; - return result; -} - -gvr::Recti VROSceneRendererGVR::calculatePixelSpaceRect(const gvr::Sizei &texture_size, - const gvr::Rectf &texture_rect) { - float width = static_cast(texture_size.width); - float height = static_cast(texture_size.height); - gvr::Rectf rect = modulateRect(texture_rect, width, height); - gvr::Recti result = { - static_cast(rect.left), static_cast(rect.right), - static_cast(rect.bottom), static_cast(rect.top)}; - return result; -} - -void VROSceneRendererGVR::extractViewParameters(gvr::BufferViewport &viewport, gvr::Sizei renderSize, - VROViewport *outViewport, VROFieldOfView *outFov) { - const gvr::Recti rect = calculatePixelSpaceRect(renderSize, viewport.GetSourceUv()); - *outViewport = VROViewport(rect.left, rect.bottom, - rect.right - rect.left, - rect.top - rect.bottom); - outViewport->setContentScaleFactor(_contentScaleFactor); - const gvr::Rectf fov = viewport.GetSourceFov(); - *outFov = VROFieldOfView(fov.left, fov.right, fov.bottom, fov.top); -} - - diff --git a/ios/ViroKit/VROSceneRendererGVR.h b/ios/ViroKit/VROSceneRendererGVR.h deleted file mode 100644 index ed41b144..00000000 --- a/ios/ViroKit/VROSceneRendererGVR.h +++ /dev/null @@ -1,108 +0,0 @@ -// -// VROSceneRendererGVR.h -// ViroRenderer -// -// Created by Raj Advani on 11/8/16. -// Copyright © 2016 Viro Media. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -#ifndef VRO_SCENE_RENDERER_GVR_H_ // NOLINT -#define VRO_SCENE_RENDERER_GVR_H_ // NOLINT - -#include -#include "VROOpenGL.h" -#include "VROMatrix4f.h" -#include -#include -#include -#include "vr/gvr/capi/include/gvr.h" -#include "vr/gvr/capi/include/gvr_audio.h" -#include "vr/gvr/capi/include/gvr_types.h" - -class VRORenderer; -class VRODriver; -class VROViewport; -class VROFieldOfView; - -class VROSceneRendererGVR : public std::enable_shared_from_this { - -public: - - VROSceneRendererGVR(int width, int height, UIInterfaceOrientation orientation, - float contentScaleFactor, - std::shared_ptr renderer, - std::shared_ptr driver); - virtual ~VROSceneRendererGVR(); - - void initGL(); - void onDrawFrame(); - void onTouchEvent(int action, float x, float y); - void recenterTracking(); - void refreshViewerProfile(); - - void setVRModeEnabled(bool enabled); - void setSurfaceSize(int width, int height, UIInterfaceOrientation orientation); - void pause(); - void resume(); - -private: - - void createSwapchain(); - void renderStereo(VROMatrix4f &headView); - void renderMono(VROMatrix4f &headView); - - int _frame; - float _contentScaleFactor; - std::shared_ptr _renderer; - std::shared_ptr _driver; - - std::unique_ptr _gvr; - std::unique_ptr _viewportList; - std::unique_ptr _swapchain; - - // These are viewport *templates*. We use viewportList->SetBufferViewport to copy the - // viewport into the appropriate position after configuring it each frame - gvr::BufferViewport _hudViewport; - gvr::BufferViewport _sceneViewport; - - gvr::Mat4f _headView; - gvr::Sizei _surfaceSize; - bool _sizeChanged; - gvr::ViewerType _viewerType; - - bool _vrModeEnabled; - double _suspendedNotificationTime; - VROMatrix4f _orientationMatrix; - - /* - Utility methods. - */ - void setSurfaceSizeInternal(int width, int height, UIInterfaceOrientation orientation); - void clearViewport(VROViewport viewport, bool transparent); - gvr::Rectf modulateRect(const gvr::Rectf &rect, float width, float height); - gvr::Recti calculatePixelSpaceRect(const gvr::Sizei &texture_size, const gvr::Rectf &texture_rect); - void extractViewParameters(gvr::BufferViewport &viewport, gvr::Sizei renderSize, - VROViewport *outViewport, - VROFieldOfView *outFov); - -}; - -#endif // VRO_SCENE_RENDERER_GVR_H // NOLINT diff --git a/ios/ViroKit/VROViewControllerGVR.h b/ios/ViroKit/VROViewControllerGVR.h deleted file mode 100644 index dce0f30f..00000000 --- a/ios/ViroKit/VROViewControllerGVR.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// VROViewControllerGVR.h -// ViroKit -// -// Created by Raj Advani on 11/30/17. -// Copyright © 2017 Viro Media. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -#import - -class VRORendererConfiguration; - -@interface VROViewControllerGVR : UIViewController - -/* - Set this to true to force the view into landscape mode - when it appears. - */ -@property (readwrite, nonatomic) BOOL forceLandscape; - -- (id)initWithConfig:(VRORendererConfiguration)config; - -@end diff --git a/ios/ViroKit/VROViewControllerGVR.m b/ios/ViroKit/VROViewControllerGVR.m deleted file mode 100644 index 2587a1af..00000000 --- a/ios/ViroKit/VROViewControllerGVR.m +++ /dev/null @@ -1,129 +0,0 @@ -// -// VROViewControllerGVR.m -// ViroKit -// -// Created by Raj Advani on 11/30/17. -// Copyright © 2017 Viro Media. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -#import "VROViewControllerGVR.h" -#import "VROViewGVR.h" -#import "VRORendererConfiguration.h" - -@implementation VROViewControllerGVR { - VRORendererConfiguration _rendererConfig; -} - -- (id)initWithConfig:(VRORendererConfiguration)config { - self = [super init]; - if (self) { - _rendererConfig = config; - _forceLandscape = YES; - } - return self; -} - -- (VROViewGVR *)rendererView { - return (VROViewGVR *)self.view; -} - -- (void)dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -- (void)loadView { - self.view = [[VROViewGVR alloc] initWithFrame:[UIScreen mainScreen].bounds - config:_rendererConfig]; -} - -- (BOOL)shouldAutorotate { - return NO; -} - -- (UIInterfaceOrientationMask)supportedInterfaceOrientations { - return UIInterfaceOrientationMaskLandscapeRight; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - self.rendererView.paused = NO; - - // Force to landscape right; this appears to be the only reliable way to do this - // When we tried doing this any other way we run into a GVR bug where the viewport - // gets cut in half. Specifically this occurs when the device begins in portrait - // mode. - - // Note this fix sometimes creates an issue where the height of the *superview* - // becomes zero. We check for (and fix) this in VROViewGVR.layoutSubviews(). - if (self.forceLandscape) { - [[UIDevice currentDevice] setValue:[NSNumber numberWithInteger: UIInterfaceOrientationLandscapeRight] - forKey:@"orientation"]; - } -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - self.rendererView.paused = YES; - - // Since our orientation is fixed to landscape right in modal state, upon returning from the modal - // state, reset the UI orientation to the device's orientation. - if (self.isModal) { - [UIViewController attemptRotationToDeviceOrientation]; - } -} - -- (void)viewDidLoad { - [super viewDidLoad]; - - // We need device orientation change notifications to work. - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; - }); - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(didChangeOrientation:) - name:UIDeviceOrientationDidChangeNotification - object:nil]; -} - -- (void)didChangeOrientation:(NSNotification *)notification { - // Request a layout change on the render view since iOS does not call layoutSubviews on 180-degree - // orientation changes. - [self.view setNeedsLayout]; -} - -// Returns YES if this view controller is being presented. */ -- (BOOL)isModal { - if ([self presentingViewController]) { - return YES; - } - if ([[[self navigationController] presentingViewController] presentedViewController] == - [self navigationController]) { - return YES; - } - if ([[[self tabBarController] presentingViewController] - isKindOfClass:[UITabBarController class]]) { - return YES; - } - return NO; -} - -@end diff --git a/ios/ViroKit/VROViewGVR.h b/ios/ViroKit/VROViewGVR.h deleted file mode 100644 index 5f2940c0..00000000 --- a/ios/ViroKit/VROViewGVR.h +++ /dev/null @@ -1,41 +0,0 @@ -// -// VROViewGVR.h -// ViroRenderer -// -// Created by Raj Advani on 4/28/16. -// Copyright © 2016 Viro Media. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -#import -#import -#import -#import "VROView.h" - -class VRORendererConfiguration; - -@interface VROViewGVR : GLKView - -@property (readwrite, nonatomic) BOOL paused; -@property (readwrite, nonatomic) IBInspectable BOOL testingMode; - -- (instancetype)initWithFrame:(CGRect)frame config:(VRORendererConfiguration)config; - -@end diff --git a/ios/ViroKit/VROViewGVR.m b/ios/ViroKit/VROViewGVR.m deleted file mode 100644 index 47dc138a..00000000 --- a/ios/ViroKit/VROViewGVR.m +++ /dev/null @@ -1,555 +0,0 @@ -// -// VROViewGVR.m -// ViroRenderer -// -// Created by Raj Advani on 4/28/16. -// Copyright © 2016 Viro Media. All rights reserved. -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -#import "VROViewGVR.h" -#import -#import "VRORenderer.h" -#import "VROWeakProxy.h" -#import "VROPlatformUtil.h" -#import "VRORenderer.h" -#import "VROFieldOfView.h" -#import "VROViewport.h" -#import "VROReticle.h" -#import "VROAllocationTracker.h" -#import "VRORenderDelegateiOS.h" -#import "VROInputControllerCardboardiOS.h" -#import "VROInputControllerAR.h" -#import "VRODriverOpenGLiOSGVR.h" -#import "VROSceneRendererGVR.h" -#import "VROChoreographer.h" -#import "GVROverlayView.h" -#include "vr/gvr/capi/include/gvr_audio.h" - -@interface VROOverlayViewDelegate : NSObject - -@property (readwrite, nonatomic, weak) VROViewGVR *view; - -@end - -@interface VROViewGVR () { - std::shared_ptr _sceneController; - std::shared_ptr _renderDelegateWrapper; - std::shared_ptr _driver; - std::shared_ptr _inputControllerCardboard; - std::shared_ptr _inputControllerAR; - CADisplayLink *_displayLink; - GVROverlayView *_overlayView; - UITapGestureRecognizer *_tapGestureCardboard; - UITapGestureRecognizer *_tapGestureTouch; - UIPanGestureRecognizer *_dragGestureTouch; - UIRotationGestureRecognizer *_rotateGesture; - UIPinchGestureRecognizer *_pinchGesture; -} - -@property (readwrite, nonatomic) std::shared_ptr renderer; -@property (readwrite, nonatomic) std::shared_ptr sceneRenderer; -@property (readwrite, nonatomic) BOOL initialized; -@property (readwrite, nonatomic) BOOL VRModeEnabled; -@property (readwrite, nonatomic) VROOverlayViewDelegate *gvrDelegate; - -@end - -@implementation VROViewGVR - -@dynamic renderDelegate; -@dynamic sceneController; - -#pragma mark - Initialization - -- (instancetype)initWithCoder:(NSCoder *)coder { - self = [super initWithCoder:coder]; - if (self) { - VRORendererConfiguration config; - [self initRenderer:config]; - } - return self; -} - -- (instancetype)initWithFrame:(CGRect)frame config:(VRORendererConfiguration)config { - self = [super initWithFrame:frame]; - if (self) { - [self initRenderer:config]; - } - return self; -} - -- (void)dealloc { - VROThreadRestricted::unsetThread(); -} - -- (void)setTestingMode:(BOOL)testingMode { - _testingMode = testingMode; - if (_testingMode) { - [self setVrMode:true]; - } -} - -- (void)initRenderer:(VRORendererConfiguration)config { - VROPlatformSetType(VROPlatformType::iOSCardboard); - if (!self.context) { - EAGLContext *context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3]; - self.context = context; - } - VROThreadRestricted::setThread(VROThreadName::Renderer); - - _VRModeEnabled = YES; - _paused = YES; - - _overlayView = [[GVROverlayView alloc] initWithFrame:self.bounds]; - _overlayView.hidesBackButton = NO; - _overlayView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - [self addSubview:_overlayView]; - - /* - Create the delegate. - */ - _gvrDelegate = [[VROOverlayViewDelegate alloc] init]; - _gvrDelegate.view = self; - [_overlayView setDelegate:_gvrDelegate]; - - /* - Setup the GLKView. - */ - self.enableSetNeedsDisplay = NO; - self.drawableColorFormat = GLKViewDrawableColorFormatSRGBA8888; - self.drawableStencilFormat = GLKViewDrawableStencilFormat8; - self.drawableDepthFormat = GLKViewDrawableDepthFormat16; - self.drawableMultisample = GLKViewDrawableMultisample4X; - - [EAGLContext setCurrentContext:self.context]; - - /* - Disable going to sleep, and setup notifications. - */ - [UIApplication sharedApplication].idleTimerDisabled = YES; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(applicationWillResignActive:) - name:UIApplicationWillResignActiveNotification - object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(applicationDidBecomeActive:) - name:UIApplicationDidBecomeActiveNotification - object:nil]; - - /* - Create Viro renderer objects. - */ - _driver = std::make_shared(self, self.context); - _inputControllerCardboard = std::make_shared(_driver); - _inputControllerAR = std::make_shared(self.frame.size.width * self.contentScaleFactor, - self.frame.size.height * self.contentScaleFactor, - _driver); - - _renderer = std::make_shared(config, _inputControllerCardboard); - _sceneRenderer = std::make_shared(self.bounds.size.width * self.contentScaleFactor, - self.bounds.size.height * self.contentScaleFactor, - [[UIApplication sharedApplication] statusBarOrientation], - self.contentScaleFactor, _renderer, _driver); - - /* - Add a tap gesture to handle viewer trigger action. - */ - _tapGestureCardboard = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapWithCardboad:)]; - [self addGestureRecognizer:_tapGestureCardboard]; - - /* - Gestures used only for 360 mode. - */ - _tapGestureTouch = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTapWithTouch:)]; - _rotateGesture = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(handleRotate:)]; - _pinchGesture = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)]; - - /* - Use a pan gesture instead of a 0 second long press gesture recoginizer because - it seems to play better with the other two recoginizers. - */ - _dragGestureTouch= [[UIPanGestureRecognizer alloc] initWithTarget:self - action:@selector(handleDragWithTouch:)]; -} - -- (void)applicationWillResignActive:(NSNotification *)notification { - self.paused = YES; -} - -- (void)applicationDidBecomeActive:(NSNotification *)notification { - self.paused = NO; -} - -- (void)setVrMode:(BOOL)enabled { - if (_VRModeEnabled != enabled) { - _sceneRenderer->setVRModeEnabled(enabled); - _VRModeEnabled = enabled; - if(enabled) { - [self removeGestureRecognizer:_rotateGesture]; - [self removeGestureRecognizer:_pinchGesture]; - [self removeGestureRecognizer:_tapGestureTouch]; - [self addGestureRecognizer:_tapGestureCardboard]; - _renderer->setInputController(_inputControllerCardboard); - } else { - [self addGestureRecognizer:_rotateGesture]; - [self addGestureRecognizer:_pinchGesture]; - [self addGestureRecognizer:_tapGestureTouch]; - [self removeGestureRecognizer:_tapGestureCardboard]; - _renderer->setInputController(_inputControllerAR); - } - } - [self updateOverlayView]; -} - -- (void)setPaused:(BOOL)paused { - _paused = paused; - if (_paused) { - _renderer->getInputController()->onPause(); - _driver->pause(); - _sceneRenderer->pause(); - } - else { - _renderer->getInputController()->onResume(); - _driver->resume(); - _sceneRenderer->resume(); - } - _displayLink.paused = (self.superview == nil || _paused); -} - -- (BOOL)setShadowsEnabled:(BOOL)enabled { - return _renderer->setShadowsEnabled(enabled); -} - -- (BOOL)setHDREnabled:(BOOL)enabled { - return _renderer->setHDREnabled(enabled); -} - -- (BOOL)setPBREnabled:(BOOL)enabled { - return _renderer->setPBREnabled(enabled); -} - -- (BOOL)setBloomEnabled:(BOOL)enabled { - return _renderer->setBloomEnabled(enabled); -} - -- (void)didMoveToSuperview { - [super didMoveToSuperview]; - if (self.superview) { - [self startRenderer]; - } - else { - [self stopRenderer]; - } -} - -- (void)setFrame:(CGRect)frame { - [super setFrame:frame]; - if (_inputControllerAR) { - _inputControllerAR->setViewportSize(self.frame.size.width * self.contentScaleFactor, - self.frame.size.height * self.contentScaleFactor); - } -} - -- (void)layoutSubviews { - [super layoutSubviews]; - - // This sanity check fixes an issue where when we enter an app in portrait - // mode then enter GVR, the height goes to zero and results in an invalid - // framebuffer. This occurs because in VROViewControllerGVR we force the - // orientation to landscape right, during which some race condition occurs - // creating the distortion. (Note that we do this in VROViewControllerGVR - // because of a separate GVR issue that results in a half-size viewport). - // Effectively then this patches a bug caused by a patch of an underlying GVR - // issue. - if (self.bounds.size.height == 0 || self.bounds.size.width == 0) { - NSLog(@"Invalid bounds on GVR view (%f, %f): making fullscreen", - self.bounds.size.width, self.bounds.size.height); - if (self.superview) { - [self.superview setFrame:[UIScreen mainScreen].bounds]; - [self setFrame:self.superview.bounds]; - - NSLog(@"Corrected superview bounds to full screen (%f, %f)", - self.superview.frame.size.width, self.superview.frame.size.height); - } - } - - if (!_initialized) { - pinfo("Initializing GVR renderer with bounds (%f, %f)", self.bounds.size.width, self.bounds.size.height); - _initialized = YES; - [self bindDrawable]; - _sceneRenderer->initGL(); - } - - // This check is needed for some rare cases where we're getting layoutSubviews - // invoked mid-orientation change, resulting in 0 width or height - UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; - _sceneRenderer->setSurfaceSize(self.bounds.size.width * self.contentScaleFactor, - self.bounds.size.height * self.contentScaleFactor, - orientation); -} - -- (void)updateOverlayView { - // Transition view is always shown when VR mode is toggled ON. - _overlayView.hidesTransitionView = _overlayView.hidesTransitionView || !_VRModeEnabled; - _overlayView.hidesSettingsButton = !_VRModeEnabled; - _overlayView.hidesAlignmentMarker = !_VRModeEnabled; - _overlayView.hidesFullscreenButton = !_VRModeEnabled; - _overlayView.hidesCardboardButton = YES; - - [_overlayView setNeedsLayout]; -} - -#pragma mark - Gestures - -- (void)didTapWithCardboad:(id)sender { - std::shared_ptr baseController = _renderer->getInputController(); - std::shared_ptr cardboardController = std::dynamic_pointer_cast(baseController); - cardboardController->onScreenClicked(); -} - -- (void)didTapWithTouch:(UITapGestureRecognizer *)recognizer { - CGPoint location = [recognizer locationInView:[recognizer.view superview]]; - - VROVector3f viewportTouchPos = VROVector3f(location.x * self.contentScaleFactor, location.y * self.contentScaleFactor); - - if (recognizer.state == UIGestureRecognizerStateRecognized) { - _inputControllerAR->onScreenTouchDown(viewportTouchPos); - _inputControllerAR->onScreenTouchUp(viewportTouchPos); - } -} - -- (void)handleRotate:(UIRotationGestureRecognizer *)recognizer { - CGPoint location = [recognizer locationInView:[recognizer.view superview]]; - VROVector3f viewportTouchPos = VROVector3f(location.x * self.contentScaleFactor, location.y * self.contentScaleFactor); - - if(recognizer.state == UIGestureRecognizerStateBegan) { - _inputControllerAR->onRotateStart(viewportTouchPos); - } else if(recognizer.state == UIGestureRecognizerStateChanged) { - // Note: we need to "negate" the rotation because the value returned is "opposite" of our platform. - _inputControllerAR->onRotate(-recognizer.rotation); // already in radians - } else if(recognizer.state == UIGestureRecognizerStateEnded) { - _inputControllerAR->onRotateEnd(); - } -} - -- (void)handlePinch:(UIPinchGestureRecognizer *)recognizer { - CGPoint location = [recognizer locationInView:[recognizer.view superview]]; - VROVector3f viewportTouchPos = VROVector3f(location.x * self.contentScaleFactor, location.y * self.contentScaleFactor); - - if(recognizer.state == UIGestureRecognizerStateBegan) { - _inputControllerAR->onPinchStart(viewportTouchPos); - } else if(recognizer.state == UIGestureRecognizerStateChanged) { - _inputControllerAR->onPinchScale(recognizer.scale); - } else if(recognizer.state == UIGestureRecognizerStateEnded) { - _inputControllerAR->onPinchEnd(); - } -} - -- (void)handleDragWithTouch:(UIPanGestureRecognizer *)recognizer { - CGPoint location = [recognizer locationInView:[recognizer.view superview]]; - - VROVector3f viewportTouchPos = VROVector3f(location.x * self.contentScaleFactor, location.y * self.contentScaleFactor); - - if (recognizer.state == UIGestureRecognizerStateBegan) { - _inputControllerAR->onScreenTouchDown(viewportTouchPos); - } else if (recognizer.state == UIGestureRecognizerStateEnded) { - _inputControllerAR->onScreenTouchUp(viewportTouchPos); - } else { - _inputControllerAR->onScreenTouchMove(viewportTouchPos); - } -} - -#pragma mark - Rendering - -- (void)drawRect:(CGRect)rect { - [super drawRect:rect]; - if (!_initialized) { - pinfo("GVR not initialized, not drawing with bounds (%f, %f)", - self.bounds.size.width, self.bounds.size.height); - return; - } - @autoreleasepool { - _sceneRenderer->onDrawFrame(); - } -} - -- (void)startRenderer { - if (!_displayLink) { - VROWeakProxy *proxy = [VROWeakProxy weakProxyForObject:self]; - _displayLink = [CADisplayLink displayLinkWithTarget:proxy selector:@selector(display)]; - if ([_displayLink respondsToSelector:@selector(preferredFramesPerSecond)]) { - _displayLink.preferredFramesPerSecond = 60; - } - - [_displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; - _displayLink.paused = _paused; - } - - [self updateOverlayView]; -} - -- (void)stopRenderer { - [_displayLink invalidate]; - _displayLink = nil; -} - -#pragma mark - ViroView -- (void)recenterTracking { - _sceneRenderer->recenterTracking(); -} - -- (void)setRenderDelegate:(id)renderDelegate { - _renderDelegateWrapper = std::make_shared(renderDelegate); - self.renderer->setDelegate(_renderDelegateWrapper); -} - -- (void)setPointOfView:(std::shared_ptr)node { - self.renderer->setPointOfView(node); -} - -- (VROVector3f)unprojectPoint:(VROVector3f)point { - return self.renderer->unprojectPoint(point); -} - -- (VROVector3f)projectPoint:(VROVector3f)point { - return self.renderer->projectPoint(point); -} - -- (void)setSceneController:(std::shared_ptr) sceneController { - _sceneController = sceneController; - _renderer->setSceneController(_sceneController, _driver); -} - -- (void)setSceneController:(std::shared_ptr)sceneController - duration:(float)seconds - timingFunction:(VROTimingFunctionType)timingFunctionType { - _sceneController = sceneController; - _renderer->setSceneController(sceneController, seconds, timingFunctionType, _driver); -} - -- (std::shared_ptr)frameSynchronizer { - return _renderer->getFrameSynchronizer(); -} - -- (std::shared_ptr)renderer { - return _renderer; -} - -- (std::shared_ptr)choreographer { - return _renderer->getChoreographer(); -} - -- (NSString *)getPlatform { - return @"gvr"; -} - -- (NSString *)getHeadset { - return [NSString stringWithUTF8String:_renderer->getInputController()->getHeadset().c_str()]; -} - -- (NSString *)getController { - return [NSString stringWithUTF8String:_renderer->getInputController()->getController().c_str()]; -} - -- (void)setDebugHUDEnabled:(BOOL)enabled { - self.renderer->setDebugHUDEnabled(enabled); -} - -#pragma mark - Recording and Screenshots - -- (void)startVideoRecording:(NSString *)filename - saveToCameraRoll:(BOOL)saveToCamera - errorBlock:(VROViewRecordingErrorBlock)errorBlock { - // no-op -} - -- (void)startVideoRecording:(NSString *)fileName - withWatermark:(UIImage *)watermarkImage - withFrame:(CGRect)watermarkFrame - saveToCameraRoll:(BOOL)saveToCamera - errorBlock:(VROViewRecordingErrorBlock)errorBlock { - // no-op -} - -- (void)startVideoRecording:(NSString *)fileName - gifFile:(NSString *)gifFile - withWatermark:(UIImage *)watermarkImage - withFrame:(CGRect)watermarkFrame - saveToCameraRoll:(BOOL)saveToCamera - errorBlock:(VROViewRecordingErrorBlock)errorBlock { - // no-op -} - -- (void)stopVideoRecordingWithHandler:(VROViewWriteMediaFinishBlock)completionHandler { - // no-op -} - -- (void)stopVideoRecordingWithHandler:(VROViewWriteMediaFinishBlock)completionHandler mergeAudioTrack:(NSURL *)audioPath { - -} - -- (void)takeScreenshot:(NSString *)fileName - saveToCameraRoll:(BOOL)saveToCamera - withCompletionHandler:(VROViewWriteMediaFinishBlock)completionHandler { - // no-op -} - -@end - -#pragma mark - GVROverlayViewDelegate - -@implementation VROOverlayViewDelegate - -- (void)didTapBackButton { - VROViewGVR *view = self.view; - if (view) { - view.renderer->requestExitVR(); - } -} - -- (UIViewController *)parentViewController { - UIResponder *responder = self.view; - while ([responder isKindOfClass:[UIView class]]) { - responder = [responder nextResponder]; - } - return (UIViewController *)responder; -} - -- (UIViewController *)presentingViewControllerForSettingsDialog { - return [self parentViewController]; -} - -- (void)didPresentSettingsDialog:(BOOL)presented { - -} - -- (void)didChangeViewerProfile { - VROViewGVR *view = self.view; - if (view) { - self.view.sceneRenderer->refreshViewerProfile(); - } -} - -- (void)shouldDisableIdleTimer:(BOOL)shouldDisable { - [UIApplication sharedApplication].idleTimerDisabled = shouldDisable; -} - -@end diff --git a/ios/ViroKit/ViroKit.h b/ios/ViroKit/ViroKit.h index a9fcdb6b..0b9ed35d 100644 --- a/ios/ViroKit/ViroKit.h +++ b/ios/ViroKit/ViroKit.h @@ -39,8 +39,6 @@ FOUNDATION_EXPORT const unsigned char ViroKitVersionString[]; #import #import #import -#import -#import #import #import #import diff --git a/ios/ViroRenderer.xcodeproj/project.pbxproj b/ios/ViroRenderer.xcodeproj/project.pbxproj index 8598b40b..d91064b5 100644 --- a/ios/ViroRenderer.xcodeproj/project.pbxproj +++ b/ios/ViroRenderer.xcodeproj/project.pbxproj @@ -56,7 +56,6 @@ 13B67227212229B20040FB72 /* VROARFrameiOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FAE18C51EE79D6D0021C7BB /* VROARFrameiOS.cpp */; }; 13B67228212229B20040FB72 /* VRODebugHUD.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F705DE01E8ACFD0008BE8F8 /* VRODebugHUD.cpp */; }; 13B67229212229B20040FB72 /* VROChoreographer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F0E5E9A1F3BA9120007AD03 /* VROChoreographer.cpp */; }; - 13B6722A212229B20040FB72 /* VROViewGVR.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0FE66E1CD29BF900A4C297 /* VROViewGVR.m */; }; 13B6722B212229B20040FB72 /* VROHDRLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FEACEE420169EA90082D18B /* VROHDRLoader.cpp */; }; 13B6722C212229B20040FB72 /* VROARAnchoriOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FAE18BD1EE79D230021C7BB /* VROARAnchoriOS.cpp */; }; 13B6722D212229B20040FB72 /* VROMath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F517C451BD0474E0017C70B /* VROMath.cpp */; }; @@ -93,7 +92,6 @@ 13B67250212229B20040FB72 /* VROShaderModifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FDDB4AE1DB055A700DE0968 /* VROShaderModifier.cpp */; }; 13B67252212229B20040FB72 /* VROCameraTextureiOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FD06F1F1E832760003D3BC4 /* VROCameraTextureiOS.cpp */; }; 13B67253212229B20040FB72 /* VROARImperativeSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F828EF81FAF83840068159E /* VROARImperativeSession.cpp */; }; - 13B67254212229B20040FB72 /* VROGVRUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F1770191E74C01900235C21 /* VROGVRUtil.cpp */; }; 13B67255212229B20040FB72 /* VROThreadRestricted.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F705DEE1E8D5337008BE8F8 /* VROThreadRestricted.cpp */; }; 13B67256212229B20040FB72 /* VRORendererSettingsTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FA81D592023771900B04790 /* VRORendererSettingsTest.cpp */; }; 13B67257212229B20040FB72 /* VROGeometrySubstrate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F4DCE4C1BFD625900061DD7 /* VROGeometrySubstrate.cpp */; }; @@ -111,7 +109,6 @@ 13B67264212229B20040FB72 /* VROMaterial.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F4DCE321BFBCB5400061DD7 /* VROMaterial.cpp */; }; 13B67265212229B20040FB72 /* OrientationEKF.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8FDFA8A11BDEA7F800883EC0 /* OrientationEKF.mm */; }; 13B67266212229B20040FB72 /* VROTorusTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FD2A52A1F813C3E00E831A6 /* VROTorusTest.cpp */; }; - 13B67267212229B20040FB72 /* VROViewControllerGVR.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F1E00FF1FD10D7D00DF9068 /* VROViewControllerGVR.m */; }; 13B67268212229B20040FB72 /* VROPortalTreeRenderPass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F0E5EAA1F3C080E0007AD03 /* VROPortalTreeRenderPass.cpp */; }; 13B67269212229B20040FB72 /* VROConvert.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F53D39C1DCA883A001C91A8 /* VROConvert.cpp */; }; 13B6726A212229B20040FB72 /* VROLightingUBO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FDDB49C1DADB8C200DE0968 /* VROLightingUBO.cpp */; }; @@ -162,7 +159,6 @@ 13B6729B212229B20040FB72 /* VROPhotometricLightTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FE39F7D201FB2C60088A175 /* VROPhotometricLightTest.cpp */; }; 13B6729C212229B20040FB72 /* VROStringUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FCB10061DD10EF300FE425C /* VROStringUtil.cpp */; }; 13B6729D212229B20040FB72 /* VROVector4f.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F152A6D1C0D77AA00A211F8 /* VROVector4f.cpp */; }; - 13B6729E212229B20040FB72 /* VROSceneRendererGVR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F17D53A1FCE128600141042 /* VROSceneRendererGVR.cpp */; }; 13B6729F212229B20040FB72 /* VROTexture.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F4DCE351BFBCB8200061DD7 /* VROTexture.cpp */; }; 13B672A0212229B20040FB72 /* VROImagePostProcessOpenGL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F92091A1F3CE241003305C8 /* VROImagePostProcessOpenGL.cpp */; }; 13B672A1212229B20040FB72 /* VROStereoscopicTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FD2A52B1F813C3F00E831A6 /* VROStereoscopicTest.cpp */; }; @@ -273,7 +269,6 @@ 13B6731E212229B20040FB72 /* VROPostProcessEffectFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = A59E11391F53951700EB2CEB /* VROPostProcessEffectFactory.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B6731F212229B20040FB72 /* VRORenderTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0E5E931F3B4E170007AD03 /* VRORenderTarget.h */; }; 13B67320212229B20040FB72 /* VROTextureReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FEACF1320191F280082D18B /* VROTextureReference.h */; }; - 13B67321212229B20040FB72 /* VROSceneRendererGVR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F17D5391FCE128600141042 /* VROSceneRendererGVR.h */; }; 13B67322212229B20040FB72 /* VROARImperativeSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F828EF91FAF83840068159E /* VROARImperativeSession.h */; }; 13B67323212229B20040FB72 /* VROParticle.h in Headers */ = {isa = PBXBuildFile; fileRef = A517D2D51F44AC5500A22219 /* VROParticle.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B67324212229B20040FB72 /* VROTextFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F201C5E2101624500637A75 /* VROTextFormatter.h */; }; @@ -290,7 +285,6 @@ 13B6732F212229B20040FB72 /* VROPhysicsBody.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EC65B41EBFF42100FE220E /* VROPhysicsBody.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B67330212229B20040FB72 /* VROImageShaderProgram.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F9209131F3CAF72003305C8 /* VROImageShaderProgram.h */; }; 13B67331212229B20040FB72 /* VROPhysicsMotionState.h in Headers */ = {isa = PBXBuildFile; fileRef = A538C5AC1EC63EDD00A724F0 /* VROPhysicsMotionState.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 13B67332212229B20040FB72 /* VROViewControllerGVR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F1E00FE1FD10D7D00DF9068 /* VROViewControllerGVR.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B67333212229B20040FB72 /* VROPhysicsWorld.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EC65961EBD16F000FE220E /* VROPhysicsWorld.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B67334212229B20040FB72 /* VROPBRDirectTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F3CE70A201113B900FF0214 /* VROPBRDirectTest.h */; }; 13B67335212229B20040FB72 /* VROPhysicsShape.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EC65941EBD16F000FE220E /* VROPhysicsShape.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -342,7 +336,6 @@ 13B67366212229B20040FB72 /* VROShaderFactory.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FCE921E1F44E99900C699D5 /* VROShaderFactory.h */; }; 13B67367212229B20040FB72 /* VRODualQuaternion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F129FAC1ED4A38600341D83 /* VRODualQuaternion.h */; }; 13B67368212229B20040FB72 /* VROVectorizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F201C562101597200637A75 /* VROVectorizer.h */; }; - 13B6736A212229B20040FB72 /* VROViewGVR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0FE66D1CD29BF900A4C297 /* VROViewGVR.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B6736B212229B20040FB72 /* VROAllocationTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F83DEA91C49B0540089C31A /* VROAllocationTracker.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B6736C212229B20040FB72 /* VROARFrameInertial.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F3488A91EE83DD3008917CB /* VROARFrameInertial.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B6736E212229B20040FB72 /* VRODriver.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FA9D0A21CC947DD00B00B93 /* VRODriver.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -358,7 +351,6 @@ 13B6737A212229B20040FB72 /* VROARDeclarativePlane.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A11C8F41EF5A8E30003E829 /* VROARDeclarativePlane.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B6737B212229B20040FB72 /* VROGeometryElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F4DCE3C1BFBE54200061DD7 /* VROGeometryElement.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B6737D212229B20040FB72 /* VROPerfTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FD2A51F1F813C3C00E831A6 /* VROPerfTest.h */; }; - 13B6737E212229B20040FB72 /* VRODisplayOpenGLiOSGVR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FEF371D1FCF775D00FE7D56 /* VRODisplayOpenGLiOSGVR.h */; }; 13B6737F212229B20040FB72 /* VROARConstraintMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A11C8F71EF5B2270003E829 /* VROARConstraintMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B67380212229B20040FB72 /* VRONormalMapTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FD2A5271F813C3E00E831A6 /* VRONormalMapTest.h */; }; 13B67381212229B20040FB72 /* VROGeometrySource.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F4DCE3F1BFBE97600061DD7 /* VROGeometrySource.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -372,7 +364,6 @@ 13B6738A212229B20040FB72 /* VROSoundData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A130DA01E4018250050D83B /* VROSoundData.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B6738B212229B20040FB72 /* VROPortalFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F1DF5A81F36408700886805 /* VROPortalFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B6738C212229B20040FB72 /* VROWeakProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AABB6FA1F1ECD4E00D48D5C /* VROWeakProxy.h */; }; - 13B6738D212229B20040FB72 /* VRODriverOpenGLiOSGVR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FEF371F1FCF77A800FE7D56 /* VRODriverOpenGLiOSGVR.h */; }; 13B6738E212229B20040FB72 /* VROARImageAnchor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AE44C972021317A00CE8394 /* VROARImageAnchor.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B6738F212229B20040FB72 /* VROAnimationGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FB2B5931E1445BB00EDB629 /* VROAnimationGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; 13B67390212229B20040FB72 /* VROSoundDelegateInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A130D741E3A93720050D83B /* VROSoundDelegateInternal.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -706,9 +697,7 @@ 8F0F13EB21934D6000E8810B /* bumblebee_shadow.png in Resources */ = {isa = PBXBuildFile; fileRef = 8F0F13DB21934D6000E8810B /* bumblebee_shadow.png */; }; 8F0F13EE2193812E00E8810B /* san_giuseppe_bridge_1k.hdr in Resources */ = {isa = PBXBuildFile; fileRef = 8F0F13ED2193812E00E8810B /* san_giuseppe_bridge_1k.hdr */; }; 8F0FE65F1CD129FF00A4C297 /* VROFrameSynchronizer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0FE65E1CD129CE00A4C297 /* VROFrameSynchronizer.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8F0FE6701CD29BF900A4C297 /* VROViewGVR.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F0FE66E1CD29BF900A4C297 /* VROViewGVR.m */; }; 8F0FE6751CD2D3FD00A4C297 /* VROViewMetal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FDDE2061CCFD69D00674DE2 /* VROViewMetal.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8F0FE6761CD2D47900A4C297 /* VROViewGVR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F0FE66D1CD29BF900A4C297 /* VROViewGVR.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8F0FE67A1CD3DFF800A4C297 /* image_fsh.glsl in Resources */ = {isa = PBXBuildFile; fileRef = 8F0FE6781CD3DFF800A4C297 /* image_fsh.glsl */; }; 8F0FE67B1CD3DFF800A4C297 /* image_vsh.glsl in Resources */ = {isa = PBXBuildFile; fileRef = 8F0FE6791CD3DFF800A4C297 /* image_vsh.glsl */; }; 8F0FE67E1CD3E12F00A4C297 /* VROShaderProgram.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F0FE67C1CD3E12F00A4C297 /* VROShaderProgram.cpp */; }; @@ -737,11 +726,8 @@ 8F129FC61EDF6AE500341D83 /* VROViewAR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F129FC41EDF6AE500341D83 /* VROViewAR.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8F140FCF1E56658700355A1E /* card_main.ktx in Resources */ = {isa = PBXBuildFile; fileRef = 8F140FCE1E56658700355A1E /* card_main.ktx */; }; 8F1664A61E5E43260062EBCE /* Accelerate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F1664A51E5E43260062EBCE /* Accelerate.framework */; }; - 8F17D53C1FCE128600141042 /* VROSceneRendererGVR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F17D5391FCE128600141042 /* VROSceneRendererGVR.h */; }; - 8F17D53D1FCE128600141042 /* VROSceneRendererGVR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F17D53A1FCE128600141042 /* VROSceneRendererGVR.cpp */; }; 8F17D5401FCE165400141042 /* VROViewRecorder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F17D53E1FCE165400141042 /* VROViewRecorder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8F17D5411FCE165400141042 /* VROViewRecorder.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8F17D53F1FCE165400141042 /* VROViewRecorder.mm */; }; - 8F17D5421FCF1E7500141042 /* VROGVRUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F1770191E74C01900235C21 /* VROGVRUtil.cpp */; }; 8F1B4A121F64B61E00156809 /* portal_ship_specular.png in Resources */ = {isa = PBXBuildFile; fileRef = 8F1B4A011F64B61A00156809 /* portal_ship_specular.png */; }; 8F1B4A131F64B61E00156809 /* portal_ship.vrx in Resources */ = {isa = PBXBuildFile; fileRef = 8F1B4A021F64B61B00156809 /* portal_ship.vrx */; }; 8F1B4A141F64B61E00156809 /* portal_window_frame_diffuse.png in Resources */ = {isa = PBXBuildFile; fileRef = 8F1B4A031F64B61B00156809 /* portal_window_frame_diffuse.png */; }; @@ -768,8 +754,6 @@ 8F1DE3BC21221DDD00C8749D /* VROAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F1DE3BB21221DDD00C8749D /* VROAtomic.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8F1DF5A91F36408700886805 /* VROPortalFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F1DF5A71F36408700886805 /* VROPortalFrame.cpp */; }; 8F1DF5AA1F36408700886805 /* VROPortalFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F1DF5A81F36408700886805 /* VROPortalFrame.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8F1E01001FD10D7D00DF9068 /* VROViewControllerGVR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F1E00FE1FD10D7D00DF9068 /* VROViewControllerGVR.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 8F1E01011FD10D7D00DF9068 /* VROViewControllerGVR.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F1E00FF1FD10D7D00DF9068 /* VROViewControllerGVR.m */; }; 8F201C4F21010E0B00637A75 /* VROPolygonTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F201C4D21010E0B00637A75 /* VROPolygonTest.cpp */; }; 8F201C5021010E0B00637A75 /* VROPolygonTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F201C4E21010E0B00637A75 /* VROPolygonTest.h */; }; 8F201C572101597200637A75 /* VROVectorizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8F201C552101597200637A75 /* VROVectorizer.cpp */; }; @@ -1402,6 +1386,10 @@ 8FE52F4321E835BA00BA63D4 /* VROObjectRecognizeriOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE52F3F21E835BA00BA63D4 /* VROObjectRecognizeriOS.h */; }; 8FE52F4A21E9402400BA63D4 /* VROObjectRecognizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FE52F4821E9402400BA63D4 /* VROObjectRecognizer.cpp */; }; 8FE52F4B21E9402400BA63D4 /* VROObjectRecognizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FE52F4821E9402400BA63D4 /* VROObjectRecognizer.cpp */; }; + 8FE572F3246A15C200CD3ED5 /* VROGVRUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE572F1246A15C200CD3ED5 /* VROGVRUtil.h */; }; + 8FE572F4246A15C200CD3ED5 /* VROGVRUtil.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FE572F1246A15C200CD3ED5 /* VROGVRUtil.h */; }; + 8FE572F5246A15C200CD3ED5 /* VROGVRUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FE572F2246A15C200CD3ED5 /* VROGVRUtil.cpp */; }; + 8FE572F6246A15C200CD3ED5 /* VROGVRUtil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FE572F2246A15C200CD3ED5 /* VROGVRUtil.cpp */; }; 8FEACED220114B680082D18B /* pbr_fsh.glsl in Resources */ = {isa = PBXBuildFile; fileRef = 8F3CE7072010EFE900FF0214 /* pbr_fsh.glsl */; }; 8FEACED82012605F0082D18B /* pbr_sample_roughness.png in Resources */ = {isa = PBXBuildFile; fileRef = 8FEACED32012605E0082D18B /* pbr_sample_roughness.png */; }; 8FEACED92012605F0082D18B /* pbr_sample_ao.png in Resources */ = {isa = PBXBuildFile; fileRef = 8FEACED42012605F0082D18B /* pbr_sample_ao.png */; }; @@ -1433,8 +1421,6 @@ 8FEACF1420191F280082D18B /* VROTextureReference.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FEACF1220191F280082D18B /* VROTextureReference.cpp */; }; 8FEACF1520191F280082D18B /* VROTextureReference.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FEACF1320191F280082D18B /* VROTextureReference.h */; }; 8FEACF172019223C0082D18B /* VROShaderCapabilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8FEACF162019223C0082D18B /* VROShaderCapabilities.cpp */; }; - 8FEF37201FCF77B600FE7D56 /* VRODriverOpenGLiOSGVR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FEF371F1FCF77A800FE7D56 /* VRODriverOpenGLiOSGVR.h */; }; - 8FEF37211FCF77BA00FE7D56 /* VRODisplayOpenGLiOSGVR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FEF371D1FCF775D00FE7D56 /* VRODisplayOpenGLiOSGVR.h */; }; 8FF214111F314E0E005ACA96 /* VROTree.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FF214101F314E0E005ACA96 /* VROTree.h */; settings = {ATTRIBUTES = (Public, ); }; }; 8FF5CCB51F28F5BA007C7F52 /* porsche911.vrx in Resources */ = {isa = PBXBuildFile; fileRef = 8FF5CCB31F28F5BA007C7F52 /* porsche911.vrx */; }; 8FF5CCB61F28F5BA007C7F52 /* Porsche911turboS_diff.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 8FF5CCB41F28F5BA007C7F52 /* Porsche911turboS_diff.jpg */; }; @@ -1738,8 +1724,6 @@ 8F0F13DB21934D6000E8810B /* bumblebee_shadow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = bumblebee_shadow.png; path = ViroSample/bumblebee_shadow.png; sourceTree = ""; }; 8F0F13ED2193812E00E8810B /* san_giuseppe_bridge_1k.hdr */ = {isa = PBXFileReference; lastKnownFileType = file; name = san_giuseppe_bridge_1k.hdr; path = ViroSample/san_giuseppe_bridge_1k.hdr; sourceTree = ""; }; 8F0FE65E1CD129CE00A4C297 /* VROFrameSynchronizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VROFrameSynchronizer.h; sourceTree = ""; }; - 8F0FE66D1CD29BF900A4C297 /* VROViewGVR.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VROViewGVR.h; sourceTree = ""; }; - 8F0FE66E1CD29BF900A4C297 /* VROViewGVR.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = VROViewGVR.m; sourceTree = ""; }; 8F0FE6781CD3DFF800A4C297 /* image_fsh.glsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = image_fsh.glsl; sourceTree = ""; }; 8F0FE6791CD3DFF800A4C297 /* image_vsh.glsl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = image_vsh.glsl; sourceTree = ""; }; 8F0FE67C1CD3E12F00A4C297 /* VROShaderProgram.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = VROShaderProgram.cpp; sourceTree = ""; }; @@ -1783,10 +1767,6 @@ 8F152A821C121A5500A211F8 /* VROTextureSubstrateMetal.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = VROTextureSubstrateMetal.cpp; sourceTree = ""; }; 8F152A831C121A5500A211F8 /* VROTextureSubstrateMetal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VROTextureSubstrateMetal.h; sourceTree = ""; }; 8F1664A51E5E43260062EBCE /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; - 8F1770191E74C01900235C21 /* VROGVRUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VROGVRUtil.cpp; sourceTree = ""; }; - 8F17701A1E74C01900235C21 /* VROGVRUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VROGVRUtil.h; sourceTree = ""; }; - 8F17D5391FCE128600141042 /* VROSceneRendererGVR.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VROSceneRendererGVR.h; sourceTree = ""; }; - 8F17D53A1FCE128600141042 /* VROSceneRendererGVR.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = VROSceneRendererGVR.cpp; sourceTree = ""; }; 8F17D53E1FCE165400141042 /* VROViewRecorder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VROViewRecorder.h; sourceTree = ""; }; 8F17D53F1FCE165400141042 /* VROViewRecorder.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = VROViewRecorder.mm; sourceTree = ""; }; 8F1B4A011F64B61A00156809 /* portal_ship_specular.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = portal_ship_specular.png; path = ViroSample/portal_ship_specular.png; sourceTree = ""; }; @@ -1816,8 +1796,6 @@ 8F1DE3BB21221DDD00C8749D /* VROAtomic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VROAtomic.h; sourceTree = ""; }; 8F1DF5A71F36408700886805 /* VROPortalFrame.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = VROPortalFrame.cpp; sourceTree = ""; }; 8F1DF5A81F36408700886805 /* VROPortalFrame.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VROPortalFrame.h; sourceTree = ""; }; - 8F1E00FE1FD10D7D00DF9068 /* VROViewControllerGVR.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VROViewControllerGVR.h; sourceTree = ""; }; - 8F1E00FF1FD10D7D00DF9068 /* VROViewControllerGVR.m */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = VROViewControllerGVR.m; sourceTree = ""; }; 8F1F06581EF06FBB006FC8C2 /* VROARAnchor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VROARAnchor.h; sourceTree = ""; }; 8F1F06591EF06FBB006FC8C2 /* VROARCamera.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VROARCamera.h; sourceTree = ""; }; 8F1F065A1EF06FBB006FC8C2 /* VROARFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VROARFrame.h; sourceTree = ""; }; @@ -2416,6 +2394,8 @@ 8FE52F3E21E835BA00BA63D4 /* VROObjectRecognizeriOS.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = VROObjectRecognizeriOS.cpp; sourceTree = ""; }; 8FE52F3F21E835BA00BA63D4 /* VROObjectRecognizeriOS.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VROObjectRecognizeriOS.h; sourceTree = ""; }; 8FE52F4821E9402400BA63D4 /* VROObjectRecognizer.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = VROObjectRecognizer.cpp; sourceTree = ""; }; + 8FE572F1246A15C200CD3ED5 /* VROGVRUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VROGVRUtil.h; sourceTree = ""; }; + 8FE572F2246A15C200CD3ED5 /* VROGVRUtil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VROGVRUtil.cpp; sourceTree = ""; }; 8FEA6C981BE2BA7700C2CD0F /* VRODistortionMesh.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = VRODistortionMesh.cpp; sourceTree = ""; }; 8FEA6C991BE2BA7700C2CD0F /* VRODistortionMesh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VRODistortionMesh.h; sourceTree = ""; }; 8FEACED32012605E0082D18B /* pbr_sample_roughness.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = pbr_sample_roughness.png; path = ViroSample/pbr_sample_roughness.png; sourceTree = ""; }; @@ -2449,8 +2429,6 @@ 8FEACF1220191F280082D18B /* VROTextureReference.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = VROTextureReference.cpp; sourceTree = ""; }; 8FEACF1320191F280082D18B /* VROTextureReference.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VROTextureReference.h; sourceTree = ""; }; 8FEACF162019223C0082D18B /* VROShaderCapabilities.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = VROShaderCapabilities.cpp; sourceTree = ""; }; - 8FEF371D1FCF775D00FE7D56 /* VRODisplayOpenGLiOSGVR.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VRODisplayOpenGLiOSGVR.h; sourceTree = ""; }; - 8FEF371F1FCF77A800FE7D56 /* VRODriverOpenGLiOSGVR.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VRODriverOpenGLiOSGVR.h; sourceTree = ""; }; 8FF214101F314E0E005ACA96 /* VROTree.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VROTree.h; sourceTree = ""; }; 8FF253B11DC9398A00C1C5C7 /* VRODefines.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VRODefines.h; sourceTree = ""; }; 8FF4D7A71C0D45DA006D6157 /* VROMaterialSubstrateMetal.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = VROMaterialSubstrateMetal.cpp; sourceTree = ""; }; @@ -2687,17 +2665,9 @@ 8F0FE6621CD25A3500A4C297 /* GVR */ = { isa = PBXGroup; children = ( - 8F0FE66D1CD29BF900A4C297 /* VROViewGVR.h */, - 8F0FE66E1CD29BF900A4C297 /* VROViewGVR.m */, - 8F1E00FE1FD10D7D00DF9068 /* VROViewControllerGVR.h */, - 8F1E00FF1FD10D7D00DF9068 /* VROViewControllerGVR.m */, - 8F17D5391FCE128600141042 /* VROSceneRendererGVR.h */, - 8F17D53A1FCE128600141042 /* VROSceneRendererGVR.cpp */, A58697831E3084A400191090 /* VROInputControllerCardboardiOS.h */, A58697821E3084A400191090 /* VROInputControllerCardboardiOS.cpp */, A58697841E3084A400191090 /* VROInputPresenterCardboardiOS.h */, - 8FEF371D1FCF775D00FE7D56 /* VRODisplayOpenGLiOSGVR.h */, - 8FEF371F1FCF77A800FE7D56 /* VRODriverOpenGLiOSGVR.h */, ); name = GVR; sourceTree = ""; @@ -3183,6 +3153,8 @@ 8F5C414B1BD825A9006D7A77 /* Util */ = { isa = PBXGroup; children = ( + 8FE572F2246A15C200CD3ED5 /* VROGVRUtil.cpp */, + 8FE572F1246A15C200CD3ED5 /* VROGVRUtil.h */, 8FC542942297598A00D2AFBB /* cnpy.h */, 8FC542932297598A00D2AFBB /* cnpy.cpp */, 8F7569DB21962AAC00730FB3 /* gzip_stream.cpp */, @@ -3190,8 +3162,6 @@ 8F87517E20629F45002D9BF8 /* VROJenkinsHash.cpp */, 8F87517B206298C2002D9BF8 /* VROSparseBitSet.h */, 8F87517C206298C2002D9BF8 /* VROSparseBitSet.cpp */, - 8F17701A1E74C01900235C21 /* VROGVRUtil.h */, - 8F1770191E74C01900235C21 /* VROGVRUtil.cpp */, 8FB2B58B1E143F7900EDB629 /* optional.hpp */, 8FF214101F314E0E005ACA96 /* VROTree.h */, 8F83DEA91C49B0540089C31A /* VROAllocationTracker.h */, @@ -4023,7 +3993,6 @@ 8FE52F3A21E82A8400BA63D4 /* VROObjectRecognitionTest.h in Headers */, 13B67320212229B20040FB72 /* VROTextureReference.h in Headers */, 8A291A1D21DD533300BB3934 /* VROBodyTracker.h in Headers */, - 13B67321212229B20040FB72 /* VROSceneRendererGVR.h in Headers */, 13B67322212229B20040FB72 /* VROARImperativeSession.h in Headers */, 13B67323212229B20040FB72 /* VROParticle.h in Headers */, 13B67324212229B20040FB72 /* VROTextFormatter.h in Headers */, @@ -4045,7 +4014,6 @@ 13B6732F212229B20040FB72 /* VROPhysicsBody.h in Headers */, 13B67330212229B20040FB72 /* VROImageShaderProgram.h in Headers */, 13B67331212229B20040FB72 /* VROPhysicsMotionState.h in Headers */, - 13B67332212229B20040FB72 /* VROViewControllerGVR.h in Headers */, 13B67333212229B20040FB72 /* VROPhysicsWorld.h in Headers */, 13B67334212229B20040FB72 /* VROPBRDirectTest.h in Headers */, 13B67335212229B20040FB72 /* VROPhysicsShape.h in Headers */, @@ -4104,7 +4072,6 @@ 13B67366212229B20040FB72 /* VROShaderFactory.h in Headers */, 13B67367212229B20040FB72 /* VRODualQuaternion.h in Headers */, 13B67368212229B20040FB72 /* VROVectorizer.h in Headers */, - 13B6736A212229B20040FB72 /* VROViewGVR.h in Headers */, 13B6736B212229B20040FB72 /* VROAllocationTracker.h in Headers */, 13B6736C212229B20040FB72 /* VROARFrameInertial.h in Headers */, 13B6736E212229B20040FB72 /* VRODriver.h in Headers */, @@ -4116,13 +4083,13 @@ 13B67375212229B20040FB72 /* VROShaderCapabilities.h in Headers */, 13B67376212229B20040FB72 /* VROFrameSynchronizerInternal.h in Headers */, 13B67377212229B20040FB72 /* VROVideoTextureCacheOpenGL.h in Headers */, + 8FE572F4246A15C200CD3ED5 /* VROGVRUtil.h in Headers */, 13B67378212229B20040FB72 /* VROARHitTestResult.h in Headers */, 13B67379212229B20040FB72 /* VROGeometry.h in Headers */, 8FE52F4321E835BA00BA63D4 /* VROObjectRecognizeriOS.h in Headers */, 13B6737A212229B20040FB72 /* VROARDeclarativePlane.h in Headers */, 13B6737B212229B20040FB72 /* VROGeometryElement.h in Headers */, 13B6737D212229B20040FB72 /* VROPerfTest.h in Headers */, - 13B6737E212229B20040FB72 /* VRODisplayOpenGLiOSGVR.h in Headers */, 13B6737F212229B20040FB72 /* VROARConstraintMatcher.h in Headers */, 13B67380212229B20040FB72 /* VRONormalMapTest.h in Headers */, 13B67381212229B20040FB72 /* VROGeometrySource.h in Headers */, @@ -4140,7 +4107,6 @@ 13B6738A212229B20040FB72 /* VROSoundData.h in Headers */, 13B6738B212229B20040FB72 /* VROPortalFrame.h in Headers */, 13B6738C212229B20040FB72 /* VROWeakProxy.h in Headers */, - 13B6738D212229B20040FB72 /* VRODriverOpenGLiOSGVR.h in Headers */, A5DA443121AF473600F86923 /* VROIKRig.h in Headers */, 13B6738E212229B20040FB72 /* VROARImageAnchor.h in Headers */, 13B6738F212229B20040FB72 /* VROAnimationGroup.h in Headers */, @@ -4368,7 +4334,6 @@ 8F0E5E951F3B4E170007AD03 /* VRORenderTarget.h in Headers */, 8FE52F3921E82A8400BA63D4 /* VROObjectRecognitionTest.h in Headers */, 8FEACF1520191F280082D18B /* VROTextureReference.h in Headers */, - 8F17D53C1FCE128600141042 /* VROSceneRendererGVR.h in Headers */, 8A53ABF2212B824A0005D7F9 /* VROARImageDatabase.h in Headers */, 8F828EFB1FAF83840068159E /* VROARImperativeSession.h in Headers */, A517D2DE1F4CB1B400A22219 /* VROParticle.h in Headers */, @@ -4387,7 +4352,6 @@ A5EC65B71EBFF5A100FE220E /* VROPhysicsBody.h in Headers */, 8F9209151F3CAF72003305C8 /* VROImageShaderProgram.h in Headers */, A538C5AD1EC63EEF00A724F0 /* VROPhysicsMotionState.h in Headers */, - 8F1E01001FD10D7D00DF9068 /* VROViewControllerGVR.h in Headers */, A5EC659F1EBD34C000FE220E /* VROPhysicsWorld.h in Headers */, 8F3CE70C201113B900FF0214 /* VROPBRDirectTest.h in Headers */, A5EC65B81EC004E100FE220E /* VROPhysicsShape.h in Headers */, @@ -4450,7 +4414,6 @@ 8FA9D6D52226EED70003C9D2 /* VROPoseFilterBoneDistance.h in Headers */, 8FAE505C2238881E0043220B /* VROAVCaptureController.h in Headers */, 8F201C582101597200637A75 /* VROVectorizer.h in Headers */, - 8F0FE6761CD2D47900A4C297 /* VROViewGVR.h in Headers */, 8F83DEAB1C49B0540089C31A /* VROAllocationTracker.h in Headers */, 8F3488B11EE83DD3008917CB /* VROARFrameInertial.h in Headers */, 8FC542842295D98700D2AFBB /* VROBodyMesheriOS.h in Headers */, @@ -4463,6 +4426,7 @@ 8F4AD9211D42D60C0044B3F0 /* VROFrameSynchronizerInternal.h in Headers */, 8FCB10251DD544E800FE425C /* VROVideoTextureCacheOpenGL.h in Headers */, 8FE382151EF06FED005038CB /* VROARHitTestResult.h in Headers */, + 8FE572F3246A15C200CD3ED5 /* VROGVRUtil.h in Headers */, 8FD4DF341C18F500003DC425 /* VROGeometry.h in Headers */, 8A11C8F51EF5AB9D0003E829 /* VROARDeclarativePlane.h in Headers */, 8FE52F4221E835BA00BA63D4 /* VROObjectRecognizeriOS.h in Headers */, @@ -4471,7 +4435,6 @@ 8FD4DF351C18F500003DC425 /* VROGeometryElement.h in Headers */, 8B99890421463D6C00EA9ED3 /* VROBodyTrackerTest.h in Headers */, 8FD2A53F1F813C4100E831A6 /* VROPerfTest.h in Headers */, - 8FEF37211FCF77BA00FE7D56 /* VRODisplayOpenGLiOSGVR.h in Headers */, 8A11C8F91EF5B2270003E829 /* VROARConstraintMatcher.h in Headers */, 8FD2A5471F813C4100E831A6 /* VRONormalMapTest.h in Headers */, 8FD4DF361C18F500003DC425 /* VROGeometrySource.h in Headers */, @@ -4488,7 +4451,6 @@ 8F1DF5AA1F36408700886805 /* VROPortalFrame.h in Headers */, 8AABB6FC1F1ECD4E00D48D5C /* VROWeakProxy.h in Headers */, A5A1074A212D5188008B2DFB /* gif_lib_private.h in Headers */, - 8FEF37201FCF77B600FE7D56 /* VRODriverOpenGLiOSGVR.h in Headers */, 8AE44C982021317A00CE8394 /* VROARImageAnchor.h in Headers */, 8FB2B5951E1445BB00EDB629 /* VROAnimationGroup.h in Headers */, 8A130D751E3A937D0050D83B /* VROSoundDelegateInternal.h in Headers */, @@ -4716,7 +4678,6 @@ 13B67319212229B20040FB72 /* Headers */, 13B67454212229B20040FB72 /* Resources */, 13B67472212229B20040FB72 /* Copy GLM Files to Framework */, - 13B67474212229B20040FB72 /* [CP] Copy Pods Resources */, 13B67475212229B20040FB72 /* Lipo Framework and Copy to Bridge */, 13B67476212229B20040FB72 /* Lipo Framework and Copy to Bridge (build intermediates for Jenkins) */, ); @@ -4738,8 +4699,6 @@ 8F517BB31BCDA2BD0017C70B /* Frameworks */, 8F517BB41BCDA2BD0017C70B /* Resources */, 8F129FAA1ECF323300341D83 /* Embed Frameworks */, - 6AA52EEFC1FD979FA95B9A4D /* [CP] Embed Pods Frameworks */, - 7C01BF43D020C7409FBEF14B /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -4761,7 +4720,6 @@ 8FD4DECA1C18ECD4003DC425 /* Headers */, 8FD4DECB1C18ECD4003DC425 /* Resources */, 8AE44C932021084A00CE8394 /* Copy GLM Files to Framework */, - C97786BFF2EA12734F1F7046 /* [CP] Copy Pods Resources */, 8A8B69DD2036344C00D98723 /* Lipo Framework and Copy to Bridge */, E82CFD5E20AECB790091154F /* Lipo Framework and Copy to Bridge (build intermediates for Jenkins) */, ); @@ -5187,32 +5145,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 13B67474212229B20040FB72 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-ViroKit_static_lib/Pods-ViroKit_static_lib-resources.sh", - "${PODS_ROOT}/GVRSDK/Resources/CardboardSDK.bundle", - "${PODS_ROOT}/GVRSDK/Resources/GoogleKitCore.bundle", - "${PODS_ROOT}/GVRSDK/Resources/GoogleKitDialogs.bundle", - "${PODS_ROOT}/GVRSDK/Resources/GoogleKitHUD.bundle", - "${PODS_ROOT}/GVRSDK/Resources/MaterialRobotoFontLoader.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CardboardSDK.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleKitCore.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleKitDialogs.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleKitHUD.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialRobotoFontLoader.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ViroKit_static_lib/Pods-ViroKit_static_lib-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 13B67475212229B20040FB72 /* Lipo Framework and Copy to Bridge */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -5261,52 +5193,6 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 6AA52EEFC1FD979FA95B9A4D /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-ViroSample/Pods-ViroSample-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/GTMSessionFetcher-framework/GTMSessionFetcher.framework", - "${BUILT_PRODUCTS_DIR}/GoogleToolboxForMac-framework/GoogleToolboxForMac.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleToolboxForMac.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ViroSample/Pods-ViroSample-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 7C01BF43D020C7409FBEF14B /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-ViroSample/Pods-ViroSample-resources.sh", - "${PODS_ROOT}/GVRSDK/Resources/CardboardSDK.bundle", - "${PODS_ROOT}/GVRSDK/Resources/GoogleKitCore.bundle", - "${PODS_ROOT}/GVRSDK/Resources/GoogleKitDialogs.bundle", - "${PODS_ROOT}/GVRSDK/Resources/GoogleKitHUD.bundle", - "${PODS_ROOT}/GVRSDK/Resources/MaterialRobotoFontLoader.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CardboardSDK.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleKitCore.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleKitDialogs.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleKitHUD.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialRobotoFontLoader.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ViroSample/Pods-ViroSample-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; 8A8B69DD2036344C00D98723 /* Lipo Framework and Copy to Bridge */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -5322,32 +5208,6 @@ shellScript = "VIRO_FRAMEWORK_PATH=$PROJECT_DIR/../../viro/ios/dist/ViroRenderer\nVIRO_DEVICE_FRAMEWORK=$VIRO_FRAMEWORK_PATH/armv7_arm64\nVIRO_SIMULATOR_FRAMEWORK=$VIRO_FRAMEWORK_PATH/x86_64\n\n# Copy the framework (device or simulator) to react-viro\nif [ ${PLATFORM_NAME} = \"iphonesimulator\" ]; then\nmkdir -p $VIRO_SIMULATOR_FRAMEWORK\ncp -r $TARGET_BUILD_DIR/ViroKit.framework $VIRO_SIMULATOR_FRAMEWORK\nelse\nmkdir -p $VIRO_DEVICE_FRAMEWORK\ncp -r $TARGET_BUILD_DIR/ViroKit.framework $VIRO_DEVICE_FRAMEWORK\nfi\n\n# If both the device and simulator frameworks now exist, create the Universal framework\nif [ -f $VIRO_DEVICE_FRAMEWORK/ViroKit.framework/ViroKit ] && [ -f $VIRO_SIMULATOR_FRAMEWORK/ViroKit.framework/ViroKit ]; then\ncp -r $TARGET_BUILD_DIR/ViroKit.framework $VIRO_FRAMEWORK_PATH\nlipo $VIRO_SIMULATOR_FRAMEWORK/ViroKit.framework/ViroKit $VIRO_DEVICE_FRAMEWORK/ViroKit.framework/ViroKit -create -output $VIRO_FRAMEWORK_PATH/ViroKit.framework/ViroKit\nfi\n\n# Copy over the podspec\ncp -r $PROJECT_DIR/ViroKit.podspec $PROJECT_DIR/../../viro/ios/dist/ViroRenderer\n"; showEnvVarsInLog = 0; }; - C97786BFF2EA12734F1F7046 /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${SRCROOT}/Pods/Target Support Files/Pods-ViroKit/Pods-ViroKit-resources.sh", - "${PODS_ROOT}/GVRSDK/Resources/CardboardSDK.bundle", - "${PODS_ROOT}/GVRSDK/Resources/GoogleKitCore.bundle", - "${PODS_ROOT}/GVRSDK/Resources/GoogleKitDialogs.bundle", - "${PODS_ROOT}/GVRSDK/Resources/GoogleKitHUD.bundle", - "${PODS_ROOT}/GVRSDK/Resources/MaterialRobotoFontLoader.bundle", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CardboardSDK.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleKitCore.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleKitDialogs.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleKitHUD.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/MaterialRobotoFontLoader.bundle", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ViroKit/Pods-ViroKit-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; E82CFD5E20AECB790091154F /* Lipo Framework and Copy to Bridge (build intermediates for Jenkins) */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -5387,7 +5247,6 @@ 13B67228212229B20040FB72 /* VRODebugHUD.cpp in Sources */, 13B67229212229B20040FB72 /* VROChoreographer.cpp in Sources */, 130F15F622DD3F52009983B3 /* VROAnimBodyDataiOS.cpp in Sources */, - 13B6722A212229B20040FB72 /* VROViewGVR.m in Sources */, 8F98F70C21260E4800917430 /* VROLayeredSkeletalAnimation.cpp in Sources */, 13B6722B212229B20040FB72 /* VROHDRLoader.cpp in Sources */, 13B6722C212229B20040FB72 /* VROARAnchoriOS.cpp in Sources */, @@ -5429,13 +5288,13 @@ 13B6724F212229B20040FB72 /* VRORenderTargetOpenGL.cpp in Sources */, 130F15F022DD3EF1009983B3 /* VROBodyMesheriOS.cpp in Sources */, 13B67250212229B20040FB72 /* VROShaderModifier.cpp in Sources */, + 8FE572F6246A15C200CD3ED5 /* VROGVRUtil.cpp in Sources */, 8FB4AE1421A440C30026096E /* VRODriver.cpp in Sources */, 130F15F122DD3F2B009983B3 /* VROARCameraPrerecorded.cpp in Sources */, 13B67252212229B20040FB72 /* VROCameraTextureiOS.cpp in Sources */, A5A10757212D51EC008B2DFB /* openbsd-reallocarray.c in Sources */, A5DA443921B0BDC100F86923 /* VROIKTest.cpp in Sources */, 13B67253212229B20040FB72 /* VROARImperativeSession.cpp in Sources */, - 13B67254212229B20040FB72 /* VROGVRUtil.cpp in Sources */, 13B67255212229B20040FB72 /* VROThreadRestricted.cpp in Sources */, 13B67256212229B20040FB72 /* VRORendererSettingsTest.cpp in Sources */, 13B67257212229B20040FB72 /* VROGeometrySubstrate.cpp in Sources */, @@ -5461,7 +5320,6 @@ 8FAE505B2238881E0043220B /* VROAVCaptureController.cpp in Sources */, 13B67265212229B20040FB72 /* OrientationEKF.mm in Sources */, 13B67266212229B20040FB72 /* VROTorusTest.cpp in Sources */, - 13B67267212229B20040FB72 /* VROViewControllerGVR.m in Sources */, 13B67268212229B20040FB72 /* VROPortalTreeRenderPass.cpp in Sources */, 8F46501A215E6E7000C1AEC5 /* VROBodyTrackeriOS.cpp in Sources */, 13B67269212229B20040FB72 /* VROConvert.cpp in Sources */, @@ -5520,7 +5378,6 @@ 13B6729B212229B20040FB72 /* VROPhotometricLightTest.cpp in Sources */, 13B6729C212229B20040FB72 /* VROStringUtil.cpp in Sources */, 13B6729D212229B20040FB72 /* VROVector4f.cpp in Sources */, - 13B6729E212229B20040FB72 /* VROSceneRendererGVR.cpp in Sources */, 13B6729F212229B20040FB72 /* VROTexture.cpp in Sources */, 13B672A0212229B20040FB72 /* VROImagePostProcessOpenGL.cpp in Sources */, 13B672A1212229B20040FB72 /* VROStereoscopicTest.cpp in Sources */, @@ -5672,7 +5529,6 @@ 8FAE18C71EE79D6D0021C7BB /* VROARFrameiOS.cpp in Sources */, 8F705DE21E8ACFD0008BE8F8 /* VRODebugHUD.cpp in Sources */, 8F0E5E9C1F3BA9120007AD03 /* VROChoreographer.cpp in Sources */, - 8F0FE6701CD29BF900A4C297 /* VROViewGVR.m in Sources */, 8F98F70B21260E4800917430 /* VROLayeredSkeletalAnimation.cpp in Sources */, 8FEACEE620169EA90082D18B /* VROHDRLoader.cpp in Sources */, 8FAE18BF1EE79D230021C7BB /* VROARAnchoriOS.cpp in Sources */, @@ -5714,6 +5570,7 @@ 8F4054191F4FAADC008DCBAD /* VROGaussianBlurRenderPass.cpp in Sources */, A523E7A820AB469F00D24B42 /* VROGLTFLoader.cpp in Sources */, 8F790CB41F3419C4009A2020 /* VROPortalTraversalListener.cpp in Sources */, + 8FE572F5246A15C200CD3ED5 /* VROGVRUtil.cpp in Sources */, 8FA2E1601C45DD270070DB26 /* VROReticle.cpp in Sources */, 8F0E5E981F3B52480007AD03 /* VRORenderTargetOpenGL.cpp in Sources */, 8FDDB4B01DB055A700DE0968 /* VROShaderModifier.cpp in Sources */, @@ -5723,7 +5580,6 @@ A5DA443821B0BDC000F86923 /* VROIKTest.cpp in Sources */, 8FAE5056222C6BF10043220B /* hourglass_2_1_t.mlmodel in Sources */, 8F828EFA1FAF83840068159E /* VROARImperativeSession.cpp in Sources */, - 8F17D5421FCF1E7500141042 /* VROGVRUtil.cpp in Sources */, 8F705DF01E8D5337008BE8F8 /* VROThreadRestricted.cpp in Sources */, 8F2C7AFF21ECCE5300B8A154 /* VROImagePreprocessor.cpp in Sources */, 8FA81D5B2023773700B04790 /* VRORendererSettingsTest.cpp in Sources */, @@ -5746,7 +5602,6 @@ 8FD4DF0E1C18ED3C003DC425 /* VROMaterial.cpp in Sources */, 8FD4DF131C18ED44003DC425 /* OrientationEKF.mm in Sources */, 8FD2A54A1F813C4100E831A6 /* VROTorusTest.cpp in Sources */, - 8F1E01011FD10D7D00DF9068 /* VROViewControllerGVR.m in Sources */, 8F0E5EAC1F3C080E0007AD03 /* VROPortalTreeRenderPass.cpp in Sources */, 8F53D39E1DCA883A001C91A8 /* VROConvert.cpp in Sources */, 8FDDB49E1DADB8C200DE0968 /* VROLightingUBO.cpp in Sources */, @@ -5808,7 +5663,6 @@ 8FE39F81201FB2DB0088A175 /* VROPhotometricLightTest.cpp in Sources */, 8FCB10081DD10EF300FE425C /* VROStringUtil.cpp in Sources */, 8FD4DEF81C18ED19003DC425 /* VROVector4f.cpp in Sources */, - 8F17D53D1FCE128600141042 /* VROSceneRendererGVR.cpp in Sources */, 8FD4DF101C18ED3C003DC425 /* VROTexture.cpp in Sources */, 8F92091C1F3CE241003305C8 /* VROImagePostProcessOpenGL.cpp in Sources */, 8FD2A54B1F813C4100E831A6 /* VROStereoscopicTest.cpp in Sources */, @@ -6414,10 +6268,8 @@ GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; HEADER_SEARCH_PATHS = ( "$(inherited)", - "\"${PODS_ROOT}/Headers/Public\"", "\"${PODS_ROOT}/Headers/Public/GVRAudioSDK\"", - "\"${PODS_ROOT}/Headers/Public/GVRKit\"", - "\"${PODS_ROOT}/Headers/Public/GVRSDK\"", + "\"${PODS_ROOT}/GVRAudioSDK/Sources", ); INFOPLIST_FILE = ViroKit/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -6449,14 +6301,11 @@ "\"${PODS_ROOT}/Headers/Public\"", "-isystem", "\"${PODS_ROOT}/Headers/Public/GVRAudioSDK\"", - "-isystem", - "\"${PODS_ROOT}/Headers/Public/GVRSDK\"", ); OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", "-l\"GVRAudioSDK\"", - "-l\"GVRSDK\"", "-l\"c++\"", "-l\"z\"", "-framework", @@ -6476,10 +6325,6 @@ "-framework", "\"GLKit\"", "-framework", - "\"GTMSessionFetcher\"", - "-framework", - "\"GoogleToolboxForMac\"", - "-framework", "\"MediaPlayer\"", "-framework", "\"OpenGLES\"", @@ -6518,10 +6363,8 @@ GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; HEADER_SEARCH_PATHS = ( "$(inherited)", - "\"${PODS_ROOT}/Headers/Public\"", "\"${PODS_ROOT}/Headers/Public/GVRAudioSDK\"", - "\"${PODS_ROOT}/Headers/Public/GVRKit\"", - "\"${PODS_ROOT}/Headers/Public/GVRSDK\"", + "\"${PODS_ROOT}/GVRAudioSDK/Sources", ); INFOPLIST_FILE = ViroKit/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -6549,7 +6392,6 @@ "$(inherited)", "-ObjC", "-l\"GVRAudioSDK\"", - "-l\"GVRSDK\"", "-l\"c++\"", "-l\"z\"", "-framework", @@ -6569,10 +6411,6 @@ "-framework", "\"GLKit\"", "-framework", - "\"GTMSessionFetcher\"", - "-framework", - "\"GoogleToolboxForMac\"", - "-framework", "\"MediaPlayer\"", "-framework", "\"OpenGLES\"", diff --git a/ios/ViroSample/VROTestViewController.m b/ios/ViroSample/VROTestViewController.m index 05898490..37f74cb1 100644 --- a/ios/ViroSample/VROTestViewController.m +++ b/ios/ViroSample/VROTestViewController.m @@ -50,18 +50,7 @@ - (void)loadView { config.enableBloom = YES; config.enableMultisampling = NO; - if (kTestType == VROTestSceneType::VR) { - VROViewGVR *view = [[VROViewGVR alloc] initWithFrame:[UIScreen mainScreen].bounds - config:config]; - view.testingMode = YES; - view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - view.renderDelegate = self.renderDelegate; - - self.renderDelegate.view = view; - self.renderDelegate.test = kRendererTest; - self.view = view; - } - else if (kTestType == VROTestSceneType::AR) { + if (kTestType == VROTestSceneType::AR) { VROViewAR *view = [[VROViewAR alloc] initWithFrame:[UIScreen mainScreen].bounds config:config context:[[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3]