niki
00974b5820
vulkan: move shader compilation into Shader
2022-07-18 22:28:41 +02:00
niki
a544d51c22
vulkan: implement instanced draw
2022-07-17 00:28:41 +02:00
niki
6916182a79
vulkan: implement getAPIStats
2022-07-16 23:46:03 +02:00
niki
913aab0226
vulkan: implement setActive
2022-07-16 23:27:54 +02:00
niki
9b7cfef5ef
vulkan: implement setScissor
2022-07-16 23:19:24 +02:00
niki
974c50c751
vulkan: partially implement clear
...
Only works for color attachments for now.
2022-07-16 21:45:27 +02:00
niki
4c33d0aa36
vulkan: fix Shader::attach()
2022-07-16 17:52:29 +02:00
niki
ac9d8ec2a0
vulkan: fix canvas rendering
...
Sometimes canvas commands wouldn't get executed.
This was because when the window gets resized,
the command buffers would get recreated, and would thus
lose the recorded commands.
2022-07-16 15:55:48 +02:00
niki
95952c691d
vulkan: implement setRenderTargetsInternal
...
basic usage of canvases now works.
Colors probably aren't correct yet.
2022-07-15 01:44:07 +02:00
niki
0ae81091d1
vulkan: use dynamic rendering
...
This vulkan 1.3 feature will make the code simpler when dealing
with off screen render targets (i.e. löve canvases)
2022-07-14 18:01:46 +02:00
niki
38f15ae97d
vulkan: implement cull and winding
2022-07-13 17:27:11 +02:00
niki
c6d79ae87e
vulkan: implement setColorMask
2022-07-13 16:50:28 +02:00
niki
a591b2b99e
vulkan: implement setBlendState
2022-07-13 16:37:16 +02:00
niki
04fb789649
vulkan: implement setPointSize
2022-07-13 16:05:12 +02:00
niki
4190807a20
vulkan: implement setWireframe
2022-07-13 15:55:14 +02:00
niki
0834408b90
vulkan: implement draw(DrawCommand)
...
Now love.graphics.point and love.graphics.line works
2022-07-13 13:56:00 +02:00
niki
14b8abeef5
vulkan: implement setColor
2022-07-11 17:17:32 +02:00
niki
9d04ec0030
vulkan: fix all memory leaks
...
Now now errors regarding resource management appear in the debug output / validation layers.
2022-07-11 13:58:35 +02:00
niki
c5327bfc4f
vulkan: fix some more memory leaks
2022-07-11 01:47:34 +02:00
niki
0759e8d513
vulkan: fix some memory leaks
2022-07-11 01:13:50 +02:00
niki
7fe2a2d821
vulkan: fix vertex format
2022-07-10 22:52:03 +02:00
niki
ef08282f0d
vulkan: implement getRendererInfo
2022-07-10 19:13:10 +02:00
niki
565455c3ea
proper selection of vulkan renderer
2022-07-10 03:46:12 +02:00
niki
b1fb5b551e
working text rendering
2022-07-10 02:25:28 +02:00
niki
73348e5012
enable alpha blending
2022-07-01 13:43:51 +02:00
niki
2a65ea5fb1
cleanup some debug code
2022-06-30 20:16:40 +02:00
niki
0cea07806f
use different uniform buffers for each draw call
2022-06-30 18:42:49 +02:00
niki
7f894e5bf7
some work on drawQuads (not fully working yet)
2022-06-25 23:02:13 +02:00
niki
efdc2b8ee2
fix crash on exit
2022-06-16 02:25:55 +02:00
niki
b5ba2b65b5
stop hardcoding vulkan vertex layouts
2022-06-16 01:16:23 +02:00
niki
2bf7c35220
use constant color for VertexColor
2022-06-14 23:30:51 +02:00
niki
1111aa3f42
(almost) integrate default löve shaders for vulkan
2022-06-14 18:18:23 +02:00
niki
c996860602
Use löve's uniform data object for vulkan shader
2022-06-13 16:50:12 +02:00
niki
12b9978173
Merge remote-tracking branch 'origin/12.0-development' into vulkan
2022-06-12 02:06:44 +02:00
niki
3a4058d750
allow drawing more than one texture
2022-06-12 02:00:30 +02:00
Alex Szpakowski
17b359f939
Windows: add support for high-dpi when capable SDL versions are used.
...
Issue #1421
2022-06-11 19:49:26 -03:00
niki
acf0474cc8
Implement drawing very basic textures
...
With this commit you can draw very simple textures.
The following code will showcase it:
```lua
function love.run()
local data = love.image.newImageData(40, 40)
for i = 0,39 do
for j=0,39 do
if i <= 20 then
if j <= 20 then
data:setPixel(i, j, 1, 0, 0, 1)
else
data:setPixel(i, j, 0, 1, 0, 1)
end
else
if j <= 20 then
data:setPixel(i, j, 0, 0, 1, 1)
else
data:setPixel(i, j, 1, 1, 1, 1)
end
end
end
end
local texture
texture = love.graphics.newTexture(data)
return function()
love.event.pump()
for name, a,b,c,d,e,f in love.event.poll() do
if name == "quit" then
if not love.quit or not love.quit() then
return a or 0
end
end
love.handlers[name](a,b,c,d,e,f)
end
love.graphics.origin()
love.graphics.clear()
love.graphics.draw(texture, 50, 500)
love.graphics.present()
end
end
```
2022-06-11 20:33:44 +02:00
niki
6c19e8c10a
merge newest 12.0 commits
2022-06-11 01:34:17 +02:00
niki
4c415479c0
Merge remote-tracking branch 'origin/12.0-development' into vulkan
2022-06-11 01:22:29 +02:00
niki
b9496f6d43
use glslang to compile vulkan ShaderStage
...
Before this commit a system call to glslc was made to compile the shaders dynamically during runtime.
That was obviously a very hacky way, so now the proper way was implemented.
2022-06-11 00:59:14 +02:00
Alex Szpakowski
dd7e20fe18
Xcode project file maintenance
2022-06-09 19:57:53 -03:00
Alex Szpakowski
07f087c139
Fix newFileData and newThread outputting deprecation warnings.
...
Fixes #1811 .
2022-06-09 19:57:31 -03:00
Alex Szpakowski
4a1d01c68c
Fix cmake builds
2022-05-30 22:14:02 -03:00
Alex Szpakowski
3a5c3df02f
Add sync and async texture and buffer readback APIs.
...
- Add imagedata = love.graphics.readbackTexture(texture, [slice, mipmap, x, y, w, h, [dest, destx, desty]]).
- Add readback = love.graphics.readbackTextureAsync(texture, [slice, mipmap, x, y, w, h, [dest, destx, desty]]).
- Add bytedata = love.graphics.readbackBuffer(buffer, [offset, size, [dest, destoffset]]).
- Add readback = ove.graphics.readbackBufferAsync(buffer, [offset, size, [dest, destoffset]]).
- Deprecate Texture:newImageData.
The async variants return a new GraphicsReadback object. It has the following methods:
- isComplete()
- hasError()
- wait()
- getBufferData()
- getImageData()
- update() (called automatically every frame by love, not normally needed).
Support notes:
- readbackBuffer and readbackBufferAsync require buffer copying support.
- readbackTexture with a render target (canvas) is always supported. readbackTexture with a non-render-target requires copy-texture-to-buffer support.
- readbackTextureAsync with a render target requires copy-render-target-to-buffer support. readbackTextureAsync with a non-render-target requires copy-texture-to-buffer support.
2022-05-30 21:53:55 -03:00
Alex Szpakowski
fb450b1df4
Add internal code for temporary buffers.
2022-05-30 21:46:55 -03:00
Alex Szpakowski
a533982cb4
Replace internal 'staging' buffer data type with new 'readback' type.
2022-05-30 21:43:25 -03:00
Miku AuahDark
7b66e50cfc
Add support for love.filedropped in Android.
...
To send file to the filedropped callback, share the files to the game.
Note that for non-fused binary, if there's no game running, LOVE treat it as
*.love game to run.
2022-05-29 01:49:29 +08:00
Miku AuahDark
2879074177
Silence compiler warnings in isModifierActive.
2022-05-28 19:19:50 +08:00
Miku AuahDark
9e1e35ff39
Fixed love.audio.newSource(SoundData) variant.
2022-05-28 19:17:50 +08:00
Miku AuahDark
2822f17a39
Minor improvements and fixes to Android-specific code.
2022-05-28 13:47:53 +08:00