Commit Graph

3674 Commits

Author SHA1 Message Date
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
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
Sasha Szpakowski 28a898df1f Add World:rayCastAny and World:rayCastClosest.
They return hit position, normal, and ray fraction (if there is a hit), and also take an optional fixture category bitmask parameter.
2023-10-02 12:11:35 -03:00
Sasha Szpakowski c3847d5f04 Rename World:queryBoundingBox to World:queryFixturesInArea.
Matches the new World:getFixturesInArea function.
2023-10-02 11:06:15 -03:00
Sasha Szpakowski d24ccde864 World:rayCast and World:queryBoundingBox have user args passed through to the callback function.
Fixes #1194
2023-10-02 11:00:02 -03:00
Sasha Szpakowski b1609ed83b love.physics: simplify some internal bookkeeping code 2023-10-01 15:55:23 -03:00
Sasha Szpakowski dbc7d7f3ca Add love.graphics.newMesh variant to create a Mesh from existing Buffers.
This allows a Mesh to be created that doesn't have its own internal vertex buffer and purely references other vertex buffers instead.

The prototype looks like this:
mesh = love.graphics.newMesh(attributelist, drawmode)

where attributelist is an array of tables each with the following fields, similar to Mesh:attachAttribute:
{
    buffer = vertexbuffer,
    name = "VertexPosition", -- the name this vertex attribute will use in a shader
    nameinbuffer = nil, -- the name of the attribute in the vertex buffer. Defaults to the name field.
    step = nil, -- vertex attribute step ("pervertex" or "perinstance"), defaults to "pervertex".
    startindex = nil, -- 1-based array index within the given vertex buffer where the attribute data will start being pulled from during rendering. Defaults to 1.
}
2023-09-30 20:12:43 -03:00
Sasha Szpakowski 691d910c3e Improve error message when Mesh:setVertexMap is used with an empty array. 2023-09-30 17:54:09 -03:00
Sasha Szpakowski 96040b2b2a Fix list of data types in the error message when using an invalid vertex data type in the deprecated type+component count vertex format declaration. 2023-09-09 13:22:45 -03:00
Sasha Szpakowski 48e23a048d Improve text wrapping when multiple characters are combined into one glyph.
#1923
2023-09-08 22:38:17 -03:00
Sasha Szpakowski b0e3246ba8 Fix the Data object variant of File:write.
Fixes #1962
2023-08-21 16:50:28 -03:00
Sasha Szpakowski 6e80d85110 Merge branch 'main' into 12.0-development 2023-08-19 21:35:55 -03:00
Sasha Szpakowski 98663ec0db Merge pull request #1958 from nikeinikei/12.0-development
vk: maintenance
2023-08-07 21:08:51 -03:00
Miku AuahDark 8913ca2b23 Fix wrong function being registered for Joystick:getSensorData(). 2023-08-04 21:43:36 +08:00
niki 61cafd7dd4 adjust code styling 2023-08-01 14:23:10 +02:00
niki 8096cab5bc vulkan: use vkResetDescriptorPool 2023-07-30 15:35:20 +02:00
niki 9d9e2da763 vulkan: optimize vkUpdateDescriptorSets calls 2023-07-25 21:39:28 +02:00
niki af717c8cab vulkan: fix incorrect return type 2023-07-25 16:50:39 +02:00
niki f30bf9bee0 vulkan: better api use of descriptor pools
Some implementations allow for bottomless pools,
which never run out of pool memory.
This new implementation allows for this case to happen.
2023-07-25 16:37:53 +02:00
niki e08ade86b5 vulkan: simplify shader code slightly 2023-07-25 16:26:26 +02:00
Sasha Szpakowski 7706ac7ba9 iOS: don't try to open audio recording devices for capture.
It hard-crashes inside the alcCaptureOpenDevice call with Apple's OpenAL implementation.
See #1912.
2023-07-22 18:04:12 -03:00
niki 3b9476b5dd vulkan: fix validation warnings
Sometimes no buffer for tex coords are given, however the shader
still expects some. We can fix this by using a default buffer, which
contains the constant tex coords (0, 0), which is then bound instead.
2023-07-18 14:56:42 +02:00
niki ba15a2ab05 vulkan: correct usage of pNext chain for device
For systems where VK_EXT_extended_dynamic_state is not supported
it is not valid to extend VkDeviceCreateInfo with an unknown struct.
Todo: if more extensions are supported in the future this code probably
needs adjustments to correctly build a pNext chain.
2023-07-18 14:01:05 +02:00
niki 04de1ade9e vulkan: correctly deal with custom input attribs 2023-07-18 13:54:48 +02:00
niki 5254417c63 vulkan: remove unnecessary vkDeviceWaitIdle
Since we are only cleaning up objects that haven't been used in the
last 5000 frames, we do not need to wait to delete them.
2023-07-18 13:54:27 +02:00
niki 332b456131 vulkan: remove getDefaultTexture 2023-07-18 13:54:06 +02:00
niki 8b419522d7 vulkan: simplify code slightly 2023-07-18 13:53:25 +02:00
niki 37013267f7 vulkan: improve readability / maintainability 2023-07-18 13:52:26 +02:00
niki 284a385062 support more swapchain image formats 2023-07-18 13:52:13 +02:00
Sasha Szpakowski e582677344 Fix mouse position backward compatibility with new SDL2 versions.
Clamp the mouse coordinates to the window's dimensions.
2023-07-01 17:53:29 -03:00
Sasha Szpakowski 6563aec89d Merge pull request #1944 from MellowArpeggiation/main
Fix #1943 - Duplicate frames being skipped when decoding Theora
2023-06-18 12:56:07 -03:00