Commit Graph

2146 Commits

Author SHA1 Message Date
niki a2466a4a1b vulkan: use temporary pipeline cache 2023-01-22 00:17:42 +01:00
Sasha Szpakowski 9edae19d74 Merge branch 'main' into 12.0-development 2023-01-14 22:40:13 -04:00
Sasha Szpakowski 592c306276 Fix images with mipmaps when ANGLE is used with an AMD gpu. 2023-01-14 22:35:00 -04:00
Sasha Szpakowski 8cac37b811 Fix typo 2023-01-14 12:17:57 -04:00
Sasha Szpakowski 8ae7342875 Improve variable name readability in line rendering code. 2023-01-14 12:13:35 -04:00
Sasha Szpakowski 94d05e319b Clear auto-generated temporary depth/stencil buffers in setCanvas.
Previously it would discard them, which needed the user to call love.graphics.clear afterward to get them into a valid state.

The current code has suboptimal performance if the user still calls clear after setCanvas (a common situation), so more optimizations will probably be needed.

Fixes #1843.
2023-01-11 18:17:22 -04:00
Sasha Szpakowski 249d90067e Don't discard the backbuffer depth/stencil in setCanvas.
#1893.
2023-01-11 08:58:12 -04:00
niki 7e7d2884c8 vulkan: fix shader crash 2023-01-09 16:37:12 +01:00
Sasha Szpakowski 8572d4f935 Merge branch 'text-shaping' into 12.0-development 2023-01-08 20:48:48 -04:00
Sasha Szpakowski 52283425ca metal: fix crashes on the iOS Simulator 2023-01-08 20:37:05 -04:00
Sasha Szpakowski c2778587f7 Merge branch '12.0-development' into text-shaping 2023-01-08 20:31:37 -04:00
Sasha Szpakowski b0f79f78a5 vulkan: don't pass a SDL_Window into GetInstanceExtensions, it's unneeded. 2023-01-08 15:21:26 -04:00
Sasha Szpakowski 6a6ec2eeb6 Merge branch 'main' into 12.0-development 2023-01-06 17:15:29 -04:00
Sasha Szpakowski d085f44e6a Merge branch '12.0-development' into text-shaping 2023-01-01 12:18:54 -04:00
Sasha Szpakowski 22b6388a96 Merge pull request #1888 from steveRoll-git/main
Allow Canvas:renderTo to accept varargs
2023-01-01 10:59:42 -04:00
Sasha Szpakowski f6cdbdc868 Merge branch 'main' into 12.0-development 2022-12-31 22:46:34 -04:00
Sasha Szpakowski 0b75f6cfa5 Missed some files... 2022-12-31 22:36:48 -04:00
Sasha Szpakowski c823dbca96 Update copyright year for 2023 2022-12-31 22:25:49 -04:00
Ron Tseytlin c5d72846c4 Allow Canvas:renderTo to accept varargs
The varargs will be forwarded to the function.
2022-12-31 02:32:54 +02:00
Sasha Szpakowski 9502942b7b font rendering: reimplement tab-as-spaces support. 2022-12-28 19:46:48 -04:00
Sasha Szpakowski bcc4a45e46 Merge pull request #1885 from nikeinikei/12.0-development
Vulkan fixes
2022-12-27 13:32:08 -04:00
niki 74027ad780 vulkan: remove unneeded Module::getInstance call 2022-12-27 13:55:35 +01:00
niki cd07a464fb vulkan: document future possibility for vsync
Right now we have to recreate the swapchain everytime vsync
/ present mode changes.
VK_EXT_swapchain_maintenance1 might remove the need for this.
However, right now there are not any drivers yet that support it.
In the future, this might be the better way to handle this situation.
2022-12-27 13:54:46 +01:00
Matt Durgavich c441797976 Prefer snprintf over sprintf in OpenGL 2022-12-26 20:57:56 -05:00
Sasha Szpakowski 7a0f6621e7 Initial (WIP) Harfbuzz text shaping integration.
This a significant refactor / rewrite of much of the love.graphics Font code.
Text positioning is now split into TextShaper classes in the love.font module. This isn't exposed to users yet.
BMFonts and ImageFonts use the same text shaping as before (in the new TextShaper API). Fonts loaded via FreeType now use Harfbuzz for text shaping.

