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
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
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
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
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
90b22f7d42
Fix love.graphics.draw(TextBatch) accessing an invalid pointer.
...
Fixes #1922 .
Fixes #1914 .
2023-04-22 21:59:15 -03:00
scurest
f5b8117c19
graphics: fix typo in comment
2023-04-13 22:12:28 -03:00
scurest
106daedf75
graphics: fix for anti-parallel line segments ( #1894 )
...
Handle the case when a line doubles back on itself, eg
love.graphics.setLineJoin("bevel")
love.graphics.line({
180, 400,
200, 400,
100, 400
})
2023-04-13 22:12:22 -03:00
Sasha Szpakowski
a71cfdcb50
Fix typo
2023-04-13 22:12:11 -03:00
Sasha Szpakowski
1080507c7d
Improve variable name readability in line rendering code.
2023-04-13 22:12:05 -03:00
slime
c245397178
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.
2023-04-13 22:11:46 -03:00
Klonan
7e0f8ca791
FIx polyline adding NaN normals, which breaks the line rendering
2023-04-13 22:11:35 -03:00
Sasha Szpakowski
02427c3ddc
metal: fix a crash on quit
2023-04-02 17:09:44 -03:00
Sasha Szpakowski
0b48dacb4e
Remove convenience constructor functions for vertex and index buffers.
...
love.graphics.newVertexBuffer and newIndexBuffer don't do enough to justify their existence since love.graphics.newBuffer already covers all buffer creation functionality.
1-based indices in newIndexBuffer versus 0-based indices in newBuffer(..., {index=true}) was also confusing.
2023-03-26 20:46:24 -03:00
scurest
ee90667846
graphics: fix typo in comment
2023-02-21 22:18:28 -06:00
scurest
bdcef0bbc8
graphics: fix for anti-parallel line segments ( #1894 )
...
Handle the case when a line doubles back on itself, eg
love.graphics.setLineJoin("bevel")
love.graphics.line({
180, 400,
200, 400,
100, 400
})
2023-02-21 22:18:28 -06:00
Sasha Szpakowski
416abdbc59
love.graphics.copyBuffer: slightly more robust error handling.
2023-02-19 19:36:32 -04:00
Sasha Szpakowski
c70b0a0b03
Add Buffer:clear, to reset all or part of a Buffer's contents to 0.
2023-02-19 19:36:03 -04:00
Sasha Szpakowski
11c92ece33
Merge pull request #1902 from nikeinikei/12.0-development
...
Improve vk render passes
2023-02-14 21:23:45 -04:00
niki
5eae82ab33
vulkan: fix gammacorrect in Graphics::clear
2023-02-15 01:22:38 +01:00
Sasha Szpakowski
70a18e115f
vulkan: don't set CREATE_DEDICATED_MEMORY flag for buffer memory.
...
It was being set all the time because of a code bug, but also documentation recommends using it very sparingly - partly because systems have a hard limit on the number of individual allocations (and they can also be a lot slower).
We might want to revisit more selective use of the flag in the future.
2023-02-14 20:18:26 -04:00
niki
4f321d69e7
vulkan: cache depthStencilFormat
2023-02-12 14:52:30 +01:00