Commit Graph

39 Commits

Author SHA1 Message Date
bjorn fe353ea243 Fix default lovr.log printing gsub result; 2022-12-30 21:40:27 -08:00
bjorn f9d7742dfd Add support for headless headset rendering;
Although the name is unfortunate, this allows access to lovr.headset
when no window is opened or when the graphics module is disabled.  This
requires the XR_MND_headless extension to be supported by the runtime.
2022-11-26 14:40:39 -08:00
bjorn 9783140725 Fix window resize; 2022-11-09 19:05:01 -08:00
bjorn 36e1471cf0 lovr.graphics.isInitialized;
Returns whether the graphics module is initialized.  Used by the default
error handler to know if it's safe to try to render the error screen.
2022-11-07 19:12:11 -08:00
bjorn 904fb282c2 v0.16.0; 2022-10-15 21:49:25 -07:00
bjorn 5c4fc79242 mv lovr.graphics.init lovr.graphics.initialize;
init is undocumentable due to Lua conventions.
2022-09-10 10:22:52 -07:00
bjorn f4f95a64d7 Pass blends by default; 2022-08-25 22:01:12 -07:00
bjorn ede1036694 Temporary Passes;
Sigh, back to getPass.  I don't even know at this point.  Basically now
that we came up with a half-solution for temp buffers, it makes sense to
apply this to passes as well, since we aren't going with the workstream
idea and temp passes are more convenient than retained passes.
2022-08-25 21:57:15 -07:00
bjorn 5799b0effb Rename setBackground back to setBackgroundColor;
The "fancy background" idea won't go here.
2022-08-13 21:10:58 -07:00
bjorn 3cbf85c98a Adjust error screen font size and default perspective; 2022-08-12 21:08:25 -07:00
bjorn 23932c6e7c Default errhand stops audio playback; 2022-08-12 20:46:59 -07:00
bjorn 016d3753d5 Further boot.lua cleanup; 2022-08-12 20:32:45 -07:00
bjorn ad6360d2fd Clean up boot.lua;
A lot of clean up can happen now that C doesn't push delayed errors to
Lua.  This was happening for Pico and WebVR, neither of which are used
anymore.

Also default vsync to true but force it off if VR is active.
2022-08-12 20:18:55 -07:00
bjorn 5324ae9a84 Fix error screen; 2022-08-12 19:28:25 -07:00
bjorn 2047127a97 Enable depth submission by default; 2022-08-06 23:45:37 -07:00
bjorn dd40e6c829 Fix errhand; 2022-08-06 00:29:40 -07:00
bjorn acd87a5e5c lovr.graphics.present;
It's nice to have an explicit action for presentation.
2022-08-04 00:06:54 -07:00
bjorn 89312c1c4b Add on-disk shader cache;
Set t.graphics.shadercache to true (the default) and lovr will
read/write a shader cache file from/to disk.
2022-08-02 22:06:44 -07:00
bjorn 4ee092e81b Make Pass a regular object;
It uses newPass instead of getPass.  Temporary objects had lifetime
issues that were nearly impossible to solve.  And normal objects are
easier to understand because they behave like all other LÖVR objects.

However, Pass commands are not retained from frame to frame.  Pass
objects must be re-recorded before every submit, and must be reset
before being recorded again.

Pass objects now provide a natural place for render-pass-related info
like clears and texture handles.  They also allow more information to be
precomputed which should reduce overhead a bit.

It is now possible to request a stencil buffer and antialiasing on the
window and headset textures, via conf.lua.

lovr.graphics.setBackground should instead set the clear color on the
window pass.  Though we're still going to try to do spherical harmonics
in some capacity.

There are still major issues with OpenXR that are going to be ironed
out, and the desktop driver hasn't been converted over to the new
headset Pass system yet.  So lovr.headset integration is a bit WIP.
2022-08-02 22:06:44 -07:00
bjorn 67b338a1d8 Change default window size; 2022-08-01 21:46:00 -07:00
bjorn a0173252b9 Slight improvement to lovr.mirror; 2022-07-17 20:07:31 -07:00
bjorn 7aab5ce79b Fix errhand; 2022-07-17 09:55:27 -07:00
bjorn a4e4181489 Error screen; 2022-07-10 21:37:52 -07:00
bjorn b0c1dd5f12 Put nogame in its own file; 2022-07-06 23:50:43 -07:00
bjorn 7ce32e38b1 nogame screen; 2022-07-03 20:07:05 -07:00
bjorn 18a31349b4 boot.lua uses headset clip distance; 2022-06-25 14:37:49 -07:00
bjorn 0c36f53fe6 Placeholder error screen; 2022-06-20 18:26:32 -07:00
bjorn c1bb47d737 Merge branch 'master' into dev 2022-06-16 23:50:11 -07:00
bjorn c2dab3cf2c Update lovr.draw signature;
- If you return a truthy value from lovr.draw, the pass won't be
  submitted.  A falsy value will submit the input pass.
- For convenience, lovr.graphics.submit returns true.
2022-06-08 23:59:48 -07:00
bjorn d5325b87b4 Headset support; 2022-06-05 20:38:14 -07:00
bjorn e36cc6482d rename pass/buffer to getPass/getBuffer; 2022-06-05 18:56:03 -07:00
bjorn 6e27648ce5 Wire up non-headset lovr.draw/lovr.mirror; 2022-05-30 15:35:07 -07:00
bjorn 970a84a514 Surface, swapchain, window texture, vsync; 2022-05-11 15:28:04 -07:00
bjorn e820e40e08 Move window opening to lovr.system; 2022-05-09 12:43:19 -07:00
bjorn 4483145d53 Allow passing a file to lovr;
The file will be treated as main.lua.
Its directory will be treated as the source.
2022-04-28 17:36:05 -07:00
bjorn c2e9ff3c32 Add graphics table to conf; 2022-04-26 22:48:51 -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 faa42ee38b mv resources etc; 2022-03-30 12:34:34 -07:00
Renamed from src/resources/boot.lua (Browse further)