Commit Graph

5246 Commits

Author SHA1 Message Date
Sasha Szpakowski bb9fb54ef4 Merge pull request #2053 from nikeinikei/main
vulkan: fix incorrect scissor when rendering to a canvas
2024-04-09 13:53:19 -03:00
niki 15c14c69b4 vulkan: correct scissor extent calculation 2024-04-09 18:04:54 +02:00
niki 869cb23314 vulkan: fix incorrect scissor when rendering to a canvas 2024-04-09 17:31:04 +02:00
Sasha Szpakowski 7f37a7ddbe metal: fix texture uploads in the middle of a render pass stopping the pass' subsequent draws from working. 2024-04-08 22:10:11 -03:00
Sasha Szpakowski 6bc91a025c metal: fix backbuffer discarding its contents in some situations.
fixes #1975.
2024-04-08 20:11:47 -03:00
Sasha Szpakowski d40b78be76 vulkan: fix shader cross-stage io (varying) location mapping. 2024-04-08 17:59:06 -03:00
Sasha Szpakowski 994079e76d Mesh:getVertexFormat uses named fields, to match the new format syntax in newMesh. 2024-04-08 12:20:07 -03:00
Sasha Szpakowski 8140817107 vulkan: fix a crash on minimization.
Use a fake backbuffer when the system reports 0 for swap chain dimensions.
2024-04-07 17:25:46 -03:00
Sasha Szpakowski e11ab50965 tests: fix a missing love.graphics.pop 2024-04-07 15:14:59 -03:00
Sasha Szpakowski 2bc9777c3b vulkan: limit render pass layout transitions to the active mipmap/layer. 2024-04-07 09:48:54 -03:00
Sasha Szpakowski 1692573be6 vulkan: fix image layout mismatches when generating mipmaps and when copying from a buffer. 2024-04-07 09:13:21 -03:00
Sasha Szpakowski 92a03719e2 vulkan: fix validation errors when a resource is declared in multiple stages. 2024-04-06 21:38:12 -03:00
Sasha Szpakowski aded2621a3 vulkan: use uniform shader stage masks when setting up descriptor set layouts. 2024-04-06 20:24:10 -03:00
Sasha Szpakowski 455d02c695 vulkan/metal: fix a typo preventing non-array struct field uniforms from working. 2024-04-06 09:46:40 -03:00
Sasha Szpakowski 9b3eff1f62 tests: update Shader:send tests to try sending a non-array struct field. 2024-04-06 09:46:05 -03:00
Sasha Szpakowski 1d9d3346c5 windows: prefer regular vsync instead of dwm flush syncs.
The latter can cause stuttering issues on some setups.
2024-04-05 22:30:58 -03:00
Sasha Szpakowski e08004d338 vulkan: fix uniform vec3 array alignment 2024-04-01 23:06:19 -03:00
Sasha Szpakowski dc945d757a tests: add a graphics test for uniform vec3 array alignment 2024-04-01 23:01:00 -03:00
Sasha Szpakowski 4655deb216 Merge pull request #2047 from learn-more/sdl3
Fix building love on Windows for SDL3-3.1.0
2024-04-01 15:03:19 -03:00
Mark Jansen a689d8e450 Fix building love on Windows for SDL3-3.1.0 2024-04-01 19:26:52 +02:00
Sasha Szpakowski b48d81d976 rename love.graphics.setCustomProjection to setProjection. 2024-03-31 21:12:01 -03:00
Sasha Szpakowski 44a6a81641 vulkan: improve depth/stencil texture support. 2024-03-31 17:56:36 -03:00
Sasha Szpakowski 6ac3c5f990 vulkan: fix one validation error when sending a depth-stencil texture to a shader. 2024-03-31 16:48:12 -03:00
Sasha Szpakowski f32b6bde57 vulkan: fix validation error when clearing mid-pass. 2024-03-31 13:28:46 -03:00
Sasha Szpakowski a0ca3c148e vulkan: improve handling of vertex attribute bindings. 2024-03-31 12:55:40 -03:00
Sasha Szpakowski c37257c173 tests: apply the same anisotropy fix to Image tests 2024-03-31 10:11:17 -03:00
Sasha Szpakowski 72f7a36588 tests: canvas:setFilter test doesn't fail if the system doesn't support anisotropic filtering. 2024-03-31 10:09:59 -03:00
Sasha Szpakowski c6131ff838 Merge pull request #2045 from learn-more/lua_in_vs
Add lua files to CMakeLists.txt
2024-03-30 15:05:51 -03:00
Mark Jansen 93c77a7798 Add lua files to CMakeLists.txt
This makes them show up in Visual Studio.
2024-03-30 18:03:22 +01:00
Sasha Szpakowski c764626a6a vulkan: fix shader:send with fields in an array-of-structs. 2024-03-30 12:20:52 -03:00
Sasha Szpakowski b5b6d07108 metal: fix shader:send with fields in an array-of-structs. 2024-03-30 12:03:20 -03:00
Sasha Szpakowski 4948e52013 iOS: update minimum runtime OS from 12.0 to 13.0. 2024-03-30 11:38:51 -03:00
Sasha Szpakowski fd1901b3ad Update glslang with array-of-samplers fix. 2024-03-30 11:31:33 -03:00
Sasha Szpakowski 8aac67f597 macOS: update minimum runtime OS from 10.13 to 10.15.
std::filesystem isn't supported below 10.15, and libraries like glslang and OpenAL-Soft are starting to use those APIs.
2024-03-30 11:30:15 -03:00
Sasha Szpakowski f5cfaaf30d Merge pull request #2036 from bartbes/modernize-cmake
Modernize cmake builds
2024-03-30 10:02:05 -03:00
Bart van Strien 60156347a2 Downgrade minimum cmake version to 3.16
Which matches SDL3 and ubuntu 20.04.
I checked the release notes, there were no relevant changed in 3.17 and 3.18.
2024-03-30 13:46:00 +01:00
Sasha Szpakowski 81c26e4429 Merge pull request #2046 from bartbes/lua54_to_be_closed_support
Add support for lua 5.4 to-be-closed variables
2024-03-30 09:40:39 -03:00
Bart van Strien 4b6756049b Add support for lua 5.4 to-be-closed variables
Automatically call object:release() when an object is used as a to-be-closed variable.

