Commit Graph

3222 Commits

Author SHA1 Message Date
bjorn b356ce2546 Plugins;
- The plugins folder can contain native plugins.
- CMake will build plugins with CMakeLists in them
  - They can check the LOVR variable to see if they are being built inside LOVR.
  - They can set the LOVR_PLUGIN_TARGETS variable to a list of targets they build.
    - If blank, all non-imported targets added in the folder will be used.
  - The libraries built by their targets will be moved next to the executable or into the apk.
- The library loader now tries to load libraries next to the executable or in the APK.
  - It is "fixed function" now, this may be improved in the future.
- The lovr.filesystem C require path has been removed.
- enet and cjson have been removed.  Use plugins.
2020-12-28 12:37:35 -07:00
bjorn 31defbe145 maf windows PI fix; 2020-12-28 12:37:19 -07:00
bjorn 32fb7a7cb2 rm --root arg; 2020-12-25 16:52:06 -07:00
bjorn 30e01f94a3 Upgrade stb_image; rm stb_image threadlocal patch;
stb_image's vertical flip flag was not thread safe in the version
of stb_image we were using.  We patched stb_image to use a thread
local variable for the flag.  stb_image has since been upgraded to
expose a thread local version of the flag, so our patch is no longer
necessary after upgrading.

The CMake flag to enable the thread local patch did not make very much
sense because thread local stuff is unconditionally used elsewhere.
2020-12-25 16:43:25 -07:00
bjorn 4ded7ef37a CMake: fix duplicated os_linux source; 2020-12-25 16:19:09 -07:00
bjorn e16719c946 CMake: Set luajit EXCLUDE_FROM_ALL;
This prints a warning but it's nice to not build the luajit executable.

Ideally the target would not be created at all but the CMakeLists we
are using does not expose this as an option.

This is congruent with the vanilla Lua build options.
2020-12-25 16:17:59 -07:00
bjorn 6690ce9171 CMake: no GLFW_INSTALL; 2020-12-25 16:08:51 -07:00
bjorn 80062941dc CMake: Use target_compile_definitions more;
- Prefer PRIVATE
- Omit redundant -D
2020-12-25 16:06:40 -07:00
bjorn efc963d8f8 CMake hides symbols by default;
This is more consistent with tup.
2020-12-25 15:50:08 -07:00
bjorn 6cf74a976d Spacing; 2020-12-25 12:51:18 -07:00
bjorn d81a822bbc rm dead lovrMathOrientationToDirection declaration; 2020-12-25 12:50:50 -07:00
bjorn 3bc2c00b79 api doesn't include util; 2020-12-25 12:50:26 -07:00
bjorn 9bdceb0094 rm LOVR_INLINE;
Just use the inline keyword which is C99.  Getting util.h out of
maf.h is nice.
2020-12-25 12:29:22 -07:00
bjorn 1a8f972f39 rm MAF_EXPORT;
It was only used when exporting functions for JavaScript.
2020-12-25 12:22:42 -07:00
bjorn 1fc1af8203 rm LOVR_EXPORT from luaopen_lovr definition;
It's only needed on the declaration.
2020-12-25 12:22:10 -07:00
bjorn 25811f1c01 Change default require paths;
The lua_modules+deps paths were added for a LuaRocks experiment.
2020-12-25 12:20:58 -07:00
Bjorn 1513191660
Merge pull request #335 from bjornbytes/trackers
Support Vive Trackers;
2020-12-10 21:49:26 -07:00
bjorn d33053cd01 Add comment; 2020-12-03 09:03:43 -07:00
bjornbytes eb319fdade Fix trailing whitespace; 2020-11-21 14:37:47 -07:00
bjornbytes 80a33c0544 mat4_multiply -> mat4_mul;
quat_mul vs. mat4_multiply is inconsistent.  Going with mul over
multiply is consistent with vec3_sub and Lua's __mul metamethod.
2020-11-21 14:32:59 -07:00
bjornbytes 314a5a9a2d vrapi: cleanup; fix getPose for non-head/hands devices; 2020-11-21 14:24:20 -07:00
bjornbytes 71456dce6e tup: default CC to clang; 2020-11-21 14:14:22 -07:00
bjornbytes 842efe36c7 Handle openvr-specific warnings more precisely;
Instead of disabling a warning for the entire project, it is only
disabled while processing the OpenVR header.
2020-11-21 14:09:51 -07:00
Bjorn 1b4a97035a
Merge pull request #319 from alloverse/fix/lodr-headset-nil
on lodr restart, make sure lovr.headset is nil'd if none is available
2020-11-20 08:56:57 -07:00
Nevyn Bengtsson dfacb6408b on lodr restart, make sure lovr.headset is nil'd if none is available
In boot.lua, it assumes that lovr.headset.init will assert if no driver
is available. This was previously only true on the first call to it,
since after it's initialized, it'll just return early and won't assert.
This will later crash since your lua code will now see a lovr.headset
being available, but calling anything in it will crash since
lovrHeadsetDisplayDriver is NULL

