--------------------------
Overview:
This release bring considerable changes to PsychXR to address issues and
feedback from the initial public release (0.1.4). This version will break
compatibility with software running any previous version, see the reference
code in the demo directory for a minimal example using the new API.
One of the biggest changes is NumPy integration, which exposes vector and
matrix types as arrays instead of custom extension types. This allows you
to take advantage of the scientific software ecosystem built around NumPy
when working with data from HMDs. As a result, NumPy is now a requirement
to build PsychXR.
Several new extension types have been added, notably the LibOVRPose and
LibOVRPoseState classes which store and manipulate rigid body pose data.
There are plenty of class methods available to transform (e.g. invert) and
convert (to a 4x4 matrix) poses, apply transformations, and do things like
raypicking, interpolation, and time integration.
Lastly, documentation has been greatly improved, providing lots of examples
and details associated with each function and class.
New Features:
- Added LibOVRPose, LibOVRPoseState, LibOVRSessionStatus, LibOVRHmdInfo,
etc.
- Library now exposes vectors, quaternions, and matrices as Numpy arrays.
- LibOVR version bump to 1.37.
- Functions which call the LibOVR API return error/success codes, making it
easier to write custom error handlers.
- More arguments for 'initialize()', such as 'focusAware'.
- LibOVRPose handles rigid body pose data like 'ovr.math.Posef' did.
- Added swap chain names 'LIBOVR_TEXTURE_SWAP_CHAIN*' so you don't need to
define them yourself.
- Added 'setControllerVibration' for haptic feedback.
- Added 'getDevicePose' to get the absolute poses of tracked objects.
- Functions can copy data into existing arrays rather than creating new
ones.
- Added functions to compute viewing parameters, such as horizontal FOV and
aspect ratio.
- LibOVRPoseState objects can be time integrated.
- Controller states functions return time stamps and states in a single
call.
- Tracker/sensor information is now available.
- Many more ...
Bug Fixes:
- Cleaned up old and unused code from 'psychxr.libovr'.
- Fixed crash when shutdown is called after a texture swap chain is created.
Breaking Changes:
- Many API functions have been removed or renamed, some functions take
different arguments all together.
- Removed 'ovr.math' module, use LibOVRPose for rigid body transforms.
- Removed 'ovr.capi', import 'psychxr.libovr' instead.
- Reduced number of possible swap chains to 8 for now.
- You must now manage getting the next available swap chain index.
Known Issues:
- None so far ...