Since both release and __gc already handle multiple calls, this just works.
Theoretically extra actions could be added to some objects, like File calling File:close(), but it already does that in its destructor, so that should be unnecessary.
2024-03-30 13:16:21 +01:00
Sasha Szpakowski 4387935f16 Allow drawing a Mesh that has no VertexPosition attribute, if it has custom attributes. 2024-03-29 21:01:04 -03:00
Sasha Szpakowski 302da1b3af vulkan: potentially fix validation errors when creating a cubemap canvas. 2024-03-28 19:06:42 -03:00
Sasha Szpakowski b33afc4371 vulkan: love.graphics.clear fixes.
- Fix love.graphics.clear(color) when multiple canvases are active.
- Fix love.graphics.clear when an integer-format canvas is active.
2024-03-28 19:00:29 -03:00
Sasha Szpakowski d82922f774 vulkan: let the system handle device rotation for us.
We'd need to inject a whole bunch of code into user shaders (for example to rotate derivates) if we wanted to reliably handle it ourselves, which isn't viable.
2024-03-27 20:00:05 -03:00
Sasha Szpakowski 6dc2fdba35 SDL3: use synchronous window operations (for now). 2024-03-25 23:14:58 -03:00
Sasha Szpakowski 42e653b6a6 Fix cmake build... 2024-03-25 21:07:05 -03:00
Sasha Szpakowski 5ded7ed4d3 Add new (temporary) JoystickSDL3 file to build projects. 2024-03-25 21:01:05 -03:00
Sasha Szpakowski 8d360113f8 update code for some recent SDL3 renames 2024-03-25 20:55:28 -03:00
Sasha Szpakowski 2bdadf51d4 Merge branch 'main' into SDL3 2024-03-24 18:53:08 -03:00
Sasha Szpakowski 21b71d02b5 Add love.graphics.setCustomProjection.
The active projection matrix is reset when changing canvases, and when the window is resized if no canvas is active at the time.
2024-03-24 10:46:29 -03:00
Sasha Szpakowski 7bfbd647ba Make shader clip space consistent across APIs and projection matrices.
- All shaders are expected to output clip space values that are effectively y-up, with [-1, 1] z, in NDC.
- The transform to a backend's expected clip space values from the above range now happens after user vertex shader code is run, instead of inside a projection matrix.
- Projection matrices no longer need to be flipped when rendering to a canvas versus the main screen.

This means custom projection matrices might need to be altered to account for the more consistent range.
2024-03-23 22:00:02 -03:00
Sasha Szpakowski 698d305212 Remove love.graphics.setOrthoProjection and setPerspectiveProjection 2024-03-23 17:58:34 -03:00