| 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/dom/DOMException.h" | 7 #include "core/dom/DOMException.h" | 
| 8 #include "core/inspector/ConsoleMessage.h" | 8 #include "core/inspector/ConsoleMessage.h" | 
| 9 #include "modules/vr/NavigatorVR.h" | 9 #include "modules/vr/NavigatorVR.h" | 
| 10 #include "modules/vr/VRController.h" | 10 #include "modules/vr/VRController.h" | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 22 | 22 | 
| 23 VREye stringToVREye(const String& whichEye) | 23 VREye stringToVREye(const String& whichEye) | 
| 24 { | 24 { | 
| 25     if (whichEye == "left") | 25     if (whichEye == "left") | 
| 26         return VREyeLeft; | 26         return VREyeLeft; | 
| 27     if (whichEye == "right") | 27     if (whichEye == "right") | 
| 28         return VREyeRight; | 28         return VREyeRight; | 
| 29     return VREyeNone; | 29     return VREyeNone; | 
| 30 } | 30 } | 
| 31 | 31 | 
| 32 } // namepspace | 32 } // namespace | 
| 33 | 33 | 
| 34 VRDisplay::VRDisplay(NavigatorVR* navigatorVR) | 34 VRDisplay::VRDisplay(NavigatorVR* navigatorVR) | 
| 35     : m_navigatorVR(navigatorVR) | 35     : m_navigatorVR(navigatorVR) | 
| 36     , m_displayId(0) | 36     , m_displayId(0) | 
| 37     , m_isConnected(false) | 37     , m_isConnected(false) | 
| 38     , m_isPresenting(false) | 38     , m_isPresenting(false) | 
| 39     , m_canUpdateFramePose(true) | 39     , m_canUpdateFramePose(true) | 
| 40     , m_capabilities(new VRDisplayCapabilities()) | 40     , m_capabilities(new VRDisplayCapabilities()) | 
| 41     , m_eyeParametersLeft(new VREyeParameters()) | 41     , m_eyeParametersLeft(new VREyeParameters()) | 
| 42     , m_eyeParametersRight(new VREyeParameters()) | 42     , m_eyeParametersRight(new VREyeParameters()) | 
| 43 { | 43 { | 
| 44 } | 44 } | 
| 45 | 45 | 
| 46 VRDisplay::~VRDisplay() | 46 VRDisplay::~VRDisplay() | 
| 47 { | 47 { | 
| 48 } | 48 } | 
| 49 | 49 | 
| 50 VRController* VRDisplay::controller() | 50 VRController* VRDisplay::controller() | 
| 51 { | 51 { | 
| 52     return m_navigatorVR->controller(); | 52     return m_navigatorVR->controller(); | 
| 53 } | 53 } | 
| 54 | 54 | 
| 55 void VRDisplay::update(const mojom::blink::VRDeviceInfoPtr& device) | 55 void VRDisplay::update(const mojom::blink::VRDisplayPtr& display) | 
| 56 { | 56 { | 
| 57     m_displayId = device->index; | 57     m_displayId = display->index; | 
| 58     m_displayName = device->deviceName; | 58     m_displayName = display->displayName; | 
| 59     m_isConnected = true; | 59     m_isConnected = true; | 
| 60 | 60 | 
| 61     // Defaults until the VR service has been update to query these. | 61     m_capabilities->setHasOrientation(display->capabilities->hasOrientation); | 
| 62     m_capabilities->setHasOrientation(true); | 62     m_capabilities->setHasPosition(display->capabilities->hasPosition); | 
| 63     m_capabilities->setHasPosition(false); | 63     m_capabilities->setHasExternalDisplay(display->capabilities->hasExternalDisp
     lay); | 
| 64     m_capabilities->setHasExternalDisplay(false); | 64     m_capabilities->setCanPresent(display->capabilities->canPresent); | 
| 65     m_capabilities->setCanPresent(false); | 65     m_capabilities->setMaxLayers(display->capabilities->canPresent ? 1 : 0); | 
| 66     m_capabilities->setMaxLayers(0); |  | 
| 67 | 66 | 
| 68     if (!device->hmdInfo.is_null()) { | 67     m_eyeParametersLeft->update(display->leftEye); | 
| 69         m_eyeParametersLeft->update(device->hmdInfo->leftEye); | 68     m_eyeParametersRight->update(display->rightEye); | 
| 70         m_eyeParametersRight->update(device->hmdInfo->rightEye); | 69 | 
|  | 70     if (!display->stageParameters.is_null()) { | 
|  | 71         if (!m_stageParameters) | 
|  | 72             m_stageParameters = new VRStageParameters(); | 
|  | 73         m_stageParameters->update(display->stageParameters); | 
|  | 74     } else { | 
|  | 75         m_stageParameters = nullptr; | 
| 71     } | 76     } | 
| 72 |  | 
| 73     m_stageParameters = nullptr; |  | 
| 74 } | 77 } | 
| 75 | 78 | 
| 76 VRPose* VRDisplay::getPose() | 79 VRPose* VRDisplay::getPose() | 
| 77 { | 80 { | 
| 78     if (m_canUpdateFramePose) { | 81     if (m_canUpdateFramePose) { | 
| 79         m_framePose = getImmediatePose(); | 82         m_framePose = getImmediatePose(); | 
| 80         Platform::current()->currentThread()->addTaskObserver(this); | 83         Platform::current()->currentThread()->addTaskObserver(this); | 
| 81         m_canUpdateFramePose = false; | 84         m_canUpdateFramePose = false; | 
| 82     } | 85     } | 
| 83 | 86 | 
| 84     return m_framePose; | 87     return m_framePose; | 
| 85 } | 88 } | 
| 86 | 89 | 
| 87 VRPose* VRDisplay::getImmediatePose() | 90 VRPose* VRDisplay::getImmediatePose() | 
| 88 { | 91 { | 
| 89     VRPose* pose = VRPose::create(); | 92     VRPose* pose = VRPose::create(); | 
| 90     pose->setPose(controller()->getSensorState(m_displayId)); | 93     pose->setPose(controller()->getPose(m_displayId)); | 
| 91     return pose; | 94     return pose; | 
| 92 } | 95 } | 
| 93 | 96 | 
| 94 void VRDisplay::resetPose() | 97 void VRDisplay::resetPose() | 
| 95 { | 98 { | 
| 96     controller()->resetSensor(m_displayId); | 99     controller()->resetPose(m_displayId); | 
| 97 } | 100 } | 
| 98 | 101 | 
| 99 VREyeParameters* VRDisplay::getEyeParameters(const String& whichEye) | 102 VREyeParameters* VRDisplay::getEyeParameters(const String& whichEye) | 
| 100 { | 103 { | 
| 101     switch (stringToVREye(whichEye)) { | 104     switch (stringToVREye(whichEye)) { | 
| 102     case VREyeLeft: | 105     case VREyeLeft: | 
| 103         return m_eyeParametersLeft; | 106         return m_eyeParametersLeft; | 
| 104     case VREyeRight: | 107     case VREyeRight: | 
| 105         return m_eyeParametersRight; | 108         return m_eyeParametersRight; | 
| 106     default: | 109     default: | 
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 187 { | 190 { | 
| 188     visitor->trace(m_navigatorVR); | 191     visitor->trace(m_navigatorVR); | 
| 189     visitor->trace(m_capabilities); | 192     visitor->trace(m_capabilities); | 
| 190     visitor->trace(m_stageParameters); | 193     visitor->trace(m_stageParameters); | 
| 191     visitor->trace(m_eyeParametersLeft); | 194     visitor->trace(m_eyeParametersLeft); | 
| 192     visitor->trace(m_eyeParametersRight); | 195     visitor->trace(m_eyeParametersRight); | 
| 193     visitor->trace(m_framePose); | 196     visitor->trace(m_framePose); | 
| 194 } | 197 } | 
| 195 | 198 | 
| 196 } // namespace blink | 199 } // namespace blink | 
| OLD | NEW | 
|---|