Commit Graph

4369 Commits

Author SHA1 Message Date
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
Miku AuahDark aaeb318aa6 Android: Implement special path URI for passing file descriptors.
This is to workaround the limitation of content:// URI severely limited.
2022-05-22 22:40:09 +08:00
Miku AuahDark 2016972607 Android: Reorder fused file preference. 2022-05-22 20:20:39 +08:00
Alex Szpakowski 502adfcb15 Merge pull request #1805 from MikuAuahDark/setadev
Support for Audio Device Selection and Disconnection Callback
2022-05-10 18:22:49 -03:00
niki 4a34924031 try fix github workflows 2022-05-08 22:59:00 +02: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
Miku AuahDark e79c272140 Update dr_flac to 0.12.38
Fix buzzing audio in some cases when decoding FLAC in Ogg container.
2022-05-07 12:18:24 +08:00
Miku AuahDark 7af537a417 Rename *OutputDevice(s) to *PlaybackDevice(s) 2022-05-07 11:04:28 +08:00
Miku AuahDark b2a6abdc0a Pass all stopped sources on love.audiodisconnected callback.
The behavior of sources re-played during these times is inconsistent.
Streaming sources will desync while static sources stop completely.
2022-05-07 10:50:10 +08: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 74c0c192f7 add VMA as library 2022-05-03 21:09:16 +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
Miku AuahDark 2cc93af436 Add love.audiodisconnected callback.
The callback is fired when the audio has been disconnected.
2022-05-03 22:36:13 +08:00
Miku AuahDark 5e0f0dc02e Add love.audio.setOutputDevice 2022-05-03 20:16:26 +08:00
Miku AuahDark 65b898903c Add love.audio.getOutputDevice(s). 2022-05-03 19:29:24 +08:00
Miku AuahDark 5dd7902175 Use DRMP3_FALSE instead of "false" in MP3 seeking. 2022-05-02 09:44:56 +08:00
Miku AuahDark 5c3f8a8950 Fix compile error. 2022-05-02 09:43:08 +08:00
Miku AuahDark c9ab08a2d3 Improve MP3 detection to reduce false positive. 2022-05-02 09:20:04 +08:00
Miku AuahDark c19d7cab1e Reorder sound decoder factory preference. 2022-05-02 07:40:48 +08:00
Miku AuahDark 2620225c03 Revert "Implement audio probing to reduce audio false positive."
This reverts commit 5f386cfa87 and 17800813b9.
2022-05-01 21:51:31 +08:00
Miku AuahDark 17800813b9 Fix iOS compile error. 2022-05-01 17:15:07 +08:00