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

482 commits

Author SHA1 Message Date
bjorn f013831b73 Reorganize thread code;
- Put channel into thread module file.
- Make thread internals private.
- Handle more thread bookkeeping in thread module instead of Lua API.
- Fix a few race conditions/leaks nobody was probably ever going to hit.
2022-12-10 20:13:39 -08:00
Ilya Chelyadin f62c99e469 Fix typos, indentation, minor issues 2022-12-08 07:05:30 +03:00
bjorn 9b02f8cace webgpu -> wgpu; 2022-12-03 14:15:28 -08:00
Ilya 92c136bc73
Merge branch 'bjornbytes:master' into picofix 2022-12-01 21:20:33 +03:00
bjorn b4b2b56c90 CMake: Don't recompile shaders on every build;
Recompile them only when needed.
2022-11-26 14:20:09 -08:00
bjorn 23f747d4c3 Fix CMake; 2022-11-23 14:12:58 -08:00
Ilya Chelyadin 3f20364c3f Pico is back!
Tested on Pico Neo 3 with PUI v4.9.3
Also included generic (Monado-Android) Android flavor.
2022-11-22 22:01:13 +03:00
bjorn b9ef1772da LÖVR no longer depends on system-installed Vulkan;
Experimental.
2022-11-14 20:54:43 -08:00
bjorn 7d3cc45cc2 LÖVR submodule improvements;
- Allow parent CMake projects to expose symbols more easily
- Allow for custom plugins folder
- Include directories are always relative to lovr's source dir

Co-authored-by: Ilya Chelyadin <ilya77105@gmail.com>
2022-11-09 22:42:50 -08:00
bjorn b81f86b5ad rm Android flavors for now;
There used to be oculus and pico but pico doesn't work anymore.

Eventually things will converge on the standard loader and we won't
need different loaders, but manifests may require flavors.
2022-11-09 00:21:49 -08:00
Josip Miskovic 92975d34fc Cannot use Android-built glslang on desktop 2022-10-31 17:59:42 -07:00
Ryan Pavlik 7d0ac1520a Use the internal glslang submodule for compiling shaders
Fixes #579
2022-10-06 12:11:01 -07:00
bjorn ef87ec8cba CMake: Build OpenXR as dll on windows; 2022-10-02 15:07:12 -07:00
Josip Miskovic 5ab6eaadda Include openxr loader dll when enabled 2022-09-30 08:26:29 -07:00
bjorn 4f4477b6c8 CMake: Fix plugins that use static libraries; 2022-09-14 21:33:24 -07:00
bjorn 4bd316b887 CMake: Use glslangValidator executable from Vulkan SDK; 2022-08-06 18:55:40 -07:00
bjorn a2ee485d41 Fix most windows warnings in graphics code;
Co-authored-by: mcc <andi.m.mcclure@gmail.com>
2022-08-06 18:05:30 -07:00
bjorn c41188c4b4 Merge branch 'master' into dev 2022-08-06 11:08:02 -07:00
bjorn 45135899a1 Readback, mostly; 2022-07-14 00:05:58 -07:00
bjorn 0b76ab7e96 Add a few Tally things; 2022-07-12 19:59:12 -07:00
bjorn 2b7b513824 Disable OpenXR on macOS;
It doesn't seem to work.
2022-07-10 17:08:53 -06:00
mcc c34ee01c1b Fix typo in msvc warnings patch 2022-07-03 21:34:16 -07:00
mcc 15aa08bbe7 Adjustments to MSVC warnings PR based on github comments 2022-07-03 21:34:16 -07:00
mcc 28d64b6ced Fix various compiler warnings in MSVC (non graphics edition)
- Put in casts/checks in audio code when assigning size_t to 32 bit
- () is different from (void)
- Turned off warnings for anonymous unions and negating unsigned integers which were technically accurate but unhelpful (and interfered with bit conversion and a weird bit math construct in audio.c) (CMakeLists only)
2022-07-03 21:34:16 -07:00
bjorn fe31431016 rm EGL/X11; Android fixes; 2022-06-20 18:23:28 -07:00
bjorn 7def390f9c OpenXR/CMake fixes; 2022-06-20 15:51:24 -07:00
bjorn c1bb47d737 Merge branch 'master' into dev 2022-06-16 23:50:11 -07:00
bjorn 711a7df43b CMake can compile shaders; 2022-06-07 21:19:42 -07:00
bjorn 7605d0b04e CMake: always move libraries;
Instead of only moving them when lovr is rebuilt.

