private void GetDeviceDescription() { var displayJson = context.getStringParameter("/display"); deviceDescriptor = DeviceDescriptor.Parse(displayJson); if (deviceDescriptor != null) { //// temporary overrides to simulate OSVR HDK //// without actually reading in the json value //deviceDescriptor.DisplayMode = "horz_side_by_side"; //deviceDescriptor.MonocularHorizontal = 90f; //deviceDescriptor.MonocularVertical = 101.25f; //deviceDescriptor.OverlapPercent = 100f; //deviceDescriptor.PitchTilt = 0f; //deviceDescriptor.K1Red = 0f; //deviceDescriptor.K1Green = 0f; //deviceDescriptor.K1Blue = 0f; //deviceDescriptor.RightRoll = 0f; //deviceDescriptor.LeftRoll = 0f; //deviceDescriptor.CenterProjX = 0.5f; //deviceDescriptor.CenterProjY = 0.5f; LeftEye = new VREye(pose, Eye.Left, deviceDescriptor); RightEye = new VREye(pose, Eye.Right, deviceDescriptor); switch (deviceDescriptor.DisplayMode) { case "full_screen": ViewMode = MonoGame.ViewMode.Mono; break; case "horz_side_by_side": case "vert_side_by_side": default: ViewMode = MonoGame.ViewMode.Stereo; break; } //SetResolution(deviceDescriptor.Width, deviceDescriptor.Height); // set resolution before FOV VerticalFieldOfView = MathHelper.Clamp(deviceDescriptor.MonocularVertical, 0, 180); // TODO: should we provide HorizontalFieldOfView? //SetDistortion(deviceDescriptor.K1Red, deviceDescriptor.K1Green, deviceDescriptor.K1Blue, // deviceDescriptor.CenterProjX, deviceDescriptor.CenterProjY); //set distortion shader // if the view needs to be rotated 180 degrees, create a parent game object that is flipped // 180 degrees on the z axis if (deviceDescriptor.Rotate180 > 0) { LeftEye.RotatePi = true; RightEye.RotatePi = true; } SetEyeRotation(deviceDescriptor.OverlapPercent, deviceDescriptor.MonocularHorizontal); SetEyeRoll(deviceDescriptor.LeftRoll, deviceDescriptor.RightRoll); } }
/// <summary> /// This function will parse the Json display parameters from /display using Newstonsoft /// /// Returns a DeviceDescriptor object containing stored json values. /// </summary> public DeviceDescriptor GetDeviceDescription() { return(_deviceDescriptorJson == null ? null : DeviceDescriptor.Parse(_deviceDescriptorJson)); }