1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-31 17:41:11 +00:00
Commit graph

369 commits

Author SHA1 Message Date
mcc 56f8f1e26b Untested merge of Oculus Mobile branch and Oct 2018 lovr master 2018-10-22 10:44:04 -04:00
bjorn 897a09c4d7 Why are you here; 2018-10-21 09:18:58 -07:00
bjorn 518d26aad8 getDisplayDimensions: Use unsigned ints;
Fixes a warning.
2018-10-21 08:40:57 -07:00
bjorn 7b9d66e845 Fix openvr warning; 2018-10-21 08:11:07 -07:00
mcc 1b7942e02f First pass oculus mobile support
First of several commits, this is the state of hg:6b437880cc01 in my private repo. A version of shakesoda's Oculus-desktop support is tied up in this commit.

The oculus mobile version builds lovr as a library. To run it, you need to use a separate repo which includes this one and which builds an Android app.
2018-10-20 15:22:24 -04:00
bjorn da3bb42db4 Fix WebVR prototype; 2018-10-09 18:03:53 -07:00
bjorn e1d980a2d6 Re-add lovr.headset.getBoundsGeometry;
Looks like more runtimes are starting to support it.
2018-10-09 17:51:05 -07:00
bjorn 28c56f959d Use MAT4_IDENTITY macro; 2018-10-06 21:58:40 -07:00
bjorn 4279cf086f mat4_invertPose;
~3.9x
2018-10-06 21:21:25 -07:00
bjorn 5e65ac019e OpenVR organization; 2018-10-06 18:15:32 -07:00
bjorn e36d3d8352 openvr: Use WaitGetPoses in update; 2018-10-06 16:54:25 -07:00
bjorn 7976805415 openvr/oculus support individual eye mirroring; 2018-09-30 18:58:51 -07:00
bjorn a9e92b5185 Add ability to mirror specific eyes;
Doesn't work yet for OpenVR/Oculus.
2018-09-30 18:58:51 -07:00
bjorn cfac548e7b Add flag to make Canvas depth texture readable;
- DepthFormat is now just TextureFormat.
- Canvas:getDepthTexture instead of Canvas:getDepthFormat.
2018-09-27 18:34:43 -07:00
bjorn 2ec5c42f87 Fix compile warnings; 2018-09-21 23:34:15 -07: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
mcclure e2ace89b83 Fix controller:isDown() for 'grip' and 'trigger' on Oculus (#60)
Previously, controller:isDown('grip') returned always true, and for 'trigger' false was always returned. This adjusts oculusControllerIsDown() to use an axis threshold rather than the Shoulder bit for 'trigger', and to use a more demanding threshold for 'grip'.
2018-09-21 19:23:00 -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 5b5e9fbc00 WIP; 2018-09-11 15:30:31 -07:00
bjorn 6b0806d04a Don't treat lighthouses as Controllers; 2018-09-11 15:28:31 -07:00
bjorn 7309ac8ce8 Treat trackers and lighthouses as Controllers; 2018-09-11 15:23:46 -07:00
bjorn 9fa18495f2 Fix fake controller positioning; 2018-09-05 06:31:18 -07:00
bjorn b29a2d0471 Rework fake headset driver inertia; 2018-09-01 20:29:17 -07:00
bjorn ea331a12be Fix bugs; 2018-08-31 23:24:59 -07:00
bjorn ce2dfb523e Make window mono by default;
The window is now mono by default to make the error screen better and better enable non-stereo uses.  The Camera can now request that the window be treated as stereo.
2018-08-29 21:22:13 -07:00
bjorn 0dbdc78c87 Fix fake driver projection; 2018-08-29 21:22:13 -07:00
bjorn 06fa846680 Resolve supports multiple color attachments; 2018-08-29 21:22:12 -07:00
bjorn 6104d3362e OpenVR MSAA flags; 2018-08-29 21:22:12 -07:00
bjorn 3fb1b49549 MSAA canvases/textures but no resolving yet; 2018-08-29 21:22:12 -07:00
bjorn 36ec69e244 Fix pointer cast; 2018-08-29 21:21:38 -07:00
bjorn 590668a8d6 lovrGraphicsBlit; 2018-08-29 21:21:38 -07:00
bjorn 26f411f43f Other headset drivers use stereo display dimensions; 2018-08-29 21:20:01 -07:00
bjorn 0af2704e5c openvr canvas changes; 2018-08-29 21:20:01 -07:00
bjorn 21a869cc8b Clean up; 2018-08-29 21:19:41 -07:00
bjorn 1ea3c84be9 Ugly viewport stuff; 2018-08-29 21:19:07 -07:00
bjorn 4cc8bd7582 Canvas depth buffer; 2018-08-29 21:18:33 -07:00
bjorn e9ebdc2d58 Rework TextureData creation functions; 2018-08-29 21:18:32 -07:00
bjorn 7795bb9276 I came in like a wrecking ball; 2018-08-29 21:18:32 -07:00
bjorn 3cc263454b rm CONTROLLER_BUTTON_JOYSTICK; 2018-08-22 11:27:36 -07:00
bjorn c3b79b7274 Use updateWindow in fake headset getDisplayDimensions; 2018-08-20 15:09:08 -07:00
mcc f69f6169fe Fix ControllerButton ordering, which broke isDown
The first item in ControllerButtons was NULL, which meant luaL_checkoption could not work.
2018-08-20 13:29:45 -04:00
bjorn 0b70285e30 Fix WebGL memcpys; 2018-08-02 03:40:47 -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 3c2d644d9f Fake headset doesn't stomp on existing glfw callbacks; 2018-07-27 19:53:40 -07:00
bjorn 156c0cde5d Condense event code a bit; 2018-07-26 19:38:01 -07:00
bjorn bc2d638b00 Refs know their type; 2018-07-24 19:14:29 -07:00
bjorn 2dc79a48a8 Use single pass stereo rendering when supported; 2018-07-21 05:30:13 -07:00
bjorn cfd96b2dee Fix Canvas stuff; 2018-07-17 19:20:33 -07:00
bjorn c065bda3f0 Some optimization/profiling of state changes; 2018-07-17 18:49:42 -07:00
bjorn 05b0ea203f WebVR update; 2018-07-17 17:21:15 -07:00
bjorn 65cd5e2eb9 Fix fake headset display dimensions in lovr.load; 2018-07-17 17:21:15 -07:00
bjorn f1f2c7b401 Yay all opengl is in opengl.c; 2018-07-17 17:21:15 -07:00
bjorn 2cf0e15eb0 Morganization; Fix some Canvas issues; 2018-07-17 17:21:15 -07:00
bjorn f57810cd7a Morganization; 2018-07-17 17:21:15 -07:00
bjorn b64489b020 Pipeline stack for graphics state; Simplify clearing; 2018-07-17 17:21:14 -07:00
bjorn 6933914650 Shift around glfw includes; 2018-07-17 17:21:14 -07:00
bjorn e6e8e137c0 Clean up drawing; 2018-07-17 17:21:14 -07:00
bjorn c35415ba66 Move over texture binding; 2018-07-17 17:21:14 -07:00
bjorn c86bb419f1 Use indirection for graphics object access;
This will make it easier to move stuff around.
2018-07-17 17:21:14 -07:00
bjorn 57c8dfe146 Clean up includes; 2018-07-04 13:51:35 -07:00
bjorn 6cbf4075ec Render OpenVR mirror window in stereo; 2018-06-12 20:14:53 -07:00
bjorn 4370b7f0f5 Fake headset cleanup; 2018-06-10 10:18:54 -07:00
bjorn df87eeee31 Inertia tuning; 2018-06-10 09:51:34 -07:00
bjorn ab1e46cab4 Add inertia timeout; 2018-06-10 09:51:34 -07:00
bjorn 8e013877d6 Add inertia to fake headset mouselook; 2018-06-10 09:51:34 -07:00
bjorn 17bf06b817 Fixes for openvr driver; 2018-06-04 19:49:36 -07:00
bjorn 6ff7292333 Mostly remove instanced stereo rendering; 2018-06-03 17:18:42 -07:00
bjornbytes c68d65441c Draw the rest of the fucking owl; 2018-05-27 19:05:10 -07:00
bjorn df876bf3b2 Static display; 2018-05-27 19:05:10 -07:00
bjorn 8bc7802246 Controller events; 2018-05-27 19:05:10 -07:00
bjorn f4ecdb074b WebVR isMounted I guess; 2018-05-27 19:05:10 -07:00
bjorn a3a59f01a3 WebVR controller input;
No events yet.
2018-05-27 19:05:10 -07:00
bjorn be217a9b63 Some basic WebVR Controller functions; 2018-05-27 19:05:10 -07:00
bjorn 805629b4ca WebVR controller list; 2018-05-27 19:05:10 -07:00
bjorn 7ffd3fc25d Use more primitive getControllers signature; 2018-05-27 19:05:10 -07:00
bjorn fd5ae4d124 webvrGetEyePose; 2018-05-27 19:05:10 -07:00
bjorn ab2594b204 WebVR velocity functions; 2018-05-27 19:05:10 -07:00
bjorn a3e4b9b2b3 Change mat4_transform signature; 2018-05-27 19:05:10 -07:00
bjorn 498a1843ad Work on WebVR pose input; 2018-05-27 19:05:10 -07:00
bjorn 859251d020 Start WebVR rewrite; 2018-05-27 19:05:10 -07:00
bjorn c767e9c165 Simplify headset structure; 2018-05-27 19:05:10 -07:00
3snow p7im 69cf13f4ae Only apply alignment fix when including openvr api 2018-04-22 18:22:40 -07:00
3snow p7im 2bfba10f81 Fix button controller button detection for linux and mac 2018-04-22 09:25:55 -07:00
bjorn 3e5e0f143b WebVR fixes; 2018-04-11 18:32:56 -07:00
bjorn 3528182919 openvr driver uses correct offset; 2018-04-11 00:26:16 -07:00
bjorn 7dc8f4ad58 rm lovrEventRemovePump in openvr driver; 2018-04-11 00:02:02 -07:00
bjorn 1ad00328c1 Add a flag for autogenerating Canvas mipmaps; 2018-03-22 10:58:53 -07:00
bjorn 95da07d165 Stereo canvases;
Canvases can be created with the "stereo" flag to make it a stereo
Canvas.  If a Canvas is stereo, everything rendered to it will be
rendered to the left and right halves of it, using left/right
view and projection matrices.  Headset drivers will use stereo
Canvases to improve performance.
2018-03-22 09:57:44 -07:00
bjorn 334e218e4c Diff render target state better; 2018-03-22 09:57:44 -07:00
bjorn 988d8c7d23 Rename blit to fill; 2018-03-22 09:57:44 -07:00
bjorn 5feb47c5b7 Remove eye argument from lovr.draw; 2018-03-22 09:57:44 -07:00
bjorn 8b201838b6 Add lovr.graphics.blit for fullscreen quads; 2018-03-22 09:57:44 -07:00
bjorn 2cbd565522 Fix texture submit bounds; Fix layer canvas bug; 2018-03-22 09:57:44 -07:00
bjorn 2def650abd Refactor layers/displays; 2018-03-22 09:57:44 -07:00
bjorn ddb22aef0e Refactor headset offset; 2018-03-22 09:57:44 -07:00
bjorn 1f1232505e Uniform buffer objects for matrices;
Still hacky.
2018-03-22 09:57:44 -07:00
bjorn 3064eff017 Hack everything but it mostly works; 2018-03-22 09:57:44 -07:00
bjorn d77b139d21 Make Mesh more lightweight; 2018-03-21 15:36:00 -07:00
bjorn f6a9f8ee19 lovr.headset.setMirrored works with fake driver; 2018-03-19 12:05:04 -07:00