After this fix, initialized becomes false before boot sets up the
headset module again, so that the assertion fires correctly.
2020-11-20 10:04:01 +01:00
bjorn ad42609b1d Support Vive Trackers; 2020-11-19 00:39:38 -07:00
Bjorn 8a3d365268
Merge pull request #299 from Wallbraker/linux-openxr
Linux OpenXR support
2020-11-16 13:51:41 -07:00
Jakob Bornecrantz 1400cd201a OpenXR: Add support for X11 and EGL on Linux 2020-11-15 22:51:20 +00:00
bjornbytes 0b73e7d7a6 KeyCode -> KeyboardKey because X11 conflict; 2020-11-15 22:51:20 +00:00
bjornbytes dda1f6f3b0 CMake: Add LOVR_SYSTEM_OPENXR;
Searches for the system-installed OpenXR loader using pkg-config.
2020-11-15 22:49:00 +00:00
bjorn a139ed33e5 Fix OpenXR view matrix; 2020-11-15 22:49:00 +00:00
Bjorn df3b918f74
Merge pull request #327 from jmiskovic/feature/curve-empty
Create empty curve with specified number of points
2020-11-13 12:33:48 -07:00
Josip Miskovic 1defba8f24 Create empty curve with specified number of points
This `lovr.math.newCurve(n)` variant is already described in API
documentation, now it is implemented.
2020-11-13 17:53:37 +01:00
Bjorn 4ec1494d29
Merge pull request #329 from jmiskovic/fix/damping-threshold
Change default damping threshold to zero
2020-11-12 18:09:17 -07:00
Nevyn Bengtsson 453d348fdc Stack trace when background thread crashes
Without this, the error handler only prints the _main thread's
error handler's_ stack trace
2020-11-12 18:08:05 -07:00
bjorn e8db2f8187 Basic cylinder uvs; 2020-11-12 18:08:05 -07:00
bjorn 43d5bc78f0 lovr.mirror disables blending when drawing headset texture;
This is so transparent headset textures (when rendering overlays)
don't ghost.  Alternatively, clear could be used.
2020-11-12 18:08:05 -07:00
bjorn b2cb2c8752 Fix l_event; 2020-11-12 18:08:05 -07:00
bjorn 64f9a310c3 Disable enet on emscripten;
UDP doesn't work properly.
2020-11-12 18:08:05 -07:00
bjorn 1a1605f9ce rm textureData include; 2020-11-12 18:08:05 -07:00
bjorn 75c37bf7e9 rm trailing whitespace; 2020-11-12 18:08:05 -07:00
bjorn 276faf30ad l_event cleanup; 2020-11-12 18:08:05 -07:00
bjorn e533adf649 openxr indentation; 2020-11-12 18:08:05 -07:00
bjorn cdac6bf146 Fix textureData include; 2020-11-12 18:08:05 -07:00
bjorn 5f0542cc43 Fix util declspec spacing; 2020-11-12 18:08:05 -07:00
bjorn 827dfda748 TextureData:encode returns Blob; rm core/png; 2020-11-12 18:08:05 -07:00
bjorn 1e7749a58a Fix MSVC warnings;
It's that time of year.
2020-11-12 18:08:05 -07:00
bjornbytes a81cd0d731 KeyCode -> KeyboardKey because X11 conflict; 2020-11-12 18:08:04 -07:00
bjornbytes 13fe2411a3 CMake: Add LOVR_SYSTEM_OPENXR;
Searches for the system-installed OpenXR loader using pkg-config.
2020-11-12 18:08:04 -07:00
bjorn 7031eaa96a tup: Fix windows openal path; 2020-11-12 18:08:04 -07:00