1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-15 10:13:34 +00:00
Commit graph

1608 commits

Author SHA1 Message Date
bjorn 5f990d8c9f Attempt to fix state.offset;
The goal is to ensure that (for 3DOF devices) all poses are reported
to include the state.offset vertical transform applied to them.  Previously,
only rendering was using state.offset.

This is important to fix spatial audio.

Is doing this in every driver problematic?  What if we did it in the
Lua bindings?  That way it could be handled in one place.
2018-10-29 10:36:58 -07:00
mcc 79b0c19254 Oculus mobile: First round of fixes requested in PR review
Formatting, back out bad change to Win32 build, support getOs()
2018-10-28 22:55:37 -04:00
bjorn 987b24fd19 lovr.filesystem.write: Fix unintended erroring behavior; 2018-10-28 19:46:31 -07:00
mcc 9328542ff5 Correct usage of conf "offset" and getOriginType in Oculus Mobile
Also whitespace cleanup
2018-10-28 17:16:48 -04:00
mcc dd440b2ada Code cleanup after all these changes, fix build 2018-10-28 15:31:27 -04:00
mcc dba6724915 Framebuffer and depthbuffer should also be passed into the canvas create-from-handle 2018-10-27 23:11:11 -04:00
mcc c68c850157 Give lovrCanvasCreateFromHandle the option of not deleting framebuffer on canvas delete, also fix default texture issue 2018-10-27 22:15:49 -04:00
bjorn 654b894ded Add lovr.graphics.setProjection;
It's not very good.  It only takes Transforms and sets the projection
for both eyes.  And the projection gets reset at the beginning and
end of lovr.headset.renderTo.  It's meant to be a backdoor.
2018-10-26 17:17:18 -07:00
bjorn f6d5bf325a Move lib/dds.h into data/textureData.h; 2018-10-26 16:56:16 -07:00
mcc d17dec1b0e Graphics now draw, although head tracking is not correct 2018-10-26 01:05:28 -04:00
bjorn a0f2a34647 Prefer modules in the exe to modules on disk;
This fixes the lovr-docs loader and is arguably the better behavior.
2018-10-25 06:49:03 -07:00
mcc b892d0143f Remerge oculus mobile and master branches (to get lovrCanvasCreateFromHandle) 2018-10-25 00:06:39 -04:00
mcc 5ad8fdd3e3 Fixes as far as running without crashes, no display yet 2018-10-24 23:40:11 -04:00
bjorn 494d2c6cc8 audio: Gracefully handle absence of ALC_SOFT_HRTF; 2018-10-24 09:57:03 -07:00
bjorn 9010af3ea4 lovrRandomGeneratorGetState: Improve correctness; 2018-10-24 09:50:00 -07:00
bjorn 0f54190a9f rm weird include in dds.h; 2018-10-24 09:42:32 -07:00
bjorn ee9d575cba lovrCanvasCreateFromHandle;
Was it really that easy?
2018-10-24 09:42:32 -07:00
bjorn 8d29bbc68c Canvas.count -> Canvas.attachmentCount; 2018-10-24 09:42:32 -07:00
bjorn 5f8f8a540e lovr.filesystem no longer relies on arg global; 2018-10-23 11:12:13 -07:00
bjorn 43309efc57 Fix problems with variants; 2018-10-23 11:11:47 -07:00
bjorn cf3b060fe5 Fix MSVC issues with variables named near/far; 2018-10-22 16:40:12 -07:00
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 485f65b013 Transform:setOrthographic; Transform:setPerspective; 2018-10-21 09:06:37 -07:00
bjorn 4f542902a1 mv lovr.js webvr.js;
To allow for webxr.js and lovr.js to be used for...other things.
2018-10-21 08:56:57 -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 ffe3d9d7ef Default emissive colors to transparent black; 2018-10-11 02:07:09 -07:00
bjorn da3bb42db4 Fix WebVR prototype; 2018-10-09 18:03:53 -07:00
bjorn 01405e113a Ensure Microphones properly stop recording; 2018-10-09 17:56:26 -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 7829f3f75f mat4_multiply: SSE
~2.5x
2018-10-06 21:42:52 -07:00
bjorn 0b2a39fb03 Return original matrix in mat4_invertPose; 2018-10-06 21:26:17 -07:00
bjorn 4279cf086f mat4_invertPose;
~3.9x
2018-10-06 21:21:25 -07:00
bjorn 11e6580717 mat4_transpose: Use SSE intrinsics;
~1.6x
2018-10-06 20:04:39 -07:00
bjorn 7354465e12 Add LOVR_USE_SSE; 2018-10-06 20:03:48 -07:00
bjorn 5e65ac019e OpenVR organization; 2018-10-06 18:15:32 -07:00
bjorn ba68c0c127 Add mat4_getPose helper; 2018-10-06 16:54:41 -07:00
bjorn e36d3d8352 openvr: Use WaitGetPoses in update; 2018-10-06 16:54:25 -07:00
bjorn 086a0030b1 Shader:send/ShaderBlock:send fills in nils with 0's; 2018-10-06 16:15:38 -07:00
bjorn 0d72922f77 Add lua_modules and deps to default C require path; 2018-10-05 00:43:41 -07:00
bjorn 70e473adb2 Add deps to default require path; 2018-10-05 00:43:41 -07:00
bjorn 6019de19d6 Add missing modelData include; 2018-10-01 21:07:29 -07:00
bjorn a1d365fc25 Plumb new mirror settings through WebVR; 2018-09-30 18:58:51 -07:00
bjorn 7976805415 openvr/oculus support individual eye mirroring; 2018-09-30 18:58:51 -07:00
bjorn 8d076f31c1 Fill accepts UV subrect to use; 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 cd5df6b148 Add __declspec; 2018-09-27 21:29:28 -07:00
bjorn 2398e592a9 Darn USE_MATH_DEFINES; 2018-09-27 20:32:45 -07:00
bjorn 816fda2177 Fix everything and merge; 2018-09-27 18:38:44 -07:00
bjorn 238af0064f Add missing lovr.filesystem.unmount function; 2018-09-27 18:38:44 -07:00
bjorn eb40c1980b Merge lovr.c into main.c; 2018-09-27 18:38:44 -07:00
bjorn 3e2259fc99 version/os refactor; 2018-09-27 18:38:44 -07:00
bjorn cee3c28f4e luax_atexit; rm lovrDestroy;
Modules register themselves in the registry for destruction at
lua_close instead of having a hardcoded list in lovrDestroy.
2018-09-27 18:38:44 -07:00
bjorn 92e6ad93cb Dynamically load modules; 2018-09-27 18:38:44 -07:00
bjorn e02d22365f api: refactor; 2018-09-27 18:38:44 -07:00
bjorn 792834623c api: more modular helper functions; 2018-09-27 18:38:44 -07:00
bjorn 1f12717357 Canvas creates Textures with clamp filter; 2018-09-27 18:37:13 -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 56fa853b09 Fix possible overflow in modelData texture path; 2018-09-26 23:16:18 -07:00
bjorn 05802f3e90 util: rm vec_uint; 2018-09-26 10:49:33 -07:00
bjorn 148a2bdb45 Error system no longer relies on Lua; 2018-09-26 10:39:17 -07:00
bjorn 737f0b6dc3 Fix edge case in lovrMeshResize;
Also make BufferUsage usage more consistent.
2018-09-23 19:13:32 -07:00
bjorn 2ec5c42f87 Fix compile warnings; 2018-09-21 23:34:15 -07:00
bjorn 2a17f6e4bb Add LOVR_USE_ASSIMP;
lovr.graphics.newModel and lovr.data.newModelData will return nil
if assimp is disabled.
2018-09-21 19:25:48 -07:00
bjorn 2d788e2f41 rm USE_OPENAL; 2018-09-21 19:25:48 -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 48dcb5067a Fix lovrTextureCreateFromHandle prototype; 2018-09-11 15:56:06 -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 75ca4b0cba lovrTextureCreateFromHandle; 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 8b7bfec9d3 Add emscripten shell file;
To make it easier to build and test WebVR.
2018-09-06 16:05:39 -07:00
bjorn 40e6f6a81c Handle window resizes properly;
Fix for the web where the window actually resizes.
2018-09-05 11:11:57 -07:00
bjorn 924eb5fa0a Shader:send: Add a missing break;
opps
2018-09-05 10:13:04 -07:00
bjorn 8a7054e793 v0.11.0; 2018-09-05 08:02:50 -07:00
bjorn 9fa18495f2 Fix fake controller positioning; 2018-09-05 06:31:18 -07:00
bjorn ca6bd29501 bindBlockBuffer: fix buffer target for emscripten; 2018-09-05 04:44:19 -07:00
bjorn a13849b525 ShaderBlock:getShaderCode: Fix string length calculation; 2018-09-05 04:40:22 -07:00
bjorn 7a8abc80a2 Copy Transform objects more safely in Shader[Block]:send; 2018-09-05 04:22:12 -07:00
bjorn 1e351255f1 Fix UBO usage enum; 2018-09-05 04:10:12 -07:00
bjorn ddba19efad Work around glGenerateMipmap on macOS; 2018-09-05 03:54:43 -07:00
bjorn a5b9d267d0 Ensure int attributes are signed; 2018-09-05 03:25:13 -07:00
bjorn f47dccaaa3 Ensure GL state is tracked properly between restarts; 2018-09-04 15:02:55 -07:00
bjorn 5ebea9db71 Destroy Lua objects before destroying lovr;
This fixes a bug where physics Worlds are destroyed after
ODE is deinitialized, which can cause a segfault.  Instead we
collect Lua objects first and then destroy each module.  This
makes more sense and doesn't seem to have any consequences...
2018-09-04 14:45:01 -07:00
bjorn 7e1687ce6b Fix Shader:sendImage; 2018-09-04 06:58:54 -07:00
bjorn 1b3e8c9766 Flip cubemap x texture coordinate; 2018-09-04 06:42:04 -07:00
bjorn 4e1757210e Load cubemap images better; 2018-09-03 20:59:12 -07:00
bjorn f17d57e987 Fix up problems with tracking incoherent resources; 2018-09-02 22:20:32 -07:00
bjorn fbd294f76d Empty textures default to linear instead of sRGB; 2018-09-02 21:15:59 -07:00
bjorn 2e881cbda0 Fix bad assert for image uniforms; 2018-09-02 21:15:43 -07:00
bjorn 3cc1b60fd8 Better default for anonymous texture depth; 2018-09-02 21:11:48 -07:00
bjorn b29a2d0471 Rework fake headset driver inertia; 2018-09-01 20:29:17 -07:00
bjorn 7aedff1278 Fix srgb settings for model import; 2018-09-01 06:27:24 -07:00
bjorn 59280c4e9d Fixes for compressed textures; 2018-09-01 05:40:45 -07:00
bjorn 064adef0bb Transform:getMatrix accepts target table; 2018-09-01 02:52:16 -07:00
bjorn b959c30424 lovrPoseMatrix; 2018-09-01 02:52:02 -07:00
bjorn c584354c92 lovrInstanceID; 2018-09-01 02:09:59 -07:00
bjorn 8b9e9eba9e Use GLSL 430 when available; 2018-09-01 01:57:38 -07:00
bjorn ea331a12be Fix bugs; 2018-08-31 23:24:59 -07:00
bjorn 4e61d2ea3b Really icky conditional shader compilation;
But I can't think of another way to do it.
2018-08-31 19:52:03 -07:00
bjorn d5c884b1d8 Fix emscripten warning; 2018-08-31 18:10:51 -07:00
bjorn 7b9a0ba048 Organize uniforms better; 2018-08-31 16:45:05 -07:00
bjorn dca52ee967 Improve newCanvas API; 2018-08-31 16:37:30 -07:00
bjorn a5256aaa27 Happy little graphics refactors; 2018-08-31 06:03:35 -07:00
bjorn 0ce6e046a6 lovrViewportCount; Multiply vertex divisors; 2018-08-31 02:41:50 -07:00
bjorn f872a5f094 Re-enable threads for emscripten;
They don't appear to work very well but this simplifies code a lot.
2018-08-30 22:09:54 -07:00
bjorn 017066d45e More emscripten stuff;
SwapInterval was removed to ensure RAF timing is used.
2018-08-30 21:58:00 -07:00
bjorn 7222d1fa26 Use same window hints for webgl and desktop;
It doesn't seem like this causes any problems anymore.
2018-08-30 21:43:30 -07:00
bjorn 7055875cfa rm unnecessary emscripten ifdef for glfw context;
Now that the bug is fixed!
2018-08-30 21:40:31 -07:00
bjorn b7faeb8c44 Add precision for ints; 2018-08-30 21:37:45 -07:00
bjorn 7e889a564a Emscripten fixes; 2018-08-30 20:56:08 -07:00
bjorn ab1651a1a0 Diff active texture; 2018-08-30 19:42:01 -07:00
bjorn a8f9b899e0 Cleanup; 2018-08-30 19:40:31 -07:00
bjorn 04e119e413 Reduce size of default font;
It only supports the ISO8859-1 character set now.
2018-08-30 18:13:47 -07:00
bjorn 7c21d77a6e rm singlepass conf flag; Viewports; getSupported.singlepass; 2018-08-30 04:02:58 -07:00
bjorn 5ab15e36a8 Declare extension before in; 2018-08-30 03:43:41 -07:00
bjorn 20faaf7479 ShaderBlock buffer bind fix; 2018-08-30 03:41:10 -07:00
bjorn 4631d2dacc Test shader extension fallback; 2018-08-30 03:38:31 -07:00
bjorn dd889a1c4a Diff viewport state; 2018-08-30 03:25:16 -07:00
bjorn e6a7a4f922 Redo singlepass; 2018-08-30 00:52:38 -07:00
bjorn 6058fbc5cd Modify GL extensions;
- rm NV_stereo_view_rendering
- rm NV_viewport_array2
- add AMD_vertex_shader_viewport_index
2018-08-30 00:26:10 -07:00
bjorn a97c8e2266 Fix skybox texture mapping; 2018-08-30 00:06:29 -07:00
bjorn 1f4fee9b28 Fix newTexture flags; 2018-08-29 21:45:08 -07:00
bjorn 58747d6673 Rebase; 2018-08-29 21:31:07 -07:00
bjorn 56821b3aba lovrCanvasBlit works with MSAA; 2018-08-29 21:22:13 -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 e2d7310914 Fix sneaky MSAA bug; 2018-08-29 21:22:13 -07:00
bjorn 0dbdc78c87 Fix fake driver projection; 2018-08-29 21:22:13 -07:00
bjorn 4215ea2e24 Canvas getters; 2018-08-29 21:22:13 -07:00
bjorn 3c78eae42b Fix interaction between mipmaps/msaa resolution; 2018-08-29 21:22:12 -07:00
bjorn e287cee1c9 Canvas:newTextureData; 2018-08-29 21:22:12 -07:00
bjorn 74fec01e60 Canvas mipmaps flag; 2018-08-29 21:22:12 -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 a4912ce96e Only resolve if MSAA; 2018-08-29 21:22:12 -07:00
bjorn a5f6ff506b MSAA resolve; 2018-08-29 21:22:12 -07:00
bjorn c244cc02c1 rm AttachmentTypes; DepthFormats; 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 6b87a71261 Allow Canvases to be used as Textures sometimes; 2018-08-29 21:22:11 -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 8bb45f4de4 Clean up viewports; 2018-08-29 21:21:07 -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