Commit Graph

427 Commits

Author SHA1 Message Date
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
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