Commit Graph

2482 Commits

Author SHA1 Message Date
Alex Szpakowski 5d2b0a98e5 Add missing applyTransform and replaceTransform functions…
--HG--
branch : minor
2016-11-24 21:54:19 -04:00
Alex Szpakowski 5e5b247fc7 Work around buggy C++11 standard libraries (mingw)
--HG--
branch : minor
2016-11-24 21:37:13 -04:00
Alex Szpakowski 14aa6965b3 Added Transform objects to love.math (resolves issue #1228).
- Added love.math.newTransform.
- Added love.graphics.applyTransform and love.graphics.replaceTransform.
- love.graphics.draw/print/printf, Text:add/addf, and SpriteBatch:add can accept a Transform argument.
- love.graphics.push can accept an optional Transform as a second argument, which will apply the Transform after pushing the matrix stack,
- Shader:send can accept Transform objects when sending to a mat4 uniform variable.

--HG--
branch : minor
2016-11-24 21:30:45 -04:00
Alex Szpakowski 9d2ee6d909 Shader uniforms keep their values after love.window.setMode (resolves issue #1174).
Also allow arrays of images/samplers in shaders, although driver support is iffy and you have to index into the array using a compile-time constant (which might exclude loop indexing).

--HG--
branch : minor
2016-11-21 18:28:16 -04:00
Alex Szpakowski 639c229bd7 Rename RecordingDevice:startRecording and RecordingDevice:stopRecording to RecordingDevice:start and RecordingDevice:stop.
--HG--
branch : minor
2016-11-20 10:08:07 -04:00
Alex Szpakowski a245819ae1 Fix compilation on macOS and iOS. Minor cleanup.
--HG--
branch : minor
2016-11-20 10:04:08 -04:00
Alex Szpakowski 99a3653d10 Merged in rcoaxil/love-patches/minor-mic-input (pull request #68)
Microphone input implemented.

--HG--
branch : minor
2016-11-20 13:51:49 +00:00
Alex Szpakowski f118befeba Potentially fix a random error in setMode
--HG--
branch : minor
2016-11-19 23:47:33 -04:00
Alex Szpakowski bed9bc1bae We don’t need a list of projection matrices..
--HG--
branch : minor
2016-11-19 20:12:12 -04:00
Alex Szpakowski 247e1b6af0 Merge default into minor
--HG--
branch : minor
2016-11-19 19:19:14 -04:00
Alex Szpakowski 3e80ec2257 Render pass API. Replaces love.graphics.setCanvas and friends.
- Removed love.graphics.set/getCanvas, Canvas:renderTo, Canvas:newImageData, love.graphics.clear, love.graphics.discard, and love.graphics.newScreenshot.

- Added love.graphics.beginPass and love.graphics.endPass. All rendering must happen within a pass. love.draw is now called while a render pass to the main screen is active.
- Added love.graphics.renderPass, which is a wrapper for begin/endPass which calls the supplied function argument in between a begin/end. This is similar to the old Canvas:renderTo.
- Added love.graphics.isPassActive, getPassCanvases, getPassWidth, getPassHeight, and getPassDimensions.
- Added love.graphics.captureScreenshot.

- Added a new love.run callback love.drawpasses, which is called after love.update and before love.draw. It is the place to render to Canvases using beginPass or renderPass, since love.draw now always draws to the main screen.

- Renamed the ‘canvasswitches’ field in the table returned by love.graphics.getStats to ‘renderpasses’.

love.graphics.beginPass has the following variants (and renderPass mirrors them with an additional function argument at the end):

- love.graphics.beginPass(), begins rendering to the main screen without clearing it.
- love.graphics.beginPass(r, g, b [, a]), begins rendering to the main screen and clears the screen to the specified color.

- love.graphics.beginPass(canvas [, willstencil]), begins rendering to the specified Canvas without clearing it. love.graphics.stencil can only be used within the Canvas if ‘willstencil’ is true.
- love.graphics.beginPass(canvas, r, g, b [, a] [, willstencil]), beings rendering to the specified Canvas and clears it to the specified color. love.graphics.stencil can only be used within the Canvas if ‘willstencil’ is true.

- love.graphics.beginPass(info), where ‘info’ is a table in the following form:
{
    {canvas [, r, g, b, a]}, — A canvas and an optional color to clear the Canvas to when the pass begins.
    {canvas2, [r, g, b, a]}, — Additional Canvases and optional clear colors for multi-canvas rendering.
    …,
    stencil = false, — Optional boolean field to specify whether love.graphics.stencil is allowed within this pass. False by default.
}

The pass info table can be created once up-front and used for multiple beginPass/renderPass calls.

love.graphics.endPass can take an optional callback function argument, which causes endPass to capture the contents of the Canvas drawn to in the render pass to a new ImageData and passes it to the supplied function (this replaces Canvas:newImageData). This does not work on the main screen.

love.graphics.captureScreenshot replaces love.graphics.newScreenshot. It takes a callback function argument which causes love.graphics.present to capture the contents of the screen to a new ImageData and passes it to the supplied function. captureScreenshot can only be called before drawing to the main screen begins in the current frame (e.g. in love.keypressed, love.update, etc.)

--HG--
branch : minor
2016-11-19 19:13:26 -04:00
Alex Szpakowski aeca14a35a Merged in rcoaxil/love/minor (pull request #66)
consistified seeking to invalid location behavior, minor fixes

--HG--
branch : minor
2016-11-17 22:06:06 +00:00
Alex Szpakowski b084934311 Fix Shader:send and sendColor ignoring the last argument for shader uniform arrays. 2016-11-16 17:37:43 +00:00
Alex Szpakowski c647317a74 Re-generated boot.lua.h. 2016-11-05 17:33:32 -03:00
Xpol Wan c28a6c51c4 love.arg.parse_option just return how many extra arg the current option consumes.
--HG--
branch : better-parse-options
2016-11-04 22:27:49 +08:00
xpol de855f30d5 Better love.arg.parse_options():
1. use string.match for we are mean to match
2. better match pattern which now do not allow somthing like `not-a-valid--console`
3. use while loop which allows change loop var.

--HG--
branch : better-parse-options
2016-11-04 11:37:38 +08:00
Raidho 422325588e fixed potential memory leak, minor code imporovements
--HG--
branch : minor-mic-input
2016-11-04 05:40:07 +03:00
Raidho c7c253f449 made getRecordingDevices keep already existing devices
--HG--
branch : minor-mic-input
2016-11-03 20:24:21 +03:00
Raidho 57d02dec2b Addressed some criticism
getRecordingDevices internal function is now returns constant reference,
also re-enumerates devices every time it is called; this is a slow operation
getID removed for not being useful

--HG--
branch : minor-mic-input
2016-11-03 06:31:31 +03:00
Bart van Strien 452a8a877e Don't set the enet global when requiring enet
--HG--
branch : minor
2016-11-02 13:08:56 +01:00
Alex Szpakowski 5ba449d1ff Add support for BC4-7 compressed texture formats in KTX files. Updated the changelog. 2016-10-29 23:42:40 -03:00
Nathan Korth 53c528aa44 Add 'ellipse' distribution to ParticleSystem 2016-10-28 16:26:28 -04:00
Julio Felipe Angelini cdf7199c48 Added new raw values constructor to Matrix4 and Matrix4::setRawTransformation().
--HG--
branch : set-raw-transform
2016-10-26 17:45:28 -02:00
James Watkins-Harvey bdc653d9a5 Define LUASOCKET_API macro in header file instead of build time argument
--HG--
branch : minor
2016-10-25 10:34:17 -04:00
Bart van Strien 7a6e626c74 Make stb_image only use SSE2 on x86_64, or when an override has been set (fixes #1173)
Turns out, this is a gcc bug: detecting sse2 support cannot be done in shared
libraries. For now we'll assume 32-bit x86 builds are intended to also run on
devices without SSE2 (how old!). In the future we might decide we only support
machines that support SSE2, if we secretly don't already.
2016-10-25 15:21:31 +02:00
Alex Szpakowski ec7565176e Add love.window.isMaximized 2016-10-24 21:35:22 -03:00
Raidho a99c757652 made :getData produce SoundData directly
moved SoundData::load back to private

--HG--
branch : minor-mic-input
2016-10-25 02:39:39 +03:00
Raidho 3de68707d1 made device enumeration lazy
made enumerator to first attempt aquire default device name by standard means,
then to fall back to read name from opened device
getRecordingDeviceCount removed for being redundant

--HG--
branch : minor-mic-input
2016-10-25 02:05:53 +03:00
Alex Szpakowski ff53e8fe71 Fix non-integer coordinates passed to ImageData:mapPixel/setPixel/getPixel and SoundData:set/getSample.
LuaJIT does interesting things when you index into a FFI array using a non-integer value.
2016-10-24 18:14:09 -03:00
Raidho 424d2704ec made RecordingDevice throw errors on invalid parameters
--HG--
branch : minor-mic-input
2016-10-23 19:22:56 +03:00
Raidho 9a090e8df8 made RecordingDevice create new SoundData every time captured samples are aquired
--HG--
branch : minor-mic-input
2016-10-23 18:53:02 +03:00
Raidho 87f0b2811e Microphone input implemented.
RecordingDevice class added
(number)love.audio.getRecordingDeviceCount() and (table)love.audio.getRecordingDevices() exposed
(bool):startRecording([samples, sampleRate, bitDepth, channels], (SoundData):stopRecording([SoundData]),
(SoundData):getData([SoundData]), (number):getSampleCount(), (number):getSampleRate(), (number):getBitDepth(),
(number):getChannels(), (string):getName(), (number):getID(), (bool):isRecording() member functions exposed
previously existed stub implementation removed
getFormat moved to love::audio::openal::Audio
getFormat arguments order swapped to (bitDepth, channels)
getFormat now returns AL_NONE if format is invalid

--HG--
branch : minor-mic-input
2016-10-23 17:56:52 +03:00
Alex Szpakowski 894a44f45c Fix an incorrect delete call when out of memory. 2016-10-22 21:32:44 -03:00
Alex Szpakowski a9593d926e Fix love.math.noise(nil) to error instead of returning nil. 2016-10-20 22:57:12 -03:00
rcoaxil 3c413a293b stray minus sign
--HG--
branch : minor
2016-10-19 05:13:30 +03:00
Alex Szpakowski 0653ec9564 Address some compiler warnings about implicit integer conversions.
--HG--
branch : minor
2016-10-18 22:32:35 -03:00
Alex Szpakowski b8b670e0ae Simplify Drawable code
--HG--
branch : minor
2016-10-18 22:06:52 -03:00
rcoaxil 329e10d35b stb hack revert
--HG--
branch : minor
2016-10-18 05:36:28 +03:00
rcoaxil 9bed2ac33a moved back update cycle constant looping override for static sources
--HG--
branch : minor
2016-10-18 05:33:34 +03:00
rcoaxil b337e0ff6f consistified seeking to invalid location behavior
removed few redundant operations and checks
moved sound start seeking from prepare to play
fixed potential bug with sources that failed to play not releasing AL source
back into the pool
sources now stop if seeked to invalid location
looped sources play from 0 if seeked to invalid location while playing

--HG--
branch : minor
2016-10-18 05:04:46 +03:00
Alex Szpakowski a844c16657 Simplified Source constructors.
--HG--
branch : minor
2016-10-16 16:04:00 -03:00
Alex Szpakowski 7cd24de402 Merged in rcoaxil/love/minor (pull request #63)
TYPE_QUEUE Source implemented, ported to minor branch.

--HG--
branch : minor
2016-10-15 17:56:37 +00:00
Alex Szpakowski dafacf3fbc test
--HG--
branch : minor
2016-10-15 14:55:35 -03:00
rcoaxil 71326564f0 removed some more trailing spaces
oh god i need a tool for this

--HG--
branch : minor
2016-10-15 20:08:41 +03:00
rcoaxil 38a6176665 issues addressed
cropped trailing spaces
put TYPE_MAX_ENUM in getDurationAtomic
moved around variables in seekAtomic

--HG--
branch : minor
2016-10-15 20:04:08 +03:00
rcoaxil c5e0846c52 fixed stream seeking bug
--HG--
branch : minor
2016-10-15 10:02:18 +03:00
rcoaxil 00c02adcd0 issues addressed
warnings fixed
added type checking to Lua functions
stopping queueable source clears buffered data
getting queueable source to auto-play if it underruns and then gets re-filled
will probably require re-designing pool usage strategy

--HG--
branch : minor
2016-10-13 18:18:08 +03:00
rcoaxil b757a0534e pull request feedback addressed
newQueueableSource added
isQueueable removed, getFreeBufferCount added
queueData renamed to queue; added 3 argument variant with (data, offset, length)
lightuserdata variant now requires offset (pointer, offset, length, samplerate, bitdepth, channels)
setLooping now throws exception if called on queueable source

--HG--
branch : minor
2016-10-13 04:40:41 +03:00
Alex Szpakowski a4bdbcdf10 Fix love.audio.newSource(decoder) and love.audio.newSource(sounddata) to no longer require a Source type argument.
--HG--
branch : minor
2016-10-12 17:42:23 -03:00
raidho36 b1c842f186 fixed bug preventing stream sources from loading data
--HG--
branch : minor
2016-10-12 20:49:05 +03:00