That way plugins get moved into bin when their source changes.
2022-06-02 20:27:35 -07:00
bjorn de30337374 core/spv; 2022-05-22 15:02:42 -07:00
bjorn 355b2bf85b Switch to glslang fork;
The reason is that the glslang C API doesn't support the extra
overloads that let you provide multiple strings or the lengths for
strings.  In our case our shader blobs are not null terminated, so
sending them to glslang would overrun the buffer.  I forked glslang
and modified the C API to support a length parameter.
2022-05-22 14:58:07 -07:00
bjorn d9e5ba8b9f Slightly broken compileShader/newShader; 2022-05-09 11:47:06 -07:00
bjorn 9ae285afa7 Add glslang; 2022-05-09 11:45:15 -07:00
bjorn fa8be29dfa Use unique subdirectories for plugins in CMake; 2022-05-06 11:11:59 -07:00
bjorn 22e15513f9 Sampler; 2022-05-01 15:47:17 -07:00
bjorn 77a32333e0 lovr.graphics.pass; 2022-04-30 18:56:38 -07:00
bjorn e80d254dc6 Texture API;
Except newTexture because it's hard or something
2022-04-29 20:56:23 -07:00
bjorn 005530c9c0 CMake: Add C_STANDARD_REQUIRED;
When you set C_STANDARD, CMake won't listen and will decay to older
C versions if the one you asked for isn't supported.

You can set C_STANDARD_REQUIRED, but it won't work in VS 2017 and below.

I guess this is better than nothing.
2022-04-27 20:31:10 -07:00
bjorn a3438274b5 Add non-scratchpad Buffers;
This includes the memory allocator and the morgue.

You can't actually write any data to the buffer yet, since we don't have
commands or temp buffers.  Temp buffers (scratchpads) are coming soon.
2022-04-26 15:32:54 -07:00
bjorn 557f18ab3c Add gpu_webgpu;
Send help
2022-04-21 17:58:26 -07:00
bjorn 40e9a4ab73 core/gpu; 2022-04-21 17:39:59 -07:00
bjorn 37221afbc6 rm graphics module; 2022-04-21 17:39:58 -07:00
bjorn 66c74a7cd3 CMake moves OpenXR loader on Linux; 2022-04-19 22:41:18 -07:00
bjorn fdfc63db63 Windows yells at ode less; 2022-03-30 13:40:27 -07:00
bjorn 5d271de91a mv map util; 2022-03-30 12:34:38 -07:00
bjorn faa42ee38b mv resources etc; 2022-03-30 12:34:34 -07:00
bjorn f347ac98d9 Switch to simplex noise;
Pending test
2022-03-27 01:21:52 -07:00
bjorn d1dc2f3199 rm pico;
Notes:

- We can actually use a single Activity.java file for oculus/pico now
- We can unconditionally compile os_android.c on Android
- No need for including extra jars in build system
- Headset rendering is guaranteed synchronous now, no need to ref L
- Add an "android flavor" build setting to differentiate between oculus
  and pico devices, since they both use OpenXR.
- Update the pico manifest to reflect their OpenXR sample
- Remove some OpenGL hacks that aren't necessary anymore
2022-03-22 16:03:21 -07:00
bjorn f1cc668298 rm vrapi; 2022-03-22 16:02:45 -07:00
bjorn 4f39f4f68f rm oculus; 2022-03-22 16:02:45 -07:00
bjorn b9889ca97a rm openvr; 2022-03-22 16:02:45 -07:00
bjorn 2da18d419b mv util src; 2022-03-22 00:13:38 -07:00
bjorn 546c7c93b1 Make OpenXR the default driver built by CMake; 2022-03-21 12:02:17 -07:00
bjorn c097a266b4 Add Oculus OpenXR loader submodule; 2022-03-21 03:10:13 -07:00
bjorn fc47bde23b Compile as C11 instead of C99; 2022-03-20 01:44:18 -07:00
bjorn 07074a39a8 mv os_web os_wasm;
Gotta pick a consistent name.
2022-01-06 22:23:21 +02:00
bjorn 20e4567bd6 Merge branch 'master' into dev 2021-12-20 17:12:39 +02:00
Nevyn Bengtsson 06dd81f6d7 Use d8 instead of dx
dx was deprecated years ago, and d8 replaces it. dx is
removed in build-tools 31, so it's best not to depend on it.

In addition, d8 now supports Java 11 (class version 55), which
is required to use the javac bundled with Android Studio.
2021-12-07 08:17:56 -08:00
mcc db28be591a Fix incomplete LOVR_ENABLE PHONON/OCULUS define change 2021-07-23 09:55:16 -07:00
bjorn bb78d266b4 DESKTOP_HEADSET -> DESKTOP; 2021-07-18 22:24:00 -07:00
bjorn fdb8a2423c Merge branch 'master' into dev 2021-07-10 09:44:03 -07:00
mcc d7d28eaba0 Fix copy so that plugins can work on mac 2021-06-24 21:04:58 -06:00
kokokoshka 7e52ffe956 MinGW support 2021-06-18 15:45:26 -06:00
brainrom 3d1775e468 Lua links properly
mlib required to build Lua, dl lib used to load compiled plugins from shared libraries.
2021-06-10 10:37:30 -06:00
Nevyn Bengtsson 28abb7270d Omit main() function if requested 2021-05-31 09:07:38 -06:00
Nevyn Bengtsson 4a3d979925 remove redundant link_directories 2021-05-31 09:07:38 -06:00
Nevyn Bengtsson 88de9a41af LOVR_BUILD_WITH_EXPORTED_INTERNALS --> LOVR_SYMBOL_VISIBILITY 2021-05-31 09:07:38 -06:00
Nevyn Bengtsson 7b70fac0bb mic permissions code for macos 2021-05-31 09:07:38 -06:00
Nevyn Bengtsson 9c37a6cdc8 don't include main/winmain in dll build
otherwise the parent app can't define a main of its own
2021-05-31 09:07:38 -06:00
Nevyn Bengtsson 9f697de402 allow plugins from parent project
So that projects that use lovr as a submodule can
inject their own plugins.

