oculus1
annotate src/vr.cc @ 2:59fc487ba58e
foo
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sat, 14 Sep 2013 17:51:03 +0300 |
parents | |
children | b069a5c27388 |
rev | line source |
---|---|
nuclear@1 | 1 #include <stdio.h> |
nuclear@1 | 2 #include "vr.h" |
nuclear@1 | 3 #include "vr_impl.h" |
nuclear@1 | 4 |
nuclear@1 | 5 static bool init_ovr(); |
nuclear@1 | 6 |
nuclear@1 | 7 VRData vr_data; |
nuclear@1 | 8 |
nuclear@1 | 9 extern "C" int vr_init(enum vr_init_mode mode) |
nuclear@1 | 10 { |
nuclear@1 | 11 if(!init_ovr()) { |
nuclear@1 | 12 return -1; |
nuclear@1 | 13 } |
nuclear@1 | 14 return 0; |
nuclear@1 | 15 } |
nuclear@1 | 16 |
nuclear@1 | 17 extern "C" void vr_shutdown(void) |
nuclear@1 | 18 { |
nuclear@1 | 19 System::Destroy(); |
nuclear@1 | 20 } |
nuclear@1 | 21 |
nuclear@1 | 22 |
nuclear@1 | 23 |
nuclear@1 | 24 static bool init_ovr() |
nuclear@1 | 25 { |
nuclear@1 | 26 // initialize Oculus SDK |
nuclear@1 | 27 System::Init(); |
nuclear@1 | 28 if(!(vr_data.ovr_devman = DeviceManager::Create())) { |
nuclear@1 | 29 fprintf(stderr, "failed to create OVR device manager\n"); |
nuclear@1 | 30 return false; |
nuclear@1 | 31 } |
nuclear@1 | 32 |
nuclear@1 | 33 // create the display device |
nuclear@1 | 34 if(!(vr_data.ovr_hmd_dev = vr_data.ovr_devman->EnumerateDevices<HMDDevice>().CreateDevice())) { |
nuclear@1 | 35 fprintf(stderr, "no oculus rift devices found\n"); |
nuclear@1 | 36 return false; |
nuclear@1 | 37 } |
nuclear@1 | 38 |
nuclear@1 | 39 HMDInfo info; |
nuclear@1 | 40 if(vr_data.ovr_hmd_dev->GetDeviceInfo(&info)) { |
nuclear@1 | 41 printf("oculus device info:\n"); |
nuclear@1 | 42 printf(" name: %s\n", info.DisplayDeviceName); |
nuclear@1 | 43 printf(" ipd: %f\n", info.InterpupillaryDistance); |
nuclear@1 | 44 printf(" distortion: %f %f %f %f\n", info.DistortionK[0], |
nuclear@1 | 45 info.DistortionK[1], info.DistortionK[2], info.DistortionK[3]); |
nuclear@1 | 46 } |
nuclear@1 | 47 |
nuclear@1 | 48 // get the sensor device |
nuclear@1 | 49 if(!(vr_data.ovr_sensor_dev = vr_data.ovr_hmd_dev->GetSensor())) { |
nuclear@1 | 50 fprintf(stderr, "failed to get oculus sensor device\n"); |
nuclear@1 | 51 return false; |
nuclear@1 | 52 } |
nuclear@1 | 53 |
nuclear@1 | 54 SensorInfo sinfo; |
nuclear@1 | 55 if(vr_data.ovr_sensor_dev->GetDeviceInfo(&sinfo)) { |
nuclear@1 | 56 printf("oculus sensor device info:\n"); |
nuclear@1 | 57 printf(" name: %s\n", sinfo.ProductName); |
nuclear@1 | 58 } |
nuclear@1 | 59 |
nuclear@1 | 60 return true; |
nuclear@1 | 61 } |