1
0
Fork 0
mirror of https://github.com/bjornbytes/lovr.git synced 2024-07-02 12:33:52 +00:00
Commit graph

4807 commits

Author SHA1 Message Date
bjorn bd96b6afba Re-enable headless support on Android;
monado bug has since been fixed.
2023-05-26 17:04:18 -07:00
bjorn 9092545e9a Add bindings for Magic Leap 2 controller;
Notably, shoulder button is mapped to grip for now.
2023-05-26 17:03:11 -07:00
bjorn ce34bf702a Put back absindex in luax_checkstruct;
I thought it was for error messages, it's for correctness.
2023-05-26 16:47:58 -07:00
bjorn 4f29e3992c Don't bind pico4 actions if extension is unsupported; 2023-05-26 16:44:14 -07:00
Bjorn a7a4ea14fa
Merge pull request #670 from DuinoDu/dev
Add Pico4 support.
2023-05-18 08:23:27 -07:00
duinodu 773c021d2d Add Pico4 support. 2023-05-18 15:27:18 +08:00
bjorn 77403a0908 rm unused prototype; 2023-05-17 20:29:46 -07:00
bjorn f9866f6771 Merge branch 'master' into dev 2023-05-17 20:29:10 -07:00
bjorn 4e4184cfc2 Pass:skybox requires a texture; 2023-05-17 20:26:38 -07:00
bjorn 08b911e142 Fix OpenXR interface; 2023-05-12 18:23:23 +01:00
bjorn 895f282241 Rename headet display frequencies to refresh rates;
Old API remains in deprecated state.
2023-05-12 18:01:42 +01:00
bjorn 440591746d Change default camera fov;
.6 is way too narrow, 1.2 is closer to previous versions
2023-05-12 17:35:19 +01:00
bjorn a723ec7c5c Update error screen;
The error screen uses an orthographic projection when rendered in a
window, so the text is always the same size instead of scaling with the
window size.

Also you can close it with escape.
2023-05-12 17:16:22 +01:00
bjorn 18e327b135 Fix font wrap when camera is flipped to 2d; 2023-05-12 17:02:18 +01:00
bjorn 60ff2de78b Fix default projection matrix fov ratio;
Doubling the aspect doesn't really make sense.
2023-05-12 14:52:15 +01:00
bjorn 61fe0f3bc0 Default errhand uses transparent background in AR; 2023-05-12 14:31:31 +01:00
bjorn 776a709de1 nogame: quit on escape; 2023-05-12 14:30:47 +01:00
bjorn b8a8aa2755 nogame: only set background color in VR; 2023-05-12 14:28:53 +01:00
bjorn 3f5e3bb0ed Improve passthrough API;
- lovr.headset.getPassthrough returns current passthrough mode
- lovr.headset.setPassthrough sets the passthrough mode
  - nil --> uses the default passthrough mode for the headset
  - bool --> false = opaque, true = one of the transparent modes
  - string --> explicit PassthroughMode
- lovr.headset.getPassthroughModes returns a table of supported modes
2023-05-12 14:18:22 +01:00
bjorn c9291d4401 Rename picoNeo3Controller flag to picoController;
It includes Pico 4 as well.
2023-05-12 10:47:47 +01:00
bjorn 51e3da75e1 Make utf8 module optional; 2023-05-11 08:16:18 +01:00
bjorn 4028b233a1 Model:clone;
Creates a lightweight copy of a Model, for situations where a single
model needs to be rendered with multiple poses in a single frame, which
is currently not possible.
2023-05-10 18:14:09 +01:00
bjorn 264bfdeadf Use lovr.system.pollEvents in lovr.errhand; 2023-05-10 18:14:09 +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 0bb16d24ef lovr.system.wasKeyPressed/Released; 2023-05-10 18:14:09 +01:00
bjorn be2502b3f2 Details; 2023-05-10 18:14:09 +01:00
bjorn da107f4387 Rename lovr.event.pump to lovr.system.pollEvents; 2023-05-10 18:14:09 +01:00
bjorn 027dd0563b Fix seam in equirect shader; 2023-05-10 18:14:09 +01:00
bjorn 20a331cb93 Fix equirect shader orientation; 2023-05-10 18:14:09 +01:00
bjorn 98e648871e lovr.graphics.is/setTimingEnabled;
Enables automatic CPU/GPU timing for all passes.  Defaults to true
when graphics debugging is active, but can be enabled/disabled manually.