The new code isn't at feature-parity with the old code yet. Harfbuzz-based text shaping enables kerning support in more fonts, character combining into ligature glyphs, and directions other than left-to-right (this isn't supported in love yet).
2022-12-26 19:06:08 -04:00
niki 00c65d63fe vulkan: fix incorrect descriptor sets 2022-12-25 23:09:57 +01:00
niki 8694c44207 vulkan: fix incorrect textures in shader uniforms 2022-12-24 22:37:58 +01:00
niki ccca355664 vulkan: fix love.window.setVsync 2022-12-22 01:27:05 +01:00
nikeinikei eec94ccc99 Merge branch 'love2d:12.0-development' into 12.0-development 2022-12-21 17:20:43 +01:00
niki 30bdb03f3b vulkan: code styling 2022-12-21 17:20:13 +01:00
niki 92b5278b31 Merge branch '12.0-development' of https://github.com/nikeinikei/love into 12.0-development 2022-12-21 16:29:55 +01:00
niki 2d5b4966d3 vulkan: add missing vulkan errors 2022-12-11 23:21:47 +01:00
Sasha Szpakowski a37c2fb9a9 Mesh:attachAttribute: add an optional start array index parameter.
Allows easier use of a single instance buffer with multiple draws when instanced attributes are used (#1878).
2022-12-10 21:11:59 -04:00
Sasha Szpakowski f17d3d94f1 Rename love.graphics Text objects to TextBatch.
The name Text is too generic compared to what they're designed for, it made people unnecessarily confused about their purpose.
2022-12-08 18:46:44 -04:00
Sasha Szpakowski c0c195ec47 Fix lua wrapper return value count for Texture:setWrap. 2022-12-07 22:51:42 -04:00
Sasha Szpakowski c89192990b vulkan: potentially improved highdpi support.
Mostly untested.
2022-12-06 20:36:36 -04:00
Sasha Szpakowski d70514b2d1 vulkan: when vsync is off prefer immediate instead of mailbox mode, for now.
Fixes #1852. This might be reevaluated in the future.
2022-12-04 17:51:11 -04:00
nikeinikei a2cf8821c0 Merge branch 'love2d:12.0-development' into 12.0-development 2022-11-26 05:30:31 +01:00
Sasha Szpakowski 6599697835 opengl: Fix love_PixelCoord and love_ScreenSize in shaders.
Fixes #1866.
2022-11-25 23:27:04 -04:00
niki c0d0e73a91 Merge branch '12.0-development' of https://github.com/nikeinikei/love into 12.0-development 2022-11-12 03:37:01 +01:00
niki 12bc2b4545 vulkan: fix code formatting
now indenting only uses tabs and not spaces
2022-11-12 03:36:58 +01:00
nikeinikei 105c2efb8d Merge branch 'love2d:12.0-development' into 12.0-development 2022-11-12 03:25:14 +01:00
niki 97a7042143 vulkan: remove instanceVersion class member
This is not actually needed. The api version specified when creating
the vulkan instance should be the highest api version that might
be used by the application, which can be higher than the supported
instance version. VMA can make use of vulkan 1.3 features so this
can be hardcoded to VK_API_VERSION_1_3.
2022-11-12 03:24:07 +01:00
niki de1a4c3149 vulkan: fix crash when creating compute shaders
If the size of the default uniform block ends up being 0,
there will be a crash since creating a buffer of size 0
is invalid. A simple if-statement fixes this issue
2022-11-12 03:22:23 +01:00
slime 8cda22ef7d Remove NaN-check C assert calls in line drawing code.
Users can pass NaN point values into line drawing code. love shouldn't abort the entire program if that happens.
2022-10-30 12:30:42 -03:00
niki 089746dbf1 Merge branch '12.0-development' of https://github.com/nikeinikei/love into 12.0-development 2022-10-27 14:22:46 +02:00
niki 3b3bd63c93 vulkan: improve loop in createVulkanVertexFormat 2022-10-27 14:22:43 +02:00
nikeinikei fd6870a7ce Merge branch 'love2d:12.0-development' into 12.0-development 2022-10-26 12:16:04 +02:00
slime ae0688c834 macOS/metal: workaround for bug where high power GPU won't fully activate 2022-10-25 19:51:03 -03:00
niki e95319873c Merge remote-tracking branch 'upstream/12.0-development' into 12.0-development 2022-10-25 13:52:35 +02:00