| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/vr/VRDisplay.h" | 5 #include "modules/vr/VRDisplay.h" |
| 6 | 6 |
| 7 #include "core/css/StylePropertySet.h" | 7 #include "core/css/StylePropertySet.h" |
| 8 #include "core/dom/DOMException.h" | 8 #include "core/dom/DOMException.h" |
| 9 #include "core/dom/FrameRequestCallback.h" | 9 #include "core/dom/FrameRequestCallback.h" |
| 10 #include "core/dom/ScriptedAnimationController.h" | 10 #include "core/dom/ScriptedAnimationController.h" |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 67 | 67 |
| 68 VRController* VRDisplay::controller() { | 68 VRController* VRDisplay::controller() { |
| 69 return m_navigatorVR->controller(); | 69 return m_navigatorVR->controller(); |
| 70 } | 70 } |
| 71 | 71 |
| 72 void VRDisplay::update(const device::mojom::blink::VRDisplayInfoPtr& display) { | 72 void VRDisplay::update(const device::mojom::blink::VRDisplayInfoPtr& display) { |
| 73 m_displayId = display->index; | 73 m_displayId = display->index; |
| 74 m_displayName = display->displayName; | 74 m_displayName = display->displayName; |
| 75 m_isConnected = true; | 75 m_isConnected = true; |
| 76 | 76 |
| 77 m_capabilities->setHasOrientation(display->capabilities->hasOrientation); | |
| 78 m_capabilities->setHasPosition(display->capabilities->hasPosition); | 77 m_capabilities->setHasPosition(display->capabilities->hasPosition); |
| 79 m_capabilities->setHasExternalDisplay( | 78 m_capabilities->setHasExternalDisplay( |
| 80 display->capabilities->hasExternalDisplay); | 79 display->capabilities->hasExternalDisplay); |
| 81 m_capabilities->setCanPresent(display->capabilities->canPresent); | 80 m_capabilities->setCanPresent(display->capabilities->canPresent); |
| 82 m_capabilities->setMaxLayers(display->capabilities->canPresent ? 1 : 0); | 81 m_capabilities->setMaxLayers(display->capabilities->canPresent ? 1 : 0); |
| 83 | 82 |
| 84 // Ignore non presenting delegate | 83 // Ignore non presenting delegate |
| 85 bool isValid = display->leftEye->renderWidth > 0; | 84 bool isValid = display->leftEye->renderWidth > 0; |
| 86 bool needOnPresentChange = false; | 85 bool needOnPresentChange = false; |
| 87 if (m_isPresenting && isValid && !m_isValidDeviceForPresenting) { | 86 if (m_isPresenting && isValid && !m_isValidDeviceForPresenting) { |
| 88 needOnPresentChange = true; | 87 needOnPresentChange = true; |
| 89 } | 88 } |
| 90 m_isValidDeviceForPresenting = isValid; | 89 m_isValidDeviceForPresenting = isValid; |
| 91 m_eyeParametersLeft->update(display->leftEye); | 90 m_eyeParametersLeft->update(display->leftEye); |
| 92 m_eyeParametersRight->update(display->rightEye); | 91 m_eyeParametersRight->update(display->rightEye); |
| 93 | 92 |
| 94 if (!display->stageParameters.is_null()) { | 93 if (!display->stageParameters.is_null()) { |
| 95 if (!m_stageParameters) | 94 if (!m_stageParameters) |
| 96 m_stageParameters = new VRStageParameters(); | 95 m_stageParameters = new VRStageParameters(); |
| 97 m_stageParameters->update(display->stageParameters); | 96 m_stageParameters->update(display->stageParameters); |
| 98 } else { | 97 } else { |
| 99 m_stageParameters = nullptr; | 98 m_stageParameters = nullptr; |
| 100 } | 99 } |
| 101 | 100 |
| 102 if (needOnPresentChange) { | 101 if (needOnPresentChange) { |
| 103 OnPresentChange(); | 102 OnPresentChange(); |
| 104 } | 103 } |
| 105 } | 104 } |
| 106 | 105 |
| 107 void VRDisplay::disconnected() { | |
| 108 if (m_isConnected) | |
| 109 m_isConnected = !m_isConnected; | |
| 110 } | |
| 111 | |
| 112 bool VRDisplay::getFrameData(VRFrameData* frameData) { | 106 bool VRDisplay::getFrameData(VRFrameData* frameData) { |
| 113 if (!m_navigatorVR->isFocused() || !m_framePose || m_displayBlurred) | 107 if (!m_navigatorVR->isFocused() || !m_framePose || m_displayBlurred) |
| 114 return false; | 108 return false; |
| 115 | 109 |
| 116 if (!frameData) | 110 if (!frameData) |
| 117 return false; | 111 return false; |
| 118 | 112 |
| 119 if (m_depthNear == m_depthFar) | 113 if (m_depthNear == m_depthFar) |
| 120 return false; | 114 return false; |
| 121 | 115 |
| 122 return frameData->update(m_framePose, m_eyeParametersLeft, | 116 return frameData->update(m_framePose, m_eyeParametersLeft, |
| 123 m_eyeParametersRight, m_depthNear, m_depthFar); | 117 m_eyeParametersRight, m_depthNear, m_depthFar); |
| 124 } | 118 } |
| 125 | 119 |
| 126 VRPose* VRDisplay::getPose() { | |
| 127 if (!m_navigatorVR->isFocused() || !m_framePose || m_displayBlurred) | |
| 128 return nullptr; | |
| 129 | |
| 130 VRPose* pose = VRPose::create(); | |
| 131 pose->setPose(m_framePose); | |
| 132 return pose; | |
| 133 } | |
| 134 | |
| 135 void VRDisplay::resetPose() { | |
| 136 if (!m_display) | |
| 137 return; | |
| 138 | |
| 139 m_display->ResetPose(); | |
| 140 } | |
| 141 | |
| 142 VREyeParameters* VRDisplay::getEyeParameters(const String& whichEye) { | 120 VREyeParameters* VRDisplay::getEyeParameters(const String& whichEye) { |
| 143 switch (stringToVREye(whichEye)) { | 121 switch (stringToVREye(whichEye)) { |
| 144 case VREyeLeft: | 122 case VREyeLeft: |
| 145 return m_eyeParametersLeft; | 123 return m_eyeParametersLeft; |
| 146 case VREyeRight: | 124 case VREyeRight: |
| 147 return m_eyeParametersRight; | 125 return m_eyeParametersRight; |
| 148 default: | 126 default: |
| 149 return nullptr; | 127 return nullptr; |
| 150 } | 128 } |
| 151 } | 129 } |
| (...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 811 visitor->trace(m_stageParameters); | 789 visitor->trace(m_stageParameters); |
| 812 visitor->trace(m_eyeParametersLeft); | 790 visitor->trace(m_eyeParametersLeft); |
| 813 visitor->trace(m_eyeParametersRight); | 791 visitor->trace(m_eyeParametersRight); |
| 814 visitor->trace(m_layer); | 792 visitor->trace(m_layer); |
| 815 visitor->trace(m_renderingContext); | 793 visitor->trace(m_renderingContext); |
| 816 visitor->trace(m_scriptedAnimationController); | 794 visitor->trace(m_scriptedAnimationController); |
| 817 visitor->trace(m_pendingPresentResolvers); | 795 visitor->trace(m_pendingPresentResolvers); |
| 818 } | 796 } |
| 819 | 797 |
| 820 } // namespace blink | 798 } // namespace blink |
| OLD | NEW |