Commit Graph

72 Commits

Author SHA1 Message Date
Alex Szpakowski 7216a022f9 metal: remove unused internal code 2022-02-04 22:09:50 -04:00
Alex Szpakowski 6e49b1f901 metal: fix texture sampler changes not affecting draws using shaders. 2022-01-31 21:25:49 -04:00
Alex Szpakowski e4020e439a metal: lowdpi on macOS uses nearest instead of linear upscaling.
Matches the behaviour of the OpenGL backend on macOS.
2022-01-23 12:55:06 -04:00
Alex Szpakowski a5351e5046 metal: improve detection of rgba32f format filter and MSAA support. 2022-01-23 11:28:09 -04:00
Alex Szpakowski 6dbb7fa5de Add love.graphics.setStencilMode. Remove old stencil API.
- Add setStencilMode(drawaction, comparemode, value = 0, readmask = 0xFF, writemask = 0xFF).
- Add getStencilMode.
- Remove love.graphics.stencil.
- Remove love.graphics.set/getStencilTest.

Note that the new setStencilMode API does not clear the stencil buffer, and does not turn off color writes (it can still be done manually), unlike love.graphics.stencil.

Fixes #1161.
Fixes #1251.
2022-01-22 23:36:07 -04:00
Alex Szpakowski c26f6ed94f metal: improve performance of auto depth/stencil in setCanvas. 2022-01-22 23:12:42 -04:00
Alex Szpakowski 4c3c875aa9 metal: clean up some code around render pipeline states. 2022-01-22 21:29:57 -04:00
Alex Szpakowski 87592513a2 metal: fix automatic depth/stencil with setCanvas. 2022-01-22 20:57:06 -04:00
Alex Szpakowski 8c496d60e5 metal: add a couple comments clarifying depth format fallbacks. 2022-01-22 14:51:37 -04:00
Alex Szpakowski 1cf0073cf4 metal: use a fallback for fonts when luminance-alpha isn't supported. 2022-01-22 14:41:42 -04:00
Alex Szpakowski 62de8f62c7 metal: hook up emulated 'fan' mesh draw mode. 2022-01-22 12:59:09 -04:00
Alex Szpakowski 3ecae61189 metal: improve texture initialization. 2022-01-16 14:18:34 -04:00
Alex Szpakowski 4e1c4a6afe metal: some fixes for MSAA 2022-01-16 13:44:29 -04:00
Alex Szpakowski 4ca3535cd2 Metal: fix clamp-to-one texture wrap mode detection. 2022-01-15 23:31:07 -04:00
Alex Szpakowski 5c3f391136 update metal backend for projection changes. 2022-01-12 18:31:32 -04:00
Alex Szpakowski c373fb2e82 Fix compilation on macOS/iOS 2022-01-05 21:28:47 -04:00
Alex Szpakowski cf57c3eedf update copyright year for metal files 2022-01-05 21:13:53 -04:00
Alex Szpakowski 5864d83c31 Add ability to configure which renderers are used by love.graphics.
- Add t.renderers and t.excluderenderers love.conf fields. They can be an array of renderer names.
- Add --renderers a,list,of,renderernames and --excluderenderers more,renderers argument options.
2022-01-04 21:29:56 -04:00
Alex Szpakowski 40aa50662a Merge branch '12.0-development' into metal 2022-01-01 15:36:57 -04:00
Alex Szpakowski 045f5ff0a5 Fix initializing the graphics module after a window is opened. 2021-12-26 12:34:47 -04:00
Alex Szpakowski 19feec43f9 metal: don't do auto sRGB -> P3 color conversions on the backbuffer 2021-12-25 22:31:18 -04:00
Alex Szpakowski 30fe00d767 metal: implement storage buffer bindings 2021-12-25 14:21:45 -04:00
Alex Szpakowski c6e4cfdc64 metal: initial love.graphics.dispatchThreadgroups implementation 2021-12-24 23:04:44 -04:00
Alex Szpakowski a03041043f metal: partial implementation of love.graphics.discard 2021-12-24 22:41:31 -04:00
Alex Szpakowski 759937a458 metal: fix depth24stencil8 fallback on macOS 2021-12-24 22:20:25 -04:00
Alex Szpakowski 2868ede191 metal: restrict to macOS 10.15+ and iOS 13+. 2021-12-24 19:22:10 -04:00
Alex Szpakowski 620dc42292 metal: fix quad drawing on older iOS devices 2021-12-24 19:13:48 -04:00
Alex Szpakowski a431e70179 metal: add internal compute encoder APIs 2021-12-24 18:56:21 -04:00
Alex Szpakowski bcd64fe537 metal: implement mesh cull modes 2021-12-24 18:46:06 -04:00
Alex Szpakowski 7eb8366b2d metal: integer texture format support. 2021-12-24 17:50:17 -04:00
Alex Szpakowski 304b569a39 metal: tag texture formats with compute write support 2021-12-24 17:45:05 -04:00
Alex Szpakowski 7a910484c3 Fix compilation 2021-12-24 16:45:23 -04:00
Alex Szpakowski 7851124260 metal: work on storage buffers 2021-09-05 13:18:10 -03:00
Alex Szpakowski 6296e44425 metal: fix clampzero wrap mode. 2021-04-04 23:48:23 -03:00
Alex Szpakowski 2ec9f88f7a metal: more robust render pass handling.
Initial implementation of captureScreenshot.
Fix getStats().shaderswitches.
Fix getStats().drawcalls.
2021-04-04 23:47:58 -03:00
Alex Szpakowski 8c88d645a3 metal: avoid redundant resource binding calls. 2021-04-03 13:49:29 -03:00
Alex Szpakowski a4d0761e84 metal: work on depth/stencil textures, MSAA 2021-04-02 22:10:01 -03:00
Alex Szpakowski 9acf7df8e8 metal: fix crash when stream buffers are resized 2021-04-02 17:53:55 -03:00
Alex Szpakowski 4cac353908 metal: fix love_ScreenSize when a canvas is active 2021-04-02 16:10:20 -03:00
Alex Szpakowski 662b70458e metal: fix setCanvas 2021-04-02 14:32:45 -03:00
Alex Szpakowski 52d4a5c679 metal: initial shader texture binding implementation.
rework metal shader compilation/parsing.
2021-03-31 18:35:57 -03:00
Alex Szpakowski 46ca836bd5 metal: enable clamp-to-one wrap mode on iOS 10.14+ 2021-03-30 19:32:33 -03:00
Alex Szpakowski 2064c140ac metal: clamp scissor rect to be within the active RT 2021-03-30 19:27:52 -03:00
Alex Szpakowski aad0810e11 metal: initial (bad/slow) setShader tracking 2021-03-29 18:28:06 -03:00
Alex Szpakowski 3a1c85c13e metal: hook up correct texture size and max RT limits 2021-03-27 23:10:49 -03:00
Alex Szpakowski 1e85e1b414 metal: fix Buffers, fix shader cleanup 2021-03-27 22:21:00 -03:00
Alex Szpakowski 5f888be64a metal: initial pixel format support implementation 2021-03-27 17:37:09 -03:00
Alex Szpakowski 3744f8b939 metal: implement point sizes 2021-03-26 21:49:00 -03:00
Alex Szpakowski 9cc6be4ac7 Remove bufferusage_uniform for now
It's not really implemented
2021-03-26 21:43:24 -03:00
Alex Szpakowski 2d2918a254 Merge branch '12.0-development' into metal 2021-03-26 21:42:08 -03:00