By picking them up from the _root_ project, whatever project that
is embedding lovr can decide for itself what plugins to use. This
is cleaner than using a separate glob and a variable in the case
where lovr will never come bundled with a standard set of plugins.
2021-05-31 09:07:38 -06:00
Nevyn Bengtsson 361c6a1356 Allow brave/foolish souls to use internal private C API 2021-05-31 09:07:38 -06:00
Nevyn Bengtsson ac3d873311 use generator expression for --ks-pass 2021-05-31 09:07:38 -06:00
Nevyn Bengtsson 5ab7bebf45 Android: Allow having a key pass (not just a keystore pass) 2021-05-31 09:07:38 -06:00
Nevyn Bengtsson 1756983eb3 Embed submo's to VR SDKs 2021-05-31 09:07:38 -06:00
bjorn 87bf9c7b27 Merge branch 'master' into dev 2021-04-27 22:20:38 -06:00
mcc 0209e75137 Pass -DLOVR_SANITIZE to CMake config for AddressSanitizer+ubsan 2021-04-27 21:30:31 -06:00
mcc 2a30a7f38d Get SteamAudio and OculusAudio working on mac. Also add the Phonon target as a dependency when LOVR_USE_STEAM_AUDIO (all platforms), which has no effect but could be useful later if SteamAudio acquires any build steps while still being a runtime-linked library. 2021-04-27 00:02:44 -06:00
mcc fc87bffbe0 Fix Android CMake build. 2021-04-20 07:45:39 -06:00
Jakob Bornecrantz b02c30a0e4 Make bin directory AppImage ready 2021-04-13 11:03:57 -06:00
bjorn f565a7b69b rm linking to OpenSLES; 2021-04-03 18:42:34 -06:00
bjorn bbc868b2ea CMake: Only strip android libraries in release mode; 2021-04-03 01:18:58 -06:00
bjorn 4b1cca50bc CMake: msdfgen is always shared; 2021-04-03 01:18:40 -06:00
bjorn 618fb2ed2f CMake: macOS builds into bin dir and moves libraries there;
A previous change modified the rpath to always be @executable_path.

This patch moves all libraries next to the executable, so that they can
load properly with the new rpath.  For better organization, everything
is nested into a bin directory.  This is congruent with how linux works.

Bundled builds remain the same -- they are using @executable_path like
before, and libraries get moved next to the executable inside the .app.
2021-04-02 22:17:58 -06:00
bjorn 245fed5e39 CMake: macOS always builds with @executable_path rpath; 2021-04-02 01:07:37 -06:00
bjorn 7e003032b5 Add favicon to wasm build;
Totally useless, but totally awesome.
2021-03-31 14:28:05 -06:00
mcc 896ebf0181 Phonon/SteamAudio support in CMake build 2021-03-30 18:38:14 -06:00
mcc 3619626710 CMake build fix for Oculus Audio on Quest 2021-03-23 14:37:30 -06:00
bjorn 121e0fde4c Add vanilla Lua submodule;
This needs testing on other platforms.
2021-03-23 14:31:04 -06:00
bjorn 49f02c65d8 rm lua submodule; 2021-03-23 14:31:04 -06:00
mcc e3c2b5b865 Fix Android build
- Fix typos after refactor
- Fix CMake when using ANDROID_PACKAGE
2021-03-22 14:09:16 -06:00
bjorn f9f4907a50 phonon fixes; 2021-03-07 22:42:54 -07:00
bjorn 30a0556f1d Fix oculus spatializer; 2021-03-07 21:19:24 -07:00
bjorn f65f4c4075 Switch OpenVR back to non-imported library;
Building it from source results in a 7-8x smaller binary.
2021-03-04 18:40:58 -07:00
bjorn 746735259c Windows: Always use WinMain for UTF8 command line arguments;
This fixes problems with paths containing special characters on windows.
2021-03-02 11:49:08 -07:00
bjorn 1c3a01de2a Add windows icon; 2021-03-01 17:45:12 -07:00
bjorn f3a12f2af9 Turn openvr into an imported library;
It uses a deprecated version of CMake, creates weird directories,
is slow to compile, and causes tup to rely on CMake more.  Instead,
just use its binary artifacts directly.
2021-02-28 15:49:06 -07:00
bjorn 8a29c9c1f5 CMake: whitespace; 2021-02-25 16:31:14 -07:00
bjorn 4f5adbc64c lovr.system; 2021-02-25 09:00:12 -07:00
bjorn 8bbb092497 Start phonon spatializer; 2021-02-24 17:43:42 -07:00
bjorn bff86e6add CMake: Add modelData_stl.c file; 2021-02-24 13:22:46 -07:00