Commit Graph

3957 Commits

Author SHA1 Message Date
niki 834398335d fix buffer debugname is optional 2023-12-13 16:03:22 +01:00
niki a5d7ba1589 implement #1992
add debugname to settings table for texture and buffer,
which can be used for debugging in e.g. RenderDoc.
2023-12-13 14:28:34 +01:00
Sasha Szpakowski 8951635abc Merge branch 'main' into 12.0-development 2023-12-02 13:40:49 -04:00
Sasha Szpakowski 696007ee39 Don't unconditionally run love.jitsetup when love is used as a library 2023-11-27 23:14:36 -04:00
Miku AuahDark 6a298a74c2 jitsetup: Also disable JIT on ARM32 platform. 2023-11-27 12:47:23 +08:00
Miku AuahDark f4f3105ccd Call love.jitsetup during thread initialization too. 2023-11-27 12:13:56 +08:00
Miku AuahDark da3fdba7f4 Android: Remove calls to luaJIT_setmode.
Turning off JIT is now done in jitsetup.lua.
2023-11-27 11:35:37 +08:00
Sasha Szpakowski d21c9cb6de macOS/arm64: turn off JIT compilation by default. 2023-11-26 17:11:34 -04:00
Sasha Szpakowski 910533edda Initial code for sending flat-array matrices to storage buffers (untested). 2023-11-24 14:12:47 -04:00
Sasha Szpakowski 69dbb15027 Fix return value of Shape:testPoint. 2023-11-22 19:43:09 -04:00
Sasha Szpakowski 20ffe94349 vulkan: fix a consistency issue with texture samplers 2023-11-15 23:15:27 -04:00
Sasha Szpakowski 17362b6844 Restore no-parameter variant of love.graphics.setColorMask. 2023-10-30 18:55:26 -03:00
Sasha Szpakowski 6aaf0b22bf Address some compiler warnings 2023-10-21 13:55:43 -03:00
Sasha Szpakowski 5a0a6a1a27 All constructors for making a TrueType font take an optional settings table.
This supersedes the existing optional hinting and dpi scale parameters. The table's fields are:
{
  hinting = "normal",
  dpiscale = 1, -- nil will default to the current window DPI scale.
}
2023-10-20 20:19:30 -03:00
Sasha Szpakowski 8c13943f64 ImageData can track whether they're meant to be loaded into a Texture with a non-sRGB format when gamma correct rendering is enabled.
Fixes #1556.

* Add ImageData/CompressedImageData:setLinear and ImageData/CompressedImageData:isLinear.
  The flag is used as a hint when loading a texture from the data to determine if the format should not be treated as sRGB-encoded. The 'linear' flag in newImage overrides this.

* love.graphics.readbackTexture automatically sets the linear flag on ImageData it returns when the texture's format is linear.
  This allows an ImageData generated via readback to be fed back into a new Texture and the format will match the original Canvas.

