Commit Graph

245 Commits

Author SHA1 Message Date
bjorn e87cec1b49 Reduce number of materials per block; 2022-07-31 10:39:49 -07:00
bjorn 9e4765818a Rename texture depth to layer count; 2022-07-31 10:39:49 -07:00
bjorn 571c71b76e Rename pipeline stack to state; 2022-07-31 10:39:49 -07:00
Josip Miskovic 7c792fd975 Fix cylinder's triangle winding and normals 2022-07-31 09:38:40 -07:00
bjorn 922942a0bf Initialize Pass font properly; 2022-07-17 20:07:20 -07:00
bjorn d9623a51a9 Pass:setFont; 2022-07-17 19:53:31 -07:00
bjorn 24504d1719 Adjust; 2022-07-17 16:38:29 -07:00
bjorn d17131c421 Pass:cone; 2022-07-17 16:38:00 -07:00
bjorn 92201b87a1 Rename timer tally type to time; 2022-07-17 13:17:33 -07:00
bjorn 83fa750a4d Support and default to reverse-z with infinite far plane; 2022-07-17 12:37:59 -07:00
bjorn 1df537294a Improve Model texture loading;
- Only loads textures used by materials
- Creates color/glow textures as sRGB
2022-07-17 12:04:47 -07:00
bjorn c2dd7281cc mv stage tally -> shader tally; 2022-07-17 11:38:55 -07:00
bjorn 5d3e1f93cd Add d32fs8; 2022-07-17 11:03:00 -07:00
bjorn 32346796ef Tally/Readback cleanup; 2022-07-17 09:50:15 -07:00
bjorn 430f687add Projection updates;
- Rename/reorder some projection matrix functions.
- Make perspective functions flip Y and use 0-1 NDC range.
- Flip winding and font vertices based on handedness.

This stuff is really confusing
2022-07-17 09:02:53 -07:00
bjorn 1bc31b7751 Revert accidental winding change; 2022-07-15 21:42:31 -07:00
bjorn e2bfff1b0a Tally/Readback fixes; 2022-07-14 19:23:02 -07:00
bjorn 45135899a1 Readback, mostly; 2022-07-14 00:05:58 -07:00
bjorn 4909a1963b Fix clear alpha; 2022-07-14 00:03:58 -07:00
bjorn bca10c9e98 Make info structs const; 2022-07-13 00:07:15 -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 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 4e8fe82f94 Font:getVertices; 2022-07-10 12:49:47 -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 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 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