Nessuna descrizione

Joey Ferwerda 9ab8c6cc3e Updated CMake file to match master 8 anni fa
cmake f83de6d2ad Added functional CMake buildfile. 9 anni fa
examples b995d3351d merged master into vive branch 8 anni fa
include 9d584b8f37 proxy rotation and position in the device struct, update the values on ohmd_ctx_update() 9 anni fa
pkg-config c4be906cbb added lib linking and hidapi requirement to pkg-config file 12 anni fa
src 93e304681b Added missing (incomplete) header for vive config 8 anni fa
tests 4348141bb3 Fix the build when builddir is different from srcdir. 9 anni fa
.gitignore ea2491cf8b Add autotools generated files to the .gitignore. 9 anni fa
.travis.yml cd954bfe0e changed to ubuntu trusty for building in travis 9 anni fa
CMakeLists.txt 9ab8c6cc3e Updated CMake file to match master 8 anni fa
Doxyfile 8b09a0756e Improve documentation 9 anni fa
LICENSE a1662d7816 Initial Commit 12 anni fa
Makefile.am 8cb31c5953 Moved examples from test/ to example/ subdirectory and updated README.md. 12 anni fa
README.md b995d3351d merged master into vive branch 8 anni fa
autogen.sh a1662d7816 Initial Commit 12 anni fa
configure.ac 6c9ddf9da4 Fixed compile 9 anni fa

README.md

OpenHMD

This project aims to provide a Free and Open Source API and drivers for immersive technology, such as head mounted displays with built in head tracking.

License

OpenHMD is released under the permissive Boost Software License (see LICENSE for more information), to make sure it can be linked and distributed with both free and non-free software. While it doesn't require contribution from the users, it is still very appreciated.

Supported Devices

  • Oculus Rift DK1 and DK2 (rotation only)
  • HTC Vive (In Development)
  • Android based devices
  • External Sensor (passthrough for external sensors)

Supported Platforms

  • Linux
  • Windows
  • OS X
  • Android
  • FreeBSD

Requirements

Language Bindings

Other FOSS HMD Drivers

Compiling and Installing

Using make:

./autogen.sh # (if you're building from the git repository)
./configure [--enable-openglexample]
make
sudo make install

Using CMake:

With CMake, you can enable and disable drivers to compile OpenHMD with. Current Available drivers are: OPENHMD_DRIVER_OCULUS_RIFT, OPENHMD_DRIVER_EXTERNAL and OPENHMD_DRIVER_ANDROID. These can be enabled or disabled adding -DDRIVER_OF_CHOICE=ON after the cmake command (or using cmake-gui).

cmake .
make

Configuring udev on Linux

To avoid having to run your applications as root to access USB devices you have to add a udev rule (this will be included in .deb packages, etc).

as root, run:

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="2833", MODE="0666", GROUP="plugdev"' > /etc/udev/rules.d/83-hmd.rules
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"' >> /etc/udev/rules.d/83-hmd.rules
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="28de", MODE="0666", GROUP="plugdev"' >> /etc/udev/rules.d/83-hmd.rules
udevadm control --reload-rules

After this you have to unplug your device and plug it back in. You should now be able to access the HMD as a normal user.

Cross compiling for windows using mingw

Using Make:

export PREFIX=/usr/i686-w64-mingw32/ (or whatever your mingw path is)
PKG_CONFIG_LIBDIR=$PREFIX/lib/pkgconfig ./configure --build=`gcc -dumpmachine` --host=i686-w64-mingw32 --prefix=$PREFIX
make

the library will end up in the .lib directory, you can use microsoft's lib.exe to make a .lib file for it

Using CMake:

For MinGW cross compiling, toolchain files tend to be the best solution. Please check the CMake documentation on how to do this. A starting point might be the CMake wiki: http://www.vtk.org/Wiki/CmakeMingw

Static linking on windows

If you're linking statically with OpenHMD using windows/mingw you have to make sure the macro OHMD_STATIC is set before including openhmd.h. In GCC this can be done by adding the compiler flag -DOHMD_STATIC, and with msvc it can be done using /DOHMD_STATIC.

Note that this is only if you're linking statically! If you're using the DLL then you must not define OHMD_STATIC. (If you're not sure then you're probably linking dynamically and won't have to worry about this).

Pre-built packages

Will be available soon.

Using OpenHMD

See the examples/ subdirectory for usage examples. The OpenGL example is not built by default, to build it use the --enable-openglexample option for the configure script. It requires SDL, glew and OpenGL.

An API reference can be generated using doxygen and is also available here: http://openhmd.net/doxygen/0.1.0/openhmd_8h.html