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

Unified Diff: device/vr/openvr/openvr_device_provider.cc

Issue 2825203004: Added support for OpenVR controllers (Closed)
Patch Set: Read pose by vr::TrackingUniverseSeated 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 side-by-side diff with in-line comments
Download patch
« 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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: device/vr/openvr/openvr_device_provider.cc
diff --git a/device/vr/openvr/openvr_device_provider.cc b/device/vr/openvr/openvr_device_provider.cc
index aee062f1463536d9a85580eff572ff925e800647..d16f10dfced7bc37c339853e2299a6b4e8d2a293 100644
--- a/device/vr/openvr/openvr_device_provider.cc
+++ b/device/vr/openvr/openvr_device_provider.cc
@@ -3,22 +3,43 @@
// found in the LICENSE file.
#include "device/vr/openvr/openvr_device_provider.h"
+
+#include "device/gamepad/gamepad_data_fetcher_manager.h"
#include "device/vr/openvr/openvr_device.h"
+#include "device/vr/openvr/openvr_gamepad_data_fetcher.h"
#include "third_party/openvr/src/headers/openvr.h"
namespace device {
-OpenVRDeviceProvider::OpenVRDeviceProvider() {}
+OpenVRDeviceProvider::OpenVRDeviceProvider()
+ : initialized_(false), vr_system_(nullptr) {}
OpenVRDeviceProvider::~OpenVRDeviceProvider() {}
void OpenVRDeviceProvider::GetDevices(std::vector<VRDevice*>* devices) {
- if (vr::VR_IsRuntimeInstalled() && vr::VR_IsHmdPresent()) {
- devices->push_back(new OpenVRDevice());
+ if (initialized_) {
+ VRDevice* device = new OpenVRDevice(vr_system_);
+ devices->push_back(device);
+ GamepadDataFetcherManager::GetInstance()->AddFactory(
+ new OpenVRGamepadDataFetcher::Factory(device->id(), vr_system_));
}
}
-void OpenVRDeviceProvider::Initialize() {}
+void OpenVRDeviceProvider::Initialize() {
+ if (!initialized_ && vr::VR_IsRuntimeInstalled() && vr::VR_IsHmdPresent()) {
+ vr::EVRInitError init_error = vr::VRInitError_None;
+ vr_system_ =
+ vr::VR_Init(&init_error, vr::EVRApplicationType::VRApplication_Scene);
+
+ if (init_error != vr::VRInitError_None) {
+ LOG(ERROR) << vr::VR_GetVRInitErrorAsEnglishDescription(init_error);
+ vr_system_ = nullptr;
+ return;
+ }
+
+ initialized_ = true;
+ }
+}
void OpenVRDeviceProvider::SetListeningForActivate(bool listening) {}
« 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