Commit Graph

498 Commits

Author SHA1 Message Date
bjorn ef4ddd3284 Build Jolt as a static library;
joltc's current CMakeLists forces itself to build as a shared library on
PC/Android.  However, it builds Jolt using the current value of
BUILD_SHARED_LIBS.

We currently have BUILD_SHARED_LIBS set to ON when adding joltc, so we
end up with 2 shared libraries, which is cumbersome.  We'd rather just
have a single library for Jolt.  So instead, let's set BUILD_SHARED_LIBS
to off when adding the project, which will build Jolt as a static
library and joltc as a shared library (linking to the static library).

That way we just end up with a single shared library that contains both
joltc and Jolt.
2024-05-07 12:28:46 -07:00
bjorn 979dd044d8 Add contact callback and Contact object; 2024-05-03 13:28:47 -07:00
bjorn bdeee99953 Tracy; 2024-04-10 14:06:57 -07:00
bjorn f4d1161a3d Disable Jolt profiler and debug renderer; 2024-04-07 13:46:57 -07:00
bjorn 822eb94993 CMake: rm physics library log messages; 2024-03-29 14:54:35 -07:00
bjorn cfd2374449 Update Jolt; 2024-03-29 14:50:00 -07:00
bjorn e7d0764e49 Update Jolt;
Also disable the HelloWorldNative sample...
2024-03-28 15:28:40 -07:00
bjorn f4553075cb Upgrade Jolt;
Seems we can add the root CMake project directly now.
2024-03-28 12:58:33 -07:00
bjorn 7373bb6b83 Bump minimum CMake version;
Newer versions of CMake show a deprecation warning that < 3.5 will be
unsupported soon.
2024-03-28 12:42:22 -07:00
Josip Miskovic 8a5b88e851 Allow joltc fns without explicit argument list
The C4255 warning in MSVC complains about function lacking explicit list
of arguments (`f()` instead of `f(void)`). Disabling this warning allows
joltc to build on windows platform.
2024-03-04 19:03:22 +01:00
Ilya f77a8f6cb2
Fixed nogame.zip creatrion
logo.spv wasn't packed in nogame.zip, therefore nogame is failed to start. Now all files in nogame folder are packed.
2024-02-29 11:35:55 +03:00
bjorn 6347114030 Job system; 2024-02-28 12:31:34 -08:00
Bjorn f2bcfee8be
Merge pull request #735 from jmiskovic/jolt-rebase
Jolt physics engine integration
2024-02-17 12:11:41 -08:00
Josip Miskovic 0b8546fd62 Jolt MSVC workaround; set ODE as default engine 2024-02-13 17:34:18 +01:00
bjorn 78586c3770 CMake: disable BUILD_WITH_WAYLAND_HEADERS for OpenXR; 2024-02-09 11:01:06 -08:00
Josip Miskovic 1ad8f23fb8 Jolt physics engine integration 2024-01-30 18:22:27 +01:00
bjorn a90c4092f8 glslang: Add -gVS when compiling default shaders for debug build;
This allows RenderDoc to debug the default shaders.
2024-01-20 21:47:27 -08:00
bjorn 2aed5135b7 Android: default ANDROID_ASSETS to nogame bundle; 2023-11-27 18:42:49 -08:00
bjorn b5922656a8 macos: Put nogame bundle in Resources folder instead of appending to exe; 2023-11-27 18:42:49 -08:00
bjorn 0a17cc566d Add nogame bundle; CMake zips and concats nogame; 2023-11-27 18:42:49 -08:00
bjorn a8d44b27f0 Fix CMakeLists; 2023-11-21 19:07:59 -08:00
bjorn f50e9f6fe1 Use miniz to decompress files; 2023-11-21 18:49:32 -08:00
bjorn d0f1462e51 Make Archive a refcounted object;
- Archive is now an object that has a refcount
- Archives are stored in linked list instead of array
- Not exposed to Lua yet, but could be in the future
- core/zip was merged into the filesystem module
- Mountpoints are handled centrally instead of per-archive
- Zip doesn't pre-hash with the mountpoint anymore
- mtime is truly only computed on request for zips

Mountpoints don't work properly yet.
2023-11-21 18:49:32 -08:00
bjorn 72aac1c58a Start Layers; 2023-10-25 15:23:41 -07:00
bjorn f0686f0115 Update msdfgen; Orient contours properly;
This fixes issues where some fonts would have glyphs with weird windings
and they would get rendered inside-out.

