bjorn
0b76ab7e96
Add a few Tally things;
2022-07-12 19:59:12 -07:00
bjorn
1c571001e7
Finish Model API;
2022-07-12 19:35:23 -07:00
bjorn
cd65e8d34c
Cache only rebinds vertex/index buffers when needed;
2022-07-12 17:19:30 -07:00
bjorn
83245afae6
Fix Font:getLines;
2022-07-11 22:43:42 -07:00
bjorn
4e92a4e503
Super ultra cool geometry cache;
...
Pass stores a small 16-bucket cache of vertices/indices it recently
generated. Draws that have relatively predictable geometry can provide
a hash along with their draw. The Pass will reuse vertices based on the
hash, when possible, and return a NULL vertex pointer to let the draw-er
know they don't need to generate any vertices.
This provides a dramatic speedup when drawing the same shape many times
in a row. The overhead is negligible, with benefits kicking in with
just a small handful of repeated draws (3-5 for cubes, less for more
complex shapes).
2022-07-11 20:52:35 -07:00
bjorn
ae87abc7bb
gpu: fix allocator;
2022-07-11 19:53:53 -07:00
bjorn
a4e4181489
Error screen;
2022-07-10 21:37:52 -07:00
bjorn
a0cd36a77b
Fix torus winding;
2022-07-10 18:02:49 -07:00
bjorn
0a251495bc
Fix normal matrix;
2022-07-10 18:02:44 -07:00
bjorn
698977c5be
Better default torus segments;
2022-07-10 18:02:31 -07:00
bjorn
e8ebb17796
Fix hexcode render pass clear;
2022-07-10 17:07:04 -07:00
bjorn
cfa5613db4
gpu: render pass cache uses correct resolve layout;
2022-07-10 17:06:43 -07:00
bjorn
f23ae4009f
gpu: Fix render pass cache eviction;
2022-07-10 17:06:20 -07:00
bjorn
dacd17066d
luax_checkendpoints;
...
Allows drawing a sphere/capsule using 2 endpoints.
2022-07-10 13:11:47 -07:00
bjorn
4e8fe82f94
Font:getVertices;
2022-07-10 12:49:47 -07:00
bjorn
889b1d8271
Improve Buffer length estimation;
2022-07-10 12:49:11 -07:00
bjorn
f89b1811aa
Adjust default Buffer field locations;
...
I guess it's better to match them up with the default attributes.
In most cases you're going to want to manually specify them with names
or numbers anyway.
2022-07-10 12:35:02 -07:00
bjorn
f7d7281e70
Add index16/index32 FieldTypes;
...
Similar to u16/u32 but are 1-indexed when written using tables.
2022-07-10 12:18:31 -07:00
bjorn
8e89026678
Shader:getLocalWorkgroupSize;
2022-07-09 23:39:03 -07:00
bjorn
886bfe18c1
Shader "improvements";
2022-07-09 23:09:02 -07:00
bjorn
c7f4e11b0b
Improve shader errors;
2022-07-09 21:39:31 -07:00
bjorn
e8a5f02e7b
Start stats;
2022-07-09 21:19:51 -07:00
bjorn
159352770f
Model:getTriangles;
...
Doesn't 100% work, Buffers are kind of a mess, ugh.
2022-07-09 18:30:36 -07:00
bjorn
40cbb18346
Ugly Pass:capsule;
2022-07-09 16:38:25 -07:00
bjorn
b0c1dd5f12
Put nogame in its own file;
2022-07-06 23:50:43 -07:00
bjorn
f2cfb19d4d
Material textures must be sample-only;
...
Tracking every material's texture would add a lot of overhead, probably
2022-07-06 23:00:39 -07:00
bjorn
3bf5ec5744
Shader improvements;
...
Mostly renaming things and adding helper functions.
2022-07-06 22:54:56 -07:00
bjorn
f9c07f852b
gltf: KHR_texture_basisu; Only load active images;
2022-07-06 20:24:02 -07:00
bjorn
5f19c2e1be
Model:getBoundingBox; Model:getBoundingSphere;
2022-07-06 19:22:02 -07:00
bjorn
516ac2a925
Fix validation issue when first draw uses empty vertex format;
2022-07-06 16:43:42 -07:00
bjorn
a44ab9bcfa
Fix presentation sequence issue;
...
Fixes crash on error inside lovr.draw.
2022-07-05 21:58:54 -07:00
bjorn
dbc34c0fdc
Update internal resource limit caps;
2022-07-04 15:54:43 -07:00
bjorn
dd8d8fe67e
Adjust;
2022-07-04 15:22:54 -07:00
bjorn
b7e5bd1d67
Require 64KB uniform buffers;
...
64KB is near-ubiquitous, and the per-draw UBO needs this much space.
2022-07-04 15:21:43 -07:00
bjorn
b934fac1df
Pass:skybox;
2022-07-04 00:18:38 -07:00
bjorn
8aa14ba42b
Shader:hasAttribute;
2022-07-03 23:04:56 -07:00
bjorn
2c339dd944
Shader:hasStage;
2022-07-03 22:59:49 -07:00
bjorn
b2b6b14e3e
Fix Pass:mesh error handling;
2022-07-03 22:40:19 -07:00
bjorn
917b97ca2d
Adjust;
2022-07-03 21:48:43 -07:00
mcc
9a7eedbf4d
Remove 'check on egress' behaviors where an error for a sound being too large is emitted only when a getter is called (left harder-to-remove checks that occur when a sound is loaded)
2022-07-03 21:34:16 -07:00
mcc
15aa08bbe7
Adjustments to MSVC warnings PR based on github comments
2022-07-03 21:34:16 -07:00
mcc
28d64b6ced
Fix various compiler warnings in MSVC (non graphics edition)
...
- Put in casts/checks in audio code when assigning size_t to 32 bit
- () is different from (void)
- Turned off warnings for anonymous unions and negating unsigned integers which were technically accurate but unhelpful (and interfered with bit conversion and a weird bit math construct in audio.c) (CMakeLists only)
2022-07-03 21:34:16 -07:00
bjorn
cdf6b2017e
Fix segfault on shader compilation failure;
2022-07-03 20:19:17 -07:00
bjorn
4f15e7e34a
Fix plane winding;
2022-07-03 20:07:00 -07:00
bjorn
de090971f7
rm erroneous union;
2022-07-03 19:59:51 -07:00
bjorn
0d23d10e43
Animate normals; Use material color;
2022-07-03 19:20:30 -07:00
bjorn
d088c5471d
Model;
...
Does not include some of the fancier accessors yet.
2022-07-03 17:26:31 -07:00
bjorn
e8e9e7fd57
Fix leaks;
2022-07-03 12:59:51 -07:00
bjorn
45f74bad3d
Fix Image UB;
2022-07-03 12:59:17 -07:00
bjorn
56a9d81254
Fix push constants;
2022-07-01 18:34:31 -07:00
bjorn
d9d54ce348
Pass:copy(tally, buffer);
2022-06-30 18:51:03 -07:00
bjorn
8b37b25e54
TIME WIZARD;
2022-06-30 18:47:01 -07:00
bjorn
a521f11a44
lovrPassCopyTallyToBuffer;
2022-06-30 18:46:47 -07:00
bjorn
d06e0c8b09
gpu: tally waits for query results;
2022-06-30 17:34:30 -07:00
bjorn
0417e9095d
gpu: add timestampPeriod limit;
2022-06-30 17:34:30 -07:00
bjorn
c327eb103f
Tally;
2022-06-30 17:34:29 -07:00
bjorn
9e7bd34ab1
Font:getWidth;
2022-06-30 17:25:47 -07:00
bjorn
4125b1dc7e
mv getWrap getLines; Include bearing/advance in width;
2022-06-30 17:07:47 -07:00
bjorn
8e968cecd0
Fixes;
2022-06-30 00:29:52 -07:00
bjorn
1f8d37a160
Font:getKerning;
2022-06-29 21:49:55 -07:00
bjorn
078b54a7a5
Font:getWrap doesn't return width;
2022-06-29 21:33:39 -07:00
bjorn
7711fe8b65
Font:getWrap; Simplify Font internals;
2022-06-29 20:17:26 -07:00
bjorn
fa2bd2b05c
Shuffle around Rasterizer;
...
Shorter names, ditch linegap
2022-06-28 20:18:45 -07:00
bjorn
90092c55e4
Font: ignore \r; Fix uv adjustment; Ignore linegap;
2022-06-28 16:28:14 -07:00
bjorn
63f45de9de
Fix Pass:setShader(nil);
2022-06-27 23:15:19 -07:00
bjorn
408fcb8b37
Fix typo;
2022-06-27 21:43:23 -07:00
bjorn
1752b220bf
Pass:text supports multicolor strings;
2022-06-27 21:42:51 -07:00
bjorn
af2c53a762
Fix luax_optcolor;
2022-06-27 21:38:40 -07:00
bjorn
e5d4ac10cb
Fix Font atlas expansion;
2022-06-26 21:22:45 -07:00
bjorn
9d84d3907b
Font texture is u8;
...
Originally we made the font texture f16 due to "clamping" of the
distance field, and kept it as floats (but f32 since conversion isn't
automatic with Vulkan) here. However, clamping isn't really an issue.
You can increase the spread of the font to literally get a wider spread
of the SDF for glows, etc. Switching to u8 uses 4x less texture memory,
which is significant.
2022-06-26 20:57:57 -07:00
bjorn
bac57dc0d2
Add stack allocation to temp allocator;
...
It can be used to push the current cursor onto the stack, perform some
tmep allocations, and then pop the stack to "free" them all at once.
This can be nice if you're doing some temporary allocations that aren't
going to be needed when the function returns, since it reduces the
amount of allocator growth a bit.
This allocator is meant to be threadlocal eventually, so there are no
thread-safety concerns.
2022-06-26 20:53:12 -07:00
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