bjorn
4f568ed84d
s/setColorMask/setColorWrite; Pass:setColor;
2022-05-11 17:30:08 -07:00
bjorn
070e4f304d
lovr.graphics.get/setBackground;
2022-05-11 15:38:05 -07:00
bjorn
970a84a514
Surface, swapchain, window texture, vsync;
2022-05-11 15:28:04 -07:00
bjorn
f7b4ec725f
Render passes;
2022-05-11 12:51:13 -07:00
bjorn
bfa0d94f2d
Pass pipeline API;
2022-05-11 12:50:26 -07:00
bjorn
e820e40e08
Move window opening to lovr.system;
2022-05-09 12:43:19 -07:00
bjorn
d9e5ba8b9f
Slightly broken compileShader/newShader;
2022-05-09 11:47:06 -07:00
bjorn
5d078461a2
Rename copy texture usage to transfer;
2022-05-06 17:26:59 -07:00
bjorn
1fde5a36d0
Transform stack;
2022-05-06 17:26:38 -07:00
bjorn
22e15513f9
Sampler;
2022-05-01 15:47:17 -07:00
bjorn
203a60c63a
rm model samplers;
2022-05-01 15:41:34 -07:00
bjorn
211e3ef0f8
Compile fixes;
2022-05-01 15:18:56 -07:00
bjorn
77a32333e0
lovr.graphics.pass;
2022-04-30 18:56:38 -07:00
bjorn
ebe77e5924
Sketch out Texture uploads;
2022-04-30 18:49:46 -07:00
bjorn
0316378f74
Fix renderView precedence;
2022-04-30 09:13:21 -07:00
bjorn
0772d8b4de
newTexture;
2022-04-30 03:06:14 -07:00
bjorn
e80d254dc6
Texture API;
...
Except newTexture because it's hard or something
2022-04-29 20:56:23 -07:00
bjorn
c60116ad61
rm Color;
2022-04-29 20:55:54 -07:00
bjorn
4be958195d
Start Texture;
2022-04-29 20:38:34 -07:00
bjorn
e53ddfa03b
isFormatSupported;
2022-04-29 17:16:16 -07:00
bjorn
48e2509a3c
lovr.graphics.wait;
2022-04-28 22:37:03 -07:00
bjorn
7aee0a4656
Add Pass; Buffer transfers; lovr.graphics.submit; Bugfixes;
2022-04-28 22:30:31 -07:00
bjorn
a97193caac
Buffer stride can not be smaller than the size of a single item;
2022-04-28 15:39:45 -07:00
bjorn
a8b7bc75a8
Adjust;
2022-04-27 00:35:09 -07:00
bjorn
e8c809a870
Temporary buffers;
2022-04-27 00:28:39 -07:00
bjorn
43f56c223c
Tell Vulkan about the engine name and version;
2022-04-27 00:21:04 -07:00
bjorn
65b0f95ca9
Add lovrUnreachable macro;
2022-04-27 00:05:14 -07:00
bjorn
d2110af83a
Fixup;
2022-04-26 22:51:24 -07:00
bjorn
39418b8393
Add temp frame allocator;
2022-04-26 22:44:44 -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
50ebed697e
Update some features and limits;
...
- rm dynamicIndexing and nonUniformIndexing, for now (arrays aren't well
supported)
- rename compressed texture features
- move clip/cull distance to limit instead of feature (limit can be 0)
2022-04-26 15:31:51 -07:00
bjorn
3ae0ff568f
Rework device info;
2022-04-22 13:28:59 -07:00
bjorn
be1cedc922
Always enable fullIndexBufferRange feature;
2022-04-22 01:07:07 -07:00
bjorn
9a54102387
Image rework: KTX1 and KTX2 loaders;
2022-04-21 17:39:59 -07:00
bjorn
f37c1824da
lovr.graphics.getDevice/getFeatures/getLimits;
2022-04-21 17:39:59 -07:00
bjorn
40e9a4ab73
core/gpu;
2022-04-21 17:39:59 -07:00
bjorn
f0827de864
Re-add ASTC loader;
2022-04-21 17:39:59 -07:00
bjorn
f2e95e147a
Re-add STB loader;
2022-04-21 17:39:59 -07:00
bjorn
0c4d3cb8da
WIP new Image implementation and DDS loader;
...
- Image supports loading files with multiple layers
- Image supports semantic flags like srgb, premultiplied, etc.
- Image:getPixel and :setPixel support more formats
- DDS loader supports BC4-BC7, DXT2/DXT4, uncompressed formats, etc.
2022-04-21 17:39:59 -07:00
bjorn
cf2f63f147
Add missing include;
2022-04-21 17:39:59 -07:00
bjorn
d9ec003e79
Start Image rework;
2022-04-21 17:39:59 -07:00
bjorn
37221afbc6
rm graphics module;
2022-04-21 17:39:58 -07:00
bjorn
a2cb611b6c
Fix mipmaps with nearest filtering;
2022-04-14 16:16:22 -07:00
bjorn
cd0e458af9
lovr.filesystem.write/append returns success instead of size;
...
We don't have a good way of returning filesystem error messages yet,
but it's still useful to return a boolean instead of a number to
detect failure of zero byte writes. Exposing the number of bytes
written is kind of weird since it's not very actionable.
2022-03-30 22:45:09 -07:00
bjorn
42e618fa00
World:getContacts;
2022-03-30 22:32:20 -07:00
bjorn
8fcdfd2bb4
Minor physics cleanup;
2022-03-30 22:05:10 -07:00
bjorn
efbcb5e4c2
Merge branch 'master' into dev
2022-03-30 13:52:58 -07:00
bjorn
b32244b787
OpenXR: Make update idempotent;
...
The state tracking here is getting pretty complicated... oh well!
2022-03-30 13:33:02 -07:00
bjorn
0238549e66
OpenXR: sync all subaction paths;
2022-03-30 13:33:02 -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
2ec5a1a9dd
OpenXR: Valve Index grip improvements;
2022-03-30 11:13:55 -07:00
bjorn
3972a8df20
Reset OpenXR event type after polling;
...
Otherwise the struct will have the wrong type when polling the next
event. Kind of annoying.
2022-03-29 08:56:26 -07:00
monolifed
af3ec874f0
Keep winding with flip
2022-03-28 12:37:21 -07:00
bjorn
d70619ec96
Source:isSpatial; Separate spatial from effects;
2022-03-27 19:09:25 -07:00
bjorn
c824c5c135
obj: triangulate faces;
...
Supports faces with any number of vertices by converting to triangle
fans.
2022-03-27 18:35:38 -07:00
bjorn
e47f3eb108
Use doubles for noise;
2022-03-27 14:51:06 -07:00
bjorn
f347ac98d9
Switch to simplex noise;
...
Pending test
2022-03-27 01:21:52 -07:00
bjorn
03df236e63
Fix Canvas depth buffer mipmap generation;
2022-03-25 13:12:18 -07:00
bjorn
6c9531564e
Make physics structs private;
2022-03-25 12:40:29 -07:00
bjorn
985d8c7a61
Fix glTF base64 precedence issue;
2022-03-25 12:22:07 -07:00
bjorn
56dbb346e7
ODE uses 4-component vec3s too;
2022-03-25 12:15:38 -07:00
bjorn
dc6de4ca14
Freeze! GCC police;
2022-03-25 12:15:38 -07:00
bjorn
fdb4db2297
Support base64 images in glTF;
2022-03-25 03:58:06 -07:00
bjorn
301f7b2cc9
Android mounts save directory earlier;
...
This fixes issues with conf.lua not getting read properly, and also
the weird quirk of getIdentity not working until setIdentity runs.
2022-03-23 18:27:05 -07:00
bjorn
dcd1e58d0d
rm tracking drivers;
2022-03-23 13:11:16 -07:00
bjorn
a1d0b2fa11
Use fixed-size audio callbacks;
...
WebAudio may need...attention.
2022-03-23 10:57:30 -07:00
bjorn
20caeca69a
Upgrade miniaudio;
2022-03-23 10:57:30 -07:00
bjorn
243e686ea4
rm lovr.headset.getDisplayMask;
2022-03-22 19:45:44 -07:00
bjorn
1eed2bc83c
lovr.headset.isFocused;
2022-03-22 19:43:00 -07:00
bjorn
3d542b4791
rm beacon devices;
...
They are no longer supported by any headset drivers.
2022-03-22 18:08:44 -07:00
bjorn
b7527c3584
More people use COUNTOF;
2022-03-22 17:56:26 -07:00
bjorn
98e186af5b
Fix duplicate field;
2022-03-22 17:53:47 -07:00
bjorn
1f3c5dea79
dt uses headset time instead of system time;
2022-03-22 17:52:16 -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
721d4e180d
Clean up OpenXR extensions;
...
One per line, with scannable name strings.
2022-03-21 17:01:03 -07:00
bjorn
428b569bfc
OpenXR uses COUNTOF;
2022-03-21 17:00:56 -07:00
bjorn
339f75f579
Sketch support for XR_FB_hand_tracking_aim;
...
This adds support for /point devices and the trigger axis (mapped to
pinch) with hand tracking.
2022-03-21 15:45:48 -07:00
bjorn
0c17046847
Add eye/gaze device;
...
This provides an accurate pose for what the user is looking at, instead
of the poses of the individual eyes. Supported on some OpenXR
implementations.
2022-03-21 15:05:23 -07:00
bjorn
9214ac8b29
rm unnecessary include;
2022-03-21 12:33:46 -07:00
bjorn
ad4072d109
OpenXR: Bail if extensions can't be queried;
2022-03-21 12:27:32 -07:00
bjorn
0b2c2525ba
rm openxr_oculus.h;
...
It is now an empty file in the Oculus OpenXR SDK, because the
corresponding extensions have been integrated into the main OpenXR SDK.
2022-03-21 01:00:28 -07:00
bjorn
bebeff4fc2
OpenXR: Support getDisplayFrequency;
...
Quest only. We don't support setting/querying/events yet, since it
isn't clear that this will be standardized behavior.
2022-03-21 00:51:24 -07:00
bjorn
dc11e048a2
LOVR_RESTRICT -> restrict;
2022-03-21 00:22:25 -07:00
bjorn
e4eb4e0df1
OpenXR: Support vive trackers;
2022-03-20 18:04:06 -07:00
bjorn
ef9754c114
OpenXR: Rework actions;
...
Inline in the driver, less hand-centric.
2022-03-20 15:39:02 -07:00
bjorn
29cbe63b1d
OpenXR: Add support for XR_FB_hand_tracking_mesh;
...
This adds the ability to load and animate a mesh for hand tracking on
the Oculus Quest. It is more or less identical to the current
functionality on the vrapi driver.
One key part of this change is that getPose in OpenXR will see if action
spaces are active before locating their spaces. This is due to some
behavior observed on the Oculus Quest with hand tracking where pose
actions for controllers would return invalid data with all of the
location flags erroneously set. The only way to detect and work around
this is to check the pose action state. When this happens, we fall back
to returning the pose of the wrist joint, which is where the Oculus hand
mesh wants to be drawn. In the event that both controllers and hand
tracking are active, the controller pose will be returned by getPose but
the wrist joint can still be accessed using getSkeleton.
Note that this does not yet include support for properly scaling the
hand mesh.
There are numerous opportunities for optimization here that may be
investigated in the future, though performance is well within an
acceptable range right now.
2022-03-19 17:49:13 -07:00
bjorn
8955c6fc02
Remove assert for missing glyphs;
...
The notdef glyph will get rendered instead, which is slightly better.
Note that the default font does not have a notdef glyph (bug).
Note that notdef will be rasterized multiple times right now.
2022-03-19 13:26:28 -07:00
bjorn
36c7b93fed
Details;
2022-03-17 19:30:53 -07:00
bjorn
99e2809db5
OpenXR: formatting; Use infinite swapchain wait timeout;
2022-03-17 19:30:21 -07:00
bjorn
ad4ce298f1
s/os_get_context/os_get_win32_context;
2022-03-17 19:14:34 -07:00
bjorn
c35c2bb7eb
OpenXR doesn't crash if lovr.draw errors;
...
renderTo is idempotent in openxr driver now.
2022-03-17 19:11:07 -07:00
bjorn
99a42c5c71
OpenXR: Support /point devices;
2022-03-17 17:58:30 -07:00
bjorn
4417481a92
OpenXR: Support ABXY buttons;
2022-03-17 16:33:37 -07:00
bjorn
bbd502153a
Formatting;
2022-03-15 16:33:53 -07:00
bjorn
a4faad39f8
Font:getFilter; Font:setFilter;
2022-03-15 16:02:35 -07:00