Unfortunately updating msdfgen increased its size by a factor of 2-3x.
2023-10-03 11:12:38 -07:00
bjorn a2f539de56 Update glslang; Shader #include uses virtual filesystem;
This update seemed to increased glslang's binary size even more...
2023-09-28 22:04:05 -07:00
bjorn 1d91ea1fde Replace tinycthread with C11 threads.h polyfill; 2023-09-21 23:26:16 -07:00
bjorn 479983fede gpu: surface improvements;
Restores ability to open window after initializing graphics module.

Surface is created lazily instead of being required upfront.

Use native platorm handles instead of GLFW's callbacks.

Some minor reorganization around core/gpu present API and xr transitions.

Linux links against libxcb/libX11/libX11-xcb for XGetXCBConnection.
2023-09-20 21:17:24 -07:00
bjorn f35d5c9c70 Re-enable objective-c extensions on os_macos;
Locally this worked, but maybe CMake was stale.
2023-09-20 17:58:13 -07:00
bjorn c5793c2410 macos: replace remaining Objective C with C API; 2023-09-20 17:48:01 -07:00
Bjorn c38165a154
Merge pull request #688 from bjornbytes/mesh
Mesh
2023-07-29 18:21:01 -07:00
bjorn 0fe80e4ef9 CMake: recompile shaders when lovr.glsl changes; 2023-07-29 13:36:52 -07:00
bjorn 4892d228b3 WIP; 2023-07-24 15:34:44 -07:00
bjorn 0d30055dd7 webgpu/wasm updates;
Some compile fixes and a rename from gpu_wgpu to gpu_web, since wgpu
refers to a specific implementation of WebGPU and I'm really bad at
typing it for some reason.
2023-07-09 13:13:58 -07:00
bjorn 447e746d41 Rename desktop driver to simulator internally;
The HeadsetDriver enumerant remains the same for now.
2023-06-29 16:24:51 -07:00
bjorn 5fb5a4a00d Android skips copying static plugin libraries to APK; 2023-06-17 17:33:51 -07:00
bjorn 5b4ce18901 Recursive plugin targets;
Previously the auto-target detection for plugins would only work for
targets added in the top level CMakeLists file.  Now lovr will
recursively check all the subdirectories of the plugin's CMake project
for targets with shared libraries.

Also use a more clean way of auto-linking plugin targets with Lua.  This
shouldn't require any changes in plugins.
2023-05-26 19:45:10 -07:00
bjorn 51e3da75e1 Make utf8 module optional; 2023-05-11 08:16:18 +01:00
bjorn 211c29e8c2 rm oculus openxr loader;
As of v51, Quest works with the official OpenXR loader.
2023-05-10 18:14:09 +01:00
bjorn b65fa7910d Merge branch 'master' into dev 2023-05-04 19:09:20 -07:00
bjorn 82b2eadd44 Improve macOS MoltenVK packaging; Reduce min macOS version; 2023-05-04 18:45:30 -07:00
bjorn f98306e786 rm transfer passes; rm Tally for now;
- Add Buffer:newReadback
- Add Buffer:getData
- Buffer:getPointer works with permanent buffers
- Buffer:setData works with permanent buffers
- Buffer:clear works with permanent buffers
- Add Texture:newReadback
- Add Texture:getPixels
- Add Texture:setPixels
- Add Texture:clear
- Add Texture:generateMipmaps
- Buffer readbacks can now return tables in addition to Blobs using Readback:getData

Tally is coming back soon with an improved API, it's temporarily removed
since it made the transfer rework a bit easier.

Note that synchronous readbacks (Buffer:getData, Texture:getPixels)
internally call lovr.graphics.submit, so they invalidate existing Pass
objects.  This will be improved soon.
2023-04-29 18:31:03 -07:00
bjorn edb65a7578 Update glslang; 2023-04-19 20:49:30 -07:00
bjorn c871261946 CMake cleanup; 2023-03-12 15:07:23 -07:00
bjorn c42e784cd3 rm unused LuaJIT option;
GC64 is enabled by default.
2023-03-12 14:57:21 -07:00
bjorn 0103259938 Fix CMake build; 2023-02-24 21:05:31 -08:00
bjorn abbc6a6dc6 Merge branch 'master' into dev 2023-02-21 21:12:33 -08:00
Bjorn d1eaa43997
Merge pull request #641 from brainrom/pkgrename
Android package rename via CMake
2023-02-05 21:57:25 -08:00
Bjorn 49489dc0e8
Apply suggestions from code review 2023-02-05 21:47:52 -08:00
bjorn 2144b5f81d Backport Lua utf8 library; 2023-02-03 23:17:43 -08:00