bjorn
a17f10e273
Add modules folder;
2019-05-19 00:38:35 -07:00
bjorn
aa1d33669c
Just use leap;
2019-05-12 22:22:29 -07:00
bjorn
5ff49e73c2
Leap WIP;
2019-05-12 22:22:29 -07:00
bjorn
8208238df7
Support multiple tracking drivers;
...
Now the lovr.headset module initializes one display driver (the
first one in the list) and multiple tracking drivers. Only drivers
that implement 'renderTo' will be considered for display driver.
Tracking drivers are stored in a linked list, and retrieving pose
information involves trying all of the tracking drivers until the
pose is found.
2019-05-12 22:21:06 -07:00
bjorn
011db5f1e5
Revert "Free objects in their destructors;"
...
This reverts commit d31dca5520
.
We can't unconditionally free because sometimes objects are temporarily
allocated on the stack.
2019-04-05 05:45:05 -07:00
bjorn
941fc1717f
headset: forward declarations;
2019-04-05 05:08:03 -07:00
bjorn
d31dca5520
Free objects in their destructors;
2019-04-05 03:56:10 -07:00
bjorn
7932ef6f9f
Add type lookup;
...
Now Ref has a type id instead of a destructor/name, and use the type to
lookup the destructor and name when needed.
This improves performance, since now Ref contains a lot less data and we
can do an integer comparison instead of a string comparison when reading
objects from Lua.
2019-04-05 02:54:54 -07:00
bjorn
d45e56146a
Rename fake to desktop;
2019-03-06 23:02:47 -08:00
bjorn
0e99d47394
Fix module destruction;
...
There is a problem when a Thread stops: it destroys all of the modules
that it required. This is because we unconditionally call luax_atexit
when modules are required, and when the thread lua_State dies it takes
all of the modules with it. To fix this, lovr<Module>Init will return
whether or not initialization successfully happened, which provides us
with enough info to know if we should place the luax_atexit destructor
2018-11-19 09:24:28 -08:00
mcc
5ad8fdd3e3
Fixes as far as running without crashes, no display yet
2018-10-24 23:40:11 -04:00
bjorn
5a9cd5187c
Make CMakeLists more modular;
...
- Enable/disable individual modules, including enet/json
- Enable/disable different "backends" (audio/headset)
- Choose to use system vs. source versions of different libraries
2018-09-21 19:25:48 -07:00
bjorn
09a67949ed
Improve CMake and build for LibOVR;
2018-09-11 15:47:03 -07:00
bjorn
72158f103a
Update for stereo rendering and new headset API;
2018-09-11 15:30:31 -07:00
bjorn
785913fd45
Add conf.headset.msaa config;
...
For separate window/headset msaa settings. Currently only applies
to OpenVR since the other drivers render directly to the window.
2018-07-28 18:12:57 -07:00
bjorn
c767e9c165
Simplify headset structure;
2018-05-27 19:05:10 -07:00
bjorn
5feb47c5b7
Remove eye argument from lovr.draw;
2018-03-22 09:57:44 -07:00
bjorn
ddb22aef0e
Refactor headset offset;
2018-03-22 09:57:44 -07:00
bjorn
4df836727c
Simplify refcounting;
2018-02-26 00:59:03 -08:00
bjorn
f54d1c1e03
rm containerof;
2018-02-25 23:19:39 -08:00
bjorn
3a36bcceae
lovr.mount; lovr.headset.isMounted; isPresent changes;
...
Remove lovr.headset.isPresent.
Replace Controller:isPresent with Controller:isConnected.
Add lovr.headset.isMounted and lovr.mount callback.
2018-02-25 16:42:31 -08:00
bjorn
8de0af397b
Clean up headset WIP;
2018-02-23 20:01:13 -08:00
bjorn
9ca743dc1a
Headset module can be restarted;
2018-02-23 18:38:53 -08:00
bjorn
8fb3421658
Fix everything on windows;
2018-02-23 18:38:53 -08:00
mcc
8052896b33
Restart-without-quit support: lovr.event.quit("restart") and return-from-run() both support the string "restart" in place of an exit code. When this happens, the program reruns itself in a new, isolated environment. In Emscripten, no reboot occurs and the program only quits.
2018-01-25 21:32:16 -05:00
bjorn
11586e8248
rm lovr.headset.getBoundsGeometry;
2018-01-06 15:49:19 -08:00
bjorn
f43272adc3
lovr.headset.getPose; Controller:getPose;
...
Remove lovr.headset.getEyePosition. It is now an optional first
argument to the other lovr.headset functions.
2017-12-17 22:20:29 -08:00
bjorn
c6d29f5de3
Add the ability to select headset drivers at runtime;
...
Messy.
2017-11-25 13:02:09 -08:00
bjorn
f63c3c9261
Formatting;
2017-11-25 12:14:00 -08:00
bjorn
ecde864ec4
Use spooky BOOleans everywhere;
2017-10-31 01:14:09 -07:00
Ben Campbell
aaf2840e64
rename HeadsetImpl -> HeadsetInterface
2017-10-23 12:44:26 +13:00
Ben Campbell
e218345e1f
remove redundant text editor modelines
2017-10-23 12:27:26 +13:00
Ben Campbell
a22a9ed1f4
Merge branch 'master' into fake-headset
2017-10-23 09:32:32 +13:00
Ben Campbell
5c17196e49
Add runtime selection support for webvr version
2017-10-21 22:52:07 +13:00
Ben Campbell
c694f56439
pick appropriate headset implementation at runtime
...
(just fake and openvr for now. Need to add webvr support still)
2017-10-21 22:39:33 +13:00
Ben Campbell
5df4197f39
Add indirection of fake headset functions
...
Setting up for runtime-pickable headset implementation
2017-10-21 09:32:46 +13:00
bjorn
0f1acae42a
WIP;
2017-04-16 16:56:49 -07:00
bjorn
ad1706f2ba
Rename vive to openvr;
2017-03-11 03:31:04 -08:00
bjorn
686be658bf
Simplify headset abstractions;
2017-02-19 15:49:39 -08:00
bjorn
6692734151
Move all OpenVR code into vive;
2017-02-19 14:59:53 -08:00
bjorn
3dee0b4782
lovr.headset.getEyePosition; HeadsetEye;
2017-01-22 21:20:34 -08:00
bjorn
492a75acba
Properly destroy modules on exit;
2017-01-21 18:18:12 -08:00
bjorn
3dbafc8214
Cleanup;
2017-01-20 18:39:48 -08:00
bjorn
8feba7342b
Headset fixes;
2016-12-01 17:06:27 -08:00
bjorn
89f0d89223
Improve Controller detection;
2016-11-30 23:03:58 -08:00
bjorn
8252be04ed
Refactor Headset;
2016-11-26 02:32:19 -08:00
bjorn
bd9fec011b
headsetControllerGetModel;
2016-11-25 23:32:48 -08:00
bjorn
38379d44b4
Start Controller models;
2016-11-25 01:12:36 -08:00
bjorn
fc6fd738d2
Improve support for retrieving chaperone info;
2016-11-23 20:54:04 -08:00
bjorn
7e4e9a6108
Clean up includes;
2016-11-19 01:28:01 -08:00