bjorn
7625ef9bd8
Rasterizer:getGlyphImage;
2022-06-20 18:24:12 -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
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
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
fc616f92c2
Pass:mesh; Pass:setMeshMode;
2022-06-09 23:05:32 -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
1cc8cf9f4a
Update glslang to accept array of shader strings;
2022-06-09 17:44:46 -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
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
d5325b87b4
Headset support;
2022-06-05 20:38:14 -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
d3a1a0ec22
Pass:cube; Pass:box;
2022-06-04 11:28:35 -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
ac3801902b
Pipeline stack;
2022-05-31 21:57:55 -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
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
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
dd043cbf07
Fix bundle allocation;
2022-05-30 15:06:57 -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
ff77a30f01
Default shaders;
2022-05-27 20:47:20 -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
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
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
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
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
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
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