* Also clean up some image decoding code.
2023-10-14 20:48:21 -03:00
Sasha Szpakowski 2aad15c865 Fix DistanceJoint type information 2023-10-14 16:42:31 -03:00
Sasha Szpakowski bd55100d56 metal: fix compile error 2023-10-14 15:02:28 -03:00
Sasha Szpakowski 343d192f10 Compressed texture formats have explicit sRGB variants 2023-10-14 15:01:01 -03:00
Sasha Szpakowski 9eec1754e7 opengl: fix clearing the depth buffer. 2023-10-14 10:30:51 -03:00
Sasha Szpakowski 983ea6c0e6 Remove explicit support for systems that don't support rgba8 canvases.
This is just a very small number of really old OpenGL ES 2 drivers.
2023-10-13 21:53:45 -03:00
Sasha Szpakowski 3865868358 Fix creating a linear rgba8 canvas when gamma correct rendering is on.
Fixes #1973
2023-10-13 21:41:32 -03:00
Sasha Szpakowski 37b9d7db11 Merge branch 'main' into 12.0-development 2023-10-11 22:05:55 -03:00
Sasha Szpakowski ba693500c4 Fix love.font.newBMFontRasterizer when it's given a single file param. 2023-10-11 22:05:33 -03:00
Sasha Szpakowski 86eb6df05c vulkan: don't hold onto ImageData references after loading an image.
Reduces CPU memory usage.
2023-10-09 20:22:04 -03:00
Sasha Szpakowski 90cd0be392 Merge pull request #1980 from nikeinikei/12.0-development
vk: correctly identify boolean uniforms
2023-10-09 16:17:16 -03:00
niki 88f6bb880e remove debug code 2023-10-09 20:16:01 +02:00
Sasha Szpakowski 5dc7b7d05b remove some redundant OpenGL API calls when clearing Canvases 2023-10-09 15:13:47 -03:00
Sasha Szpakowski 8958d155ab opengl: Fix blue component of love.graphics.setColorMask 2023-10-09 15:13:03 -03:00
niki 2749209fc7 vulkan: fix crash when using wrong uniform name 2023-10-09 20:12:13 +02:00
niki 88272c6855 vulkan: correctly identify boolean uniforms 2023-10-09 20:07:32 +02:00
Sasha Szpakowski 4787d50078 opengl: fix color mask 2023-10-09 14:10:24 -03:00
Sasha Szpakowski 06569b4fed Merge pull request #1979 from nikeinikei/12.0-development
vk: fix crash caused by love.window.close()
2023-10-09 13:37:30 -03:00
Sasha Szpakowski cf26e39d1b vulkan: potential fix for compressed textures with mipmaps 2023-10-09 13:13:37 -03:00
niki 21182d1428 vulkan: fix memory leak 2023-10-09 16:04:25 +02:00
niki 51d5b48515 vulkan: fix incorrect device extension 2023-10-09 15:32:17 +02:00
niki 8f8afe3de5 vulkan: fix crash when using love.window.close() 2023-10-09 15:31:23 +02:00
Sasha Szpakowski 2789e5eabf opengl: fix clearing integer format Canvases. 2023-10-08 21:36:10 -03:00
Sasha Szpakowski b8cbb62bc3 opengl: scissor and color mask no longer affects love.graphics.clear.
This makes it more consistent with other backends.
2023-10-08 21:08:59 -03:00
Sasha Szpakowski 27c4569697 love.physics: clean up some internal collision processing code 2023-10-08 14:06:55 -03:00
Sasha Szpakowski 112a09ceb7 Shape:setDensity no longer needs Body:resetMassData unless the Body already has custom mass data.
Add Body:hasCustomMassData.
If the Body has custom mass data, attaching a Shape to it doesn't automatically reset its mass data.
2023-10-08 12:43:27 -03:00
Sasha Szpakowski de3a0c0142 Improve error checking in love.physics.new*Shape 2023-10-07 15:33:15 -03:00
Sasha Szpakowski a1e4b649ce Fix compile errors on macOS 2023-10-07 15:33:01 -03:00
Sasha Szpakowski ac9ae82524 love.physics: simplify Body and Shape API.
#1130

- Shapes are now directly attached to Bodies when they're created (similar to love 0.7 and older).
- Fixtures are removed.
- All methods that were in Fixtures now exist in Shapes.
- All APIs that used or returned a Fixture now do the same with a Shape.

- Add new love.physics.new*Shape variants that take a Body as the first parameter.
- Deprecate the new*Shape APIs that don't take a Body.
- Deprecate love.physics.newFixture (the deprecated function now returns a Shape).
- Replace Body:getFixture and Body:getFixtures with Body:getShape and Body:getShapes (Body:getFixtures is deprecated).
- Replace World:queryFixturesInArea and World:getFixturesInArea with World:queryShapesInArea and World:getShapesInArea (queryFixturesInArea is deprecated).
- Replace Contact:getFixtures with Contact:getShapes (Contact:getFixtures is deprecated).
- Replace all love.physics callback Fixture parameters with Shape parameters.
- Deprecate ChainShape:getChildEdge.
2023-10-07 15:17:24 -03:00
Labrium f06ba8b926 Merge branch 'sdf-font-hintingmode' of https://github.com/Labrium/love into sdf-font-hintingmode 2023-10-05 20:12:28 -06:00
Labrium c3814bc66f Fix glyph rendering error for empty characters 2023-10-05 20:12:14 -06:00
Sasha Szpakowski 2702004bb2 Add Body:getFixture.
Convenience method to get the first Fixture attached to the body.
2023-10-04 20:00:44 -03:00
Sasha Szpakowski 51b439822b Add convenience functions for creating a Body+Shape+Fixture all at once.
#1130.

- Add love.physics.newCircleBody(world, bodytype, x, y, radius)
- Add love.physics.newRectangleBody(world, bodytype, x, y, w, h [, angle])
- Add love.physics.newPolygonBody(world, bodytype, coords)
- Add love.physics.newEdgeBody(world, bodytype, x1, y1, x2, y2 [, onesided])
- Add love.physics.newChainBody(world, bodytype, loop, coords)

All new functions return a Body object. The body's world position is at the center of the given coordinates, and the shape's local origin is at its center.
2023-10-04 19:56:22 -03:00
Sasha Szpakowski 03b6b9ff13 Fix return value counts... 2023-10-02 14:08:21 -03:00
Sasha Szpakowski da430d5145 World:rayCastAny and rayCastClosest also return the fixture they hit. 2023-10-02 14:05:54 -03:00
Sasha Szpakowski 6cb0287500 Add optional category bit mask to World:getFixturesInArea. 2023-10-02 12:15:26 -03:00