Commit Graph

3545 Commits

Author SHA1 Message Date
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