When active, Pass:getStats will return submitTime and gpuTime table
keys, respectively indicating CPU time the Pass took to record and the
time the Pass took to run on the GPU.  These have a delay of a few
frames.

This doesn't include a way to get "global" timing info for a submit.
This information would be useful because it doesn't require lovrrs to
sum all the timing info for all the passes and it would include other
work like transfers, synchronization, and CPU waits.  However, this is
more challenging to implement under the current architecture and will be
deferred to later.  Even if this were added, these per-pass timings will
remain useful.
2023-05-06 23:36:33 -07:00
bjorn 2e29ff1ecf Handle multiple compute writes to a resource properly; 2023-05-06 20:36:11 -07:00
bjorn 68808d991e Fix some bugs in lovr.graphics.submit;
- Make sure to reset barriers for compute/canvas resources too
- Delay stream ending so OpenXR layout transitions actually go in an
  active command buffer.
2023-05-06 20:32:16 -07:00
bjorn 5d342f3712 Fix readbacks never finishing; 2023-05-06 20:00:43 -07:00
bjorn b65fa7910d Merge branch 'master' into dev 2023-05-04 19:09:20 -07:00
bjorn d18109b6ce Use XR_BD_controller_interaction for Pico Neo 3 input;
Replaces nonstandard interaction profile.  Removed thumbrest paths and
applied menu to both hands, to align with the published extension.
2023-05-04 19:06:51 -07:00
bjorn ff5cb9b9a4 Update OpenXR to 1.0.27; 2023-05-04 18:57:19 -07:00
bjorn 82b2eadd44 Improve macOS MoltenVK packaging; Reduce min macOS version; 2023-05-04 18:45:30 -07:00
bjorn a75086d0e4 Fix lovr.graphics.getWindowPass when there's no window; 2023-05-04 18:27:02 -07:00
bjorn f90cd237ca Add new occlusion query API; 2023-05-03 23:08:45 -07:00
bjorn 43e796acd1 Fix --graphics-debug; 2023-05-03 23:08:45 -07:00
Bjorn fd8bcdfaeb
Merge pull request #665 from bjornbytes/matrix-decompose
Mat4:getTranslation; Mat4:getRotation; Mat4:getScale;
2023-05-03 21:04:02 -07:00
bjorn 28553dda9f core/gpu: skip texture allocator init for unsupported formats;
Should avoid erroneous errors during init for devices that don't support
all the depth formats.
2023-05-03 21:00:41 -07:00
bjorn c717670a80 Add --graphics-debug command line argument; 2023-05-03 20:54:19 -07:00
bjorn 6fb0b5efd5 getPosition/getOrientation -> getTranslation/getRotation; 2023-05-03 20:42:44 -07:00
bjorn 04a96f828b Clear bindings when switching shader types;
If you switch to/from a compute shader and the other shader is either
nil or a graphics shader, clear bindings.

Maybe if you switch to/from nil the bindings shouldn't be cleared, but
this is a bit more complicated to implement and it's not clear that
there's any reason not to treat nil shaders as graphics shaders.
2023-05-03 20:16:30 -07:00
bjorn 0c99572f61 Fix/simplify push constant tracking; 2023-05-03 20:15:48 -07:00
bjorn 5131544221 Don't track temporary buffers;
This was accidentally removed.
2023-05-03 19:35:03 -07:00
bjorn e2ac329475 Add backwards compat variant for Pass:setCanvas; 2023-05-03 19:30:40 -07:00
bjorn 6fe9e0151f Add Pass:barrier function;
Previously, if you wanted to run compute operations that depend on the
results of prior compute operations, you had to put these in 2 different
passes, because logically all of the compute calls in a pass run "at the
same time" (or we're at least giving the GPU the freedom to do that).

Having to set up an entirely new pass just to synchronize 2 :compute
calls is pretty cumbersome, and incurs extra overhead.  It would be
possible to change things so *every* :compute call waits for previous
computes to finish, but this would destroy GPU parallelism.

The Pass:barrier method lets compute calls within a pass synchronize
with each other, without requiring multiple passes.  Adding a barrier
basically means "hey, wait for all the :compute calls before the barrier
to finish before running future :computes".

This lets things remain highly parallel but allows them to be easily
synchronized when needed.
2023-05-03 16:45:01 -07:00
bjorn 07276f9351 Fix Pass:setClear color space and headset background; 2023-05-03 16:35:09 -07:00