Commit Graph

2780 Commits

Author SHA1 Message Date
Alex Szpakowski 33bc8aabfc Add Joystick:getGamepadMappingString and love.joystick.getGamepadMappingString(guid). Resolves issue #1371. 2019-09-15 14:02:19 -03:00
Alex Szpakowski 9ab2a94037 Rename internal C++ Color struct to Color32 to help differentiate it from Colorf. 2019-09-14 23:13:40 -03:00
Alex Szpakowski 89eb3c6236 Remove a static_assert that fails in some compilers 2019-08-25 17:16:58 -03:00
Alex Szpakowski 55d4dc0f9e Restructure some internal vertex buffer binding code to be closer to how graphics APIs actually behave. 2019-08-25 16:50:15 -03:00
Bart van Strien 932068e777 Stop the attached Source when a Video gets destroyed
Before it would end up paused, but this means the audio playback thread will
still keep it alive. Since there are no other references, there is no way to
then free that Source anymore.
2019-08-11 15:34:00 +02:00
Bart van Strien cb625d890a Make sure luax_getfile always returns a retained value
Before it would return a retained value if it returned a freshly constructed file, and an unretained value otherwise.
Also update all (3) call sites, to correctly retain or release as needed.
2019-08-11 11:13:22 +02:00
Alex Szpakowski 639bdb10e9 Fix love.filesystem.mount(data). Resolves issue #1506. 2019-08-02 21:06:07 -03:00
Alex Szpakowski 528c1e2390 love.filesystem's loaders in the package.loaders table error instead of crashing when no argument is given to them (resolves issue #1504). 2019-08-02 21:04:22 -03:00
Alex Szpakowski 459d31db7e Fix the Data-returning variant of love.filesystem.read/File:read to return the size that was read. Now it's consistent with the string-returning variant. 2019-07-31 19:24:17 -03:00
Alex Szpakowski 32f381576e Avoid using lightuserdata in internal wrapper code for the math module. 2019-07-20 10:51:59 -03:00
Alex Szpakowski cb4b45dcf1 Add Data:getFFIPointer. Similar to Data:getPointer but returns a cdata pointer directly (or nil if the FFI isn't available).
It should be preferred instead of Data:getPointer because the latter uses lightuserdata which can't store more all possible memory addresses on some new arm64 architectures, when LuaJIT is used.
2019-07-20 10:47:58 -03:00
Alex Szpakowski 93fef5f144 Remove some dead code. 2019-07-17 18:57:14 -03:00
Alex Szpakowski 5c01289300 Fix love.graphics.getTextureTypes to return a table with boolean values instead of number values. 2019-07-13 21:58:01 -03:00
Alex Szpakowski aca979c3ea Add Joystick:getDeviceInfo(). Returns USB vendor id, product id, and product version numbers (consistent across operating systems).
Can be used to show different icons, etc. for different gamepads.
2019-06-29 21:01:17 -03:00
Alex Szpakowski 3c9662a9ce Fix a typo in the line smoothing code. I don't think it causes any visual change. 2019-06-28 12:40:41 -03:00
Alex Szpakowski e66ecd03a8 Minor code cleanup of FLAC decoder. 2019-06-25 20:19:27 -03:00
Alex Szpakowski 9833515eba Merged in AuahDark/love/flac-audio (pull request #125)
Enable FLAC audio support.
2019-06-25 23:02:44 +00:00
Alex Szpakowski 37472d6f5e Add 'usedpiscale' boolean (true by default) to love.window.setMode's settings table and love.conf's t.window table. Add love.window.getNativeDPIScale.
When usedpiscale=false, love will no longer automatically scale coordinates by the screen's DPI scale factor (so all coordinates will be in pixels), even when highdpi=true. love.window.getDPIScale will return 1, love.graphics.newCanvas will default to a dpi scale of 1 instead of the screen's dpi scale, etc.

love.window.getNativeDPIScale() will return the screen's DPI scale as reported by the OS no matter what usedpiscale is set to.
2019-06-24 21:54:09 -03:00
Alex Szpakowski 2e6644fd44 Backout changeset b0094b5a9fa7f9a8f38040ec2f3d94d0a3cf31ce 2019-06-20 18:57:42 -03:00
Miku AuahDark 65b01fc52f Re-enable FLAC codepath using dr_flac instead of libFLAC.
--HG--
branch : flac-audio
2019-06-17 16:09:46 +08:00
Alex Szpakowski fc8ede263e Fixed BezierCurve:render to avoid adding collinear points in some situations. Resolves issue #1501. 2019-06-16 22:48:33 -03:00
Alex Szpakowski 2a534893b1 Small ImageData code cleanup. 2019-06-04 20:33:44 -03:00
Alex Szpakowski 8455ef22d5 More consistent naming for vertex and index buffers in love's code. 2019-06-04 20:29:44 -03:00
Alex Szpakowski 44fd8b4e19 Update TinyEXR 2019-06-02 11:35:52 -03:00
Alex Szpakowski 8e5b71e8e7 Improve automatic batching performance slightly on AMD gpus by removing some redundant/useless opengl calls (there is no mapped buffer to flush). 2019-06-01 15:58:42 -03:00
Alex Szpakowski ddef70e141 Potentially improve automatic batching performance slightly on nvidia/intel GPUs. 2019-06-01 15:06:19 -03:00
Alex Szpakowski 51d0733943 Apply workaround for font texture loading on Radeon 3000/4000-era graphics cards to mobile GPUs as well as desktop ones. 2019-05-30 20:36:19 -03:00
Alex Szpakowski 02fa8b0b2b Fill truetype font glyph atlases with transparent white instead of transparent black in the borders between glyphs. Fixes black fringes around text (resolves issue #1495) and reduces the appearance of flickering when text is moved at non-integer coordinates and gamma correct rendering isn't enabled (closes issue #1143). 2019-05-27 19:36:22 -03:00
Alex Szpakowski 38cb56f168 Use doubles instead of floats for the time argument in Source:seek. This probably won't affect anything meaningfully, but in theory it's more precise. 2019-05-26 14:46:52 -03:00
Alex Szpakowski 3c77edb68b Fix modplug-decoded streaming Sources when looping repeatedly, and when stop() is called on them. Resolves issue #1493. 2019-05-26 13:55:29 -03:00
Bart van Strien 7b7d03721c Prevent the currently displayed video frame from changing if the video is paused
If you'd seek while the video was paused, you'd see the next frame of the video.
2019-05-22 20:00:30 +02:00
Bart van Strien 064296a6ce Don't write intermediate frames to the backbuffer if catching up or seeking
There's no need to lock a mutex twice and copy the entire frame if we know
we'll just discard the data anyway.
2019-05-22 19:57:39 +02:00
Bart van Strien 1e8ab8ce1e Never seek video more than once when trying to catch up (issue #1472, issue #1438)
I'm not sure if this actually helps, because I haven't been able to reproduce
the issue so far, but at least this should make it less likely the decoder
thread ends up in an infinite loop.
2019-05-22 19:50:51 +02:00
Alex Szpakowski ae572f2ffe Fix love.isVersionCompatible (resolves issue #1488). 2019-05-19 18:30:45 -03:00
Alex Szpakowski 33186430af Simplify Source playback offset tracking to only store the integer sample offset, and convert to seconds when requested. 2019-05-16 19:17:19 -03:00
Bart van Strien c4b21b6efe Try probing the audio type if extension matching fails (resolves #1487)
At the moment it still only tries a single decoder if it does find a matching extension. It might be a good idea to simply always probe, but try the matching decoder first, that way you could name your mp3 .ogg.
2019-05-04 11:35:41 +02:00
Bart van Strien 4662580059 Make sure the mpg123 decoder tries to read data on creation
So it can fail if it's not actually an mp3 file

Preparation for issue #1487
2019-05-04 11:26:16 +02:00
Bart van Strien bf5e3820bd Remove unused stored extension in Decoder
As preparation for issue #1487
2019-05-04 10:44:41 +02:00
Alex Szpakowski 372a55c6ac ImageData supports more formats: r8, rg8, r16, rg16, r16f, rg16f, r32f, rg32f. Format conversion via ImageData:paste is not supported for those (yet). 2019-04-28 12:09:16 -03:00
Alex Szpakowski 8b51dc831d Work around occasional pops in streaming sources on iOS, by making the streaming source update code more like what was there in 0.10.x. 2019-04-24 20:13:07 -03:00
Alex Szpakowski 8f0686c204 Code style cleanup. 2019-04-24 00:11:18 -03:00
Alex Szpakowski 9d4cb2a949 iOS: Fix Source:play+stop+play and Source:play+seek, for streaming sources. Resolves issue #1484. 2019-04-24 00:10:22 -03:00
Alex Szpakowski 14abf2c9e8 Move source seeking from Source::playAtomic to prepareAtomic. Fixes love.audio.play(sources) for sources which had seek() called before the play call. 2019-04-23 21:30:32 -03:00
Alex Szpakowski 276bdd1dbf iOS: fix audio clicks immediately after playing a source. Resolves issue #1485. 2019-04-23 21:18:56 -03:00
Alex Szpakowski 69c47675b9 Add Decoder:clone. Resolves issue #1479. 2019-04-07 15:47:00 -03:00
Alex Szpakowski 09cd3b68c9 Explicitly disable color FBO attachments where possible for depth/stencil canvases. Potentially fixes issue #1470 2019-04-02 21:13:01 -03:00
Alex Szpakowski 0c2153e0ca Fix a potentially uninitialized value in love.graphics code. Minor cleanup. 2019-04-02 20:20:18 -03:00
Alex Szpakowski b439ff07ce Allow love.timer.sleep(0). 2019-04-02 20:12:09 -03:00
Bart van Strien 00e7d640c7 Also test source pitch is positive and clarify error (resolves #1474)
According to the OpenAL 1.1 specification AL_PITCH, values must be in the range (0.0f, any]. Though I guess any does not include infinity.
2019-03-09 15:24:02 +01:00
Bart van Strien 3d64ad0a3e Properly propagate errors when creating a DataView (fixes #1476)
The C++ code already threw an exception when creating a DataView with size 0, but the corresponding lua wrapper ignored it. Now it's correctly turned into a lua error.
2019-03-02 13:47:49 +01:00