Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(528)

Side by Side Diff: device/vr/openvr/openvr_device_provider.cc

Issue 2825203004: Added support for OpenVR controllers (Closed)
Patch Set: Consolidate VR_Init to OpenVRDeviceProvider Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "device/vr/openvr/openvr_device_provider.h" 5 #include "device/vr/openvr/openvr_device_provider.h"
6
7 #include "device/gamepad/gamepad_data_fetcher_manager.h"
6 #include "device/vr/openvr/openvr_device.h" 8 #include "device/vr/openvr/openvr_device.h"
9 #include "device/vr/openvr/openvr_gamepad_data_fetcher.h"
7 #include "third_party/openvr/src/headers/openvr.h" 10 #include "third_party/openvr/src/headers/openvr.h"
8 11
9 namespace device { 12 namespace device {
10 13
11 OpenVRDeviceProvider::OpenVRDeviceProvider() {} 14 OpenVRDeviceProvider::OpenVRDeviceProvider()
15 : initialized_(false), vr_system_(nullptr) {}
12 16
13 OpenVRDeviceProvider::~OpenVRDeviceProvider() {} 17 OpenVRDeviceProvider::~OpenVRDeviceProvider() {}
14 18
15 void OpenVRDeviceProvider::GetDevices(std::vector<VRDevice*>* devices) { 19 void OpenVRDeviceProvider::GetDevices(std::vector<VRDevice*>* devices) {
16 if (vr::VR_IsRuntimeInstalled() && vr::VR_IsHmdPresent()) { 20 if (initialized_) {
17 devices->push_back(new OpenVRDevice()); 21 VRDevice* device = new OpenVRDevice(vr_system_);
22 devices->push_back(device);
23 GamepadDataFetcherManager::GetInstance()->AddFactory(
24 new OpenVRGamepadDataFetcher::Factory(device->id(), vr_system_));
18 } 25 }
19 } 26 }
20 27
21 void OpenVRDeviceProvider::Initialize() {} 28 void OpenVRDeviceProvider::Initialize() {
29 if (!initialized_ && vr::VR_IsRuntimeInstalled() && vr::VR_IsHmdPresent()) {
30 vr::EVRInitError init_error = vr::VRInitError_None;
31 vr_system_ =
32 vr::VR_Init(&init_error, vr::EVRApplicationType::VRApplication_Scene);
billorr 2017/04/21 17:32:52 I'm a bit on the fence about this - ideally we cou
33
34 if (init_error != vr::VRInitError_None) {
35 LOG(ERROR) << vr::VR_GetVRInitErrorAsEnglishDescription(init_error);
36 vr_system_ = nullptr;
37 return;
38 }
39
40 initialized_ = true;
41 }
42 }
22 43
23 void OpenVRDeviceProvider::SetListeningForActivate(bool listening) {} 44 void OpenVRDeviceProvider::SetListeningForActivate(bool listening) {}
24 45
25 } // namespace device 46 } // namespace device
OLDNEW
« no previous file with comments | « device/vr/openvr/openvr_device_provider.h ('k') | device/vr/openvr/openvr_gamepad_data_fetcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698