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
Alex Szpakowski
258d2334af
OpenGL: Fix missing 'keep' and 'zero' stencil action implementations.
...
Fixes #1818
2022-07-09 09:00:58 -03: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
Alex Szpakowski
131b53d795
Fix typo in Metal code for shader switching.
2022-06-18 17:15:20 -03: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
3a4058d750
allow drawing more than one texture
2022-06-12 02:00:30 +02: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
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
niki
d0aaddfef6
cleanup redundant initialization code
2022-05-08 22:51:11 +02:00
niki
c16c07780f
use default texture when rendering primitives
2022-05-08 22:44:32 +02:00
niki
75a6bc9b5d
Merge remote-tracking branch 'origin/12.0-development' into vulkan
2022-05-06 16:46:55 +02:00
niki
4e8304255d
first draft of vulkan texture impl
2022-05-06 16:06:09 +02:00
niki
8f55f093a4
partially implement initCapabilities for vulkan
2022-05-04 23:43:23 +02:00
niki
1b816e93ae
usa vma as single header lib not through cmake
2022-05-04 15:42:36 +02:00
niki
e6f8b465bc
use vma for streambuffer implementation
2022-05-04 15:41:50 +02:00
niki
77f1af598d
add skeleton for vulkan texture impl
2022-05-03 18:11:31 +02:00
niki
394956e320
ignore minsize in StreamBuffer::map
2022-05-03 17:51:54 +02:00
niki
9299219977
perform prepareDraw only once per frame
2022-05-03 17:51:35 +02:00
niki
0953f3540e
remove temporary files after compilation
2022-05-03 17:51:18 +02:00
Alex Szpakowski
ee336e5393
opengl: restructure code for computing format support.
2022-04-23 13:15:58 -03:00
Alex Szpakowski
28a64c2b29
Use uint32 instead of int for some internal bit-flags.
2022-04-23 09:41:29 -03:00
Alex Szpakowski
c09fef8e79
Audio source decoding improvements.
...
- Streaming sources now also stream the file contents instead of loading it into memory, by default. Added a new stream type enum parameter to newSource ("file" or "memory").
- Audio file decoding now chooses the most appropriate decoder based on the file contents instead of the file extension.
- Videos now stream audio from the file instead of loading all of the video file into memory for use with audio decoding.
2022-04-21 19:57:32 -03:00