bjorn
cbe24f482f
Adjust font uvs;
...
- Padding is automatically computed from spread.
- Spread increases detail at small sizes.
- Remove failure cases where padding < spread/2
- UVs are un16x2, making room for color
- Don't center glyphs inside their atlas bounding box
- Cache normalized UVs and update them (for glyphs and vertices) when
the atlas changes size.
- Updating the UVs is UGLY and duplicates a lot of code. It may be
better to normalize the UVs on the fly, or just re-render the entire
string if the atlas is updated.
2022-06-26 20:28:30 -07:00
bjorn
24fd9e0c04
gpu: properly cast device to uintptr_t;
2022-06-26 00:46:11 -07:00
bjorn
ae4d7156fd
lovr.graphics.submit ignores falsy values;
2022-06-26 00:45:49 -07:00
bjorn
7f22e18533
Error better when Buffer field is missing type;
2022-06-25 23:43:24 -07:00
bjorn
756b184306
Some font cleanup;
2022-06-25 19:54:13 -07:00
bjorn
02daeb1a2b
The font code is pretty I promise;
2022-06-25 15:26:42 -07:00
bjorn
4021d4e893
Pass:monkey;
...
Questionable.
2022-06-24 23:05:09 -07:00
bjorn
75e8df58df
Pass:cylinder;
2022-06-24 23:01:22 -07:00
bjorn
5c43ad0792
Pass:fill;
2022-06-24 19:59:48 -07:00
bjorn
0a3ccb4f8a
stb_image sets srgb flag properly;
2022-06-24 19:38:57 -07:00
bjorn
fbf2a039b7
setMaterial takes Texture in addition to Material;
2022-06-24 19:38:45 -07:00
bjorn
f729320793
Fix creating Material from Texture;
2022-06-24 19:38:23 -07:00
bjorn
dc9e93103f
Pass:sphere;
2022-06-23 21:23:16 -07:00
bjorn
dc73d2309a
Pass:donut;
2022-06-23 19:52:37 -07:00
bjorn
8c63f47b8a
Fix default shader switching;
2022-06-23 17:07:39 -07:00
bjorn
173c9a258e
Sketch render pass automipmap;
2022-06-22 19:05:36 -07:00
bjorn
c1d8c64c45
Pass:copy can copy tables to buffers;
2022-06-22 00:39:56 -07:00
bjorn
cb4275bff7
Add DrawStyle;
2022-06-22 00:05:26 -07:00
bjorn
499cf9c0dc
More Font APIs;
2022-06-21 15:28:03 -07:00
bjorn
71f6a88a62
Font uses padding;
2022-06-20 19:24:41 -07:00
bjorn
ad0595ff35
lovr.graphics.getDefaultFont;
2022-06-20 18:58:12 -07:00
bjorn
cfc0f52449
Support tab codepoints;
2022-06-20 18:52:10 -07:00
bjorn
362b389131
Pass:text;
...
Code is still messy, but it works okay.
2022-06-20 18:26:15 -07:00
bjorn
ce58556372
Fix Pass:setBlendMode/setMaterial;
2022-06-20 18:25:05 -07:00
bjorn
7625ef9bd8
Rasterizer:getGlyphImage;
2022-06-20 18:24:12 -07:00
bjorn
fe31431016
rm EGL/X11; Android fixes;
2022-06-20 18:23:28 -07:00
bjorn
0306096577
luax_optu32 doesn't evaluate index twice;
2022-06-20 18:17:51 -07:00
bjorn
3df9aea3fd
Add Font shader;
2022-06-20 18:17:37 -07:00
bjorn
7def390f9c
OpenXR/CMake fixes;
2022-06-20 15:51:24 -07:00
bjorn
af8c061c50
Default buffer can be used for colors;
2022-06-18 23:31:51 -07:00
bjorn
a654cec40f
lovr.graphics.newFont;
2022-06-18 17:43:12 -07:00
bjorn
b89c61a8f4
HorizontalAlign and VerticalAlign enums;
2022-06-18 17:41:10 -07:00
bjorn
0d7fed1fa7
Rasterizer:getBoundingBox;
...
For the global bounding box
2022-06-18 17:40:14 -07:00
bjorn
717f95f6bd
Start updating Rasterizer;
2022-06-17 17:43:58 -07:00
bjorn
cb121d3d36
Material fixes; Pass cleanup;
2022-06-17 17:43:26 -07:00
bjorn
c1bb47d737
Merge branch 'master' into dev
2022-06-16 23:50:11 -07:00
bjorn
86b2c934e8
Materials, mostly;
2022-06-16 23:49:09 -07:00
bjorn
fcc2758046
Potentially add support for KHR_texture_transform;
2022-06-15 23:51:23 -07:00
bjorn
fb42bf3fbb
Rearrange some ModelData stuff;
2022-06-15 23:17:11 -07:00
bjorn
7de6bdf242
Shaders; Rework vertex formats;
2022-06-15 20:46:43 -07:00
bjorn
af8f650a07
Make map_t size deterministic;
...
Currently, the amount of memory allocated for a map can sometimes be
different depending on whether it was allocated with an initial capacity
or the items were added iteratively.
This causes problems for people that want to copy data between maps that
have the same number of elements.
Now, the size of a map will always be the same for a given number of
elements, regardless of how the elements are added.
Plus this gets rid of the weird prevpo2 function. Yay.
2022-06-14 16:52:19 -07:00
bjorn
fbe54d5dca
Physics shape dimensions must be positive;
...
Or the world will explode. That would be bad.
2022-06-12 18:18:48 -07:00
bjorn
70e0f5c5cf
Synchronization;
2022-06-11 22:55:43 -07:00
bjorn
d9b5237851
Sync cleanup;
2022-06-11 19:07:46 -07:00
bjorn
3d83d0fcfe
Pass:multimesh;
...
IT'S ALIVE
2022-06-09 23:38:33 -07:00
bjorn
2896dc0bfa
gpu: indirect draws accept optional stride;
2022-06-09 23:31:46 -07:00
bjorn
fc616f92c2
Pass:mesh; Pass:setMeshMode;
2022-06-09 23:05:32 -07:00
bjorn
2abf1a4a0c
Fix luax_optu32;
2022-06-09 23:05:02 -07:00
bjorn
3009e1d45c
Rename transfers to uploads;
2022-06-09 22:44:23 -07:00
bjorn
ab2c52bc05
Fix attachment cache;
2022-06-09 20:05:31 -07:00
bjorn
988393bb7f
gpu: properly expunge render passes and framebuffers;
2022-06-09 20:05:04 -07:00
bjorn
451e8a53ed
Discard attachments more;
2022-06-09 19:26:53 -07:00
bjorn
1cc8cf9f4a
Update glslang to accept array of shader strings;
2022-06-09 17:44:46 -07:00
bjorn
b2e681ddfd
Allow hexcode for render pass clear;
2022-06-09 17:37:06 -07:00
bjorn
ac9bc5112b
Fix typo;
2022-06-09 00:09:47 -07:00
bjorn
efe57133d0
Validation errors are logs not errors;
2022-06-09 00:01:51 -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
6f16385fa1
Improve graphics error handling;
2022-06-08 23:59:36 -07:00
bjorn
0d4d7bc0e3
Fix vertex shader draw count; Simplify upload sync;
2022-06-08 21:23:30 -07:00
bjorn
ef19a334a9
Pass:setSampler;
...
This is an experimental take on the "default filter" system. Each
render Pass has its own "global sampler", initialized to trilinear. The
global sampler will be used by default to sample textures/materials in
shaders. You can set it to a filter mode or a full Sampler object. You
can always send your own Sampler objects to Shaders if you want
per-texture sampler settings. The global sampler is designed to be set a
small number of times per pass instead of on every draw. Basically,
just do Pass:setSampler('nearest') and draw your minecraft world.
2022-06-07 20:42:10 -07:00
bjorn
a26e732ab0
Cleanup;
2022-06-07 20:42:06 -07:00
bjorn
2b65b50ed9
Pass:setViewport; Pass:setScissor;
...
It pretends to be like a pipeline state even though it isn't.
Might be nice for nil to mean "the framebuffer size" which is the default.
2022-06-06 12:38:15 -07:00
bjorn
2ee1a8d014
Image:getPointer;
2022-06-06 07:32:01 -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
a8b35074e0
Pass:send supports push constants;
2022-06-05 18:54:26 -07:00
bjorn
8effa7424f
Pass:circle;
2022-06-05 13:12:49 -07:00
bjorn
7b5c816345
More efficient resource tracking;
...
- Temporary buffers are not tracked
- Sample-only textures are not tracked, but their initial upload is synchronized.
- Default texture something something
2022-06-04 14:54:04 -07:00
bjorn
6245aaa9d9
I have made a mistake;
2022-06-04 14:49:58 -07:00
bjorn
3a43d44460
Pass tracks resources for sync purposes;
2022-06-04 14:28:23 -07:00
bjorn
ea80936af7
Pass:compute;
2022-06-04 11:54:05 -07:00
bjorn
d8583c6a9d
gpu_compute; gpu_compute_indirect;
2022-06-04 11:53:59 -07:00
bjorn
d3a1a0ec22
Pass:cube; Pass:box;
2022-06-04 11:28:35 -07:00
bjorn
3013567e73
Fix Pass:translate;
2022-06-04 11:28:31 -07:00
bjorn
e07a2691e0
Clean up plane;
2022-06-04 11:19:28 -07:00
bjorn
62f2d9a800
Organization;
2022-06-04 09:57:06 -07:00
bjorn
e652ae67af
Pass:plane;
2022-06-04 01:34:13 -07:00
bjorn
ebc6d9d3a3
Pass:line;
2022-06-04 01:33:50 -07:00
bjorn
a2668a1632
Fix canvas always trying to add depth buffer;
2022-06-04 01:33:11 -07:00
bjorn
2c2eada1f0
Fix pipeline creating the wrong render pass;
2022-06-04 01:31:16 -07:00
bjorn
d9bf19da33
Fix texture memory allocation;
2022-06-04 01:30:51 -07:00
bjorn
b2a3c59c42
Fix projection matrix;
2022-06-04 01:04:23 -07:00
bjorn
ac3801902b
Pipeline stack;
2022-05-31 21:57:55 -07:00
bjorn
a09773a5c8
gpu_sync;
2022-05-31 21:50:29 -07:00
bjorn
ec8b7f9727
Adjust;
2022-05-31 21:45:54 -07:00
bjorn
8431fc72ba
Adjust;
2022-05-31 21:41:43 -07:00
bjorn
0104fe1910
Fancy compare mode aliases;
2022-05-31 21:33:06 -07:00
bjorn
513a1876c9
Simplify vertex buffers;
...
The default buffer is always bound to slot 0 once at the beginning of
command buffers, reducing the amount of rebinding.
2022-05-31 21:20:01 -07:00
bjorn
ab04577495
Enforce maximum spirv version;
2022-05-31 20:47:47 -07:00
bjorn
a2cc4f3495
Cap vertex attribute/buffer limits;
2022-05-31 20:40:50 -07:00
bjorn
ec0da8e91f
Correctly recycle scratchpad buffers;
2022-05-31 20:37:24 -07:00
bjorn
1f39ed8c51
Ensure binding numbers are less than 32;
...
We use u32 masks...
2022-05-31 20:24:43 -07:00
bjorn
99e45c22ad
Add some descriptor set limits;
2022-05-31 20:16:16 -07:00
bjorn
aa929482cd
Fix default air absorption;
2022-05-31 13:55:38 -07:00
bjorn
42a924b0ee
lovrPassDraw; Pass:points;
2022-05-30 15:36:31 -07:00
bjorn
8253b7361c
gpu: More vulkan functions use buffer offsets;
2022-05-30 15:26:01 -07:00
bjorn
5a776528a8
maf: Modify matrix functions to use Vulkan convention;
2022-05-30 15:22:41 -07:00
bjorn
dd043cbf07
Fix bundle allocation;
2022-05-30 15:06:57 -07:00
bjorn
2570485b20
gpu: pipeline creates render pass properly;
2022-05-30 13:32:59 -07:00
bjorn
6a531c04a8
luax_tofloat;
2022-05-30 13:32:40 -07:00
bjorn
a434203ce0
spv: ignore input variables missing location decoration;
2022-05-30 13:14:05 -07:00
bjorn
32fb5e63ac
Destroy descriptor pools properly;
2022-05-30 13:12:04 -07:00
bjorn
e59a75fce8
Pass camera functions;
2022-05-30 12:29:52 -07:00
bjorn
205767bc81
VertexFormat;
2022-05-30 12:18:42 -07:00
bjorn
541ebc1b61
Bundle allocator;
2022-05-30 12:17:17 -07:00
bjorn
25bb64b18c
gpu: viewport/binding fixes;
2022-05-29 23:58:18 -07:00
bjorn
7e0e5222da
mat4_cofactor;
2022-05-29 23:48:17 -07:00
bjorn
082ddc0e1b
gpu: add drawing functions;
2022-05-29 21:36:40 -07:00
bjorn
0c8f1b6400
gpu: add binding functions;
2022-05-29 21:36:29 -07:00
bjorn
ff77a30f01
Default shaders;
2022-05-27 20:47:20 -07:00
bjorn
03a53bcae2
Fix Buffer copy range calculation;
2022-05-26 00:11:02 -07:00
bjorn
6440bc68f3
Pass:mipmap;
2022-05-26 00:07:10 -07:00
bjorn
af0e388e91
Pass:copy; Pass:blit;
2022-05-25 23:52:24 -07:00
bjorn
885e335f8c
Image dimension accessors take mip level;
2022-05-25 23:51:51 -07:00
bjorn
6771ff64b5
Pass:clear;
2022-05-25 19:45:01 -07:00
bjorn
a5f37f7d7d
better lovrBufferIsTemporary;
2022-05-25 19:23:01 -07:00
bjorn
73f13ef3c7
Initialize buffer data properly;
2022-05-24 22:30:59 -07:00
bjorn
99ecd04e27
Pass:send;
2022-05-23 23:10:11 -07:00
bjorn
5c0b9e51ed
Pass:setShader clears/resets bindings;
2022-05-23 22:32:36 -07:00
bjorn
d9e8b81b72
Default buffer/texture/sampler;
2022-05-23 22:32:12 -07:00
bjorn
6dce0be2da
pipeline lookup;
2022-05-23 21:44:42 -07:00
bjorn
e054218713
gpu_bundle; gpu_bundle_pool; layouts;
2022-05-23 21:40:57 -07:00
bjorn
a0db01959d
Shader:clone;
2022-05-22 15:10:07 -07:00
bjorn
a64fd216ea
newShader;
2022-05-22 15:09:09 -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
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
24f09ea608
lovr.graphics.submit works;
2022-05-11 12:50:49 -07:00
bjorn
bfa0d94f2d
Pass pipeline API;
2022-05-11 12:50:26 -07:00
bjorn
bd970a5ec8
gpu_pipeline;
2022-05-11 12:49:05 -07:00
bjorn
3ff13edfb6
util: Add BREAK;
2022-05-11 12:47:12 -07:00
bjorn
e820e40e08
Move window opening to lovr.system;
2022-05-09 12:43:19 -07:00
bjorn
91c48e57d5
macOS: implement virtual memory functions;
2022-05-09 12:41:21 -07:00
bjorn
d9e5ba8b9f
Slightly broken compileShader/newShader;
2022-05-09 11:47:06 -07:00
bjorn
88296a7c16
gpu_layout;
...
Stores a declaration of a group of shader resources.
2022-05-07 16:08:49 -07:00
bjorn
22edbe4f64
BC1 is rgb;
2022-05-06 17:27:16 -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
Samuel Gosselin
255f4e4a34
fixup: keep coding style consistent.
2022-05-06 10:55:29 -07:00
Samuel Gosselin
02c67d090d
fixup: gracefully handle XR_ERROR_DISPLAY_REFRESH_RATE_UNSUPPORTED_FB and return |false| instead.
2022-05-06 10:55:29 -07:00
Samuel Gosselin
425a2ca343
Add support for setting the display refresh-rate.
...
OpenXR provides APIs to enumerate the supported refresh-rates, and
selecting a new refresh-rate. This patch adds two new APIs to the
lovr.headset module:
- lovr.headset.getDisplayFrequencies():
Returns a table containing the supported refresh-rates on
success; nil otherwise.
- lovr.headset.setDisplayFrequency(refreshRate:number):
Returns true on success, false otherwise.
Only the OpenXR backend has support for this feature and it is
gated by the "refreshRate" feature flag, similarly to what the
"getDisplayFrequency()" API does.
2022-05-06 10:55:29 -07:00
Ryan Pavlik
307d33b327
Allow XR_KHR_android_create_instance to be optional.
...
It's essentially replaced by KHR_loader_init_android,
and will eventually not be provided by new/updated runtimes
2022-05-06 09:28:15 -07:00
bjorn
7ac9f357d8
Sampler API;
2022-05-01 15:48:41 -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
f13bfabb5d
Fix texture allocator block sizes;
2022-05-01 15:41:03 -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
b7aa3f29a4
gpu: add texture transfer functions;
2022-04-30 15:58:19 -07:00
bjorn
dbc4f08fa5
You can write quats to buffers now;
2022-04-30 15:58:09 -07:00
bjorn
0316378f74
Fix renderView precedence;
2022-04-30 09:13:21 -07:00
bjorn
445f813524
Ignore srgb flag for formats that don't support it;
2022-04-30 09:13:16 -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
bc6b98123b
gpu_texture;
2022-04-29 15:09:01 -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
874c35120b
mv getBuffer buffer;
2022-04-28 20:57:36 -07:00
bjorn
d76936c48d
gpu: add ticks and streams;
2022-04-28 20:57:36 -07:00
bjorn
6ee2b901f7
Fix to buffer constructor;
2022-04-28 20:26:47 -07:00
bjorn
c285d0cdf9
Buffer:getFormat uses string keys;
2022-04-28 20:19:11 -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
a97193caac
Buffer stride can not be smaller than the size of a single item;
2022-04-28 15:39:45 -07:00
Josip Miskovic
24a0751c16
Add `World:setStepIterations(num)` and its getter
...
Physics world's "quick step" is executed in multiple iteration steps.
The getter and setter for this value is now made available as two new
methods in the World object.
This is allows user to balance between the less accurate but quick
simulations, and more stable behavior of physics.
Something similar was already possible, by reducing the delta time and
running the sim multiple times per frame. However, any force user applies
to collider is zeroed after each step. User would thus have to keep track
of applied forces, and re-apply them inside the physics iteration loop.
By default ODE uses 20 iterations in quick step.
2022-04-27 11:39:08 -07:00
bjorn
a8b7bc75a8
Adjust;
2022-04-27 00:35:09 -07:00
bjorn
9e5510b9a7
Adjust;
2022-04-27 00:32:01 -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
d8701df780
Add f16 conversion to util;
2022-04-27 00:19:44 -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
d45ded089c
os_win32: add virtual memory functions;
2022-04-26 22:44:06 -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
jascase901
51d96f6fa2
include required for linux support.
2022-04-24 13:07:59 -07:00
jascase901
aeb269b24a
use static assert macro instead of keyword
...
This change fixes a linker error I noticed when compiling on my windows
sytstem. see #551
According to this link the macro is prefered to the keyword.
https://docs.microsoft.com/en-us/cpp/c-language/static-assert-c?view=msvc-170#:~:text=The%20_Static_assert%20keyword%2C%20and%20the%20static_assert%20macro%2C%20both,runtime%20and%20incur%20a%20runtime%20cost.%20Microsoft-specific%20behavior
2022-04-24 13:07:59 -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
557f18ab3c
Add gpu_webgpu;
...
Send help
2022-04-21 17:58:26 -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
60cabcff3e
rm unused variables in headset bindings;
2022-04-21 17:39:59 -07:00
bjorn
e05c2cd593
renderTo no longer uses removed graphics functions;
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
85ee89d36f
Fix weirdness with vec2 scale arguments;
2022-04-06 10:10:27 -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
b115e5865f
Fix miniaudio warning;
2022-03-30 21:15:51 -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
8235965eca
rm util from os_macos;
2022-03-30 12:42:01 -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
bjorn
72c93630ce
Shift arguments up by one in fused mode;
...
There's a bug where arguments start at 0 instead of 1 in fused mode.
In fused mode, we aren't going to consume one of the command line
arguments for the project path like we normally do, so in order to
provide that argument to the lovr project at index 1, shift them all up
by one in boot.lua. We can only do this after the filesystem module is
loaded, so it can't go in main.c with all the other arg stuff.
The zero'th argument in fused mode is now the source path, just like how
it works in non-fused mode. This means the executable path is in the
arg table twice, which is sensible since in fused mode both the
interpreter and the interpreter's source are the same file.
2022-03-28 13:24:44 -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
342f92940e
Add :equals method to vector objects;
2022-03-25 16:05:38 -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
bb9a20aaf2
Add basic help command line flag;
2022-03-25 03:58:06 -07:00
bjorn
5e752f0b25
Fix error when passing objects as thread arguments;
2022-03-23 23:16:34 -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
64f7c49a0f
COUNTOF;
2022-03-21 17:00:30 -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