Commit Graph

2108 Commits

Author SHA1 Message Date
Alex Szpakowski 7eeca829e5 Fix a use of std::remove_if
--HG--
branch : minor
2016-09-12 08:11:38 -03:00
Alex Szpakowski 11328a23cf Don't consider different OpenGL versions when re-creating the window after a previous window and OpenGL context has been created. love.graphics has never supported switching GL versions mid-game, so we should prevent it from ever happening.
--HG--
branch : minor
2016-09-11 21:40:00 -03:00
Alex Szpakowski 4dd1b3a83f Added a new variant of Shader:send for matrices: Shader:send(uniformname, is_column_major, matrix, ...).
If is_column_major is true, the table(s) passed as subsequent arguments will be treated as column-major instead of row-major. This matches the 0.10.x behaviour of Shader:send for matrices.

--HG--
branch : minor
2016-09-11 20:57:40 -03:00
Alex Szpakowski 593f96a08c Add support for non-square matrix uniforms in desktop GLSL. The notation is columns x rows, e.g. a mat4x2 has 4 columns and 2 rows.
Fixed the memory layout of matrices sent to shaders via Shader:send. Note that this is a breaking fix and will probably cause matrices designed to work with older versions of LÖVE to be transposed in shaders compared to what they were previously, if Shader:send or sendMatrix was used to put them in the shader.

--HG--
branch : minor
2016-09-11 14:53:23 -03:00
Alex Szpakowski a853ef6c3a Remove Shader:sendInt/sendBoolean/sendFloat/sendMatrix/sendTexture
--HG--
branch : minor
2016-09-11 13:09:41 -03:00
Alex Szpakowski 54efa825c3 Merge default into minor
--HG--
branch : minor
2016-09-11 13:09:01 -03:00
Alex Szpakowski a9c83897bb Shader:send improvements.
Type and value checking is now completely based on the shader uniform's information, instead of on the arguments to Shader:send. This means Shader:send now converts numbers to integers or floats depending on the uniform's type, and matrices can now be passed in as a flat array (without requiring the 'dimension' field that shader:sendMatrix previously needed).
As a result, Shader:sendTexture, Shader:sendMatrix, Shader:sendInt, and Shader:sendFloat are all deprecated in favour of Shader:send.

Performance of Shader:send has also increased, especially when sending small amounts of values per call.
2016-09-11 12:40:02 -03:00
Alex Szpakowski 0b1bfba493 Use SDL_DetachThread instead of a conditional SDL_WaitThread when a Thread is destroyed. 2016-09-08 23:33:48 -03:00
Alex Szpakowski 7a904de2e1 In fact, lets just replace Shader:getUniformVariable with Shader:hasUniform. The latter returns true if the uniform with the specified name exists and contributes to the final output of the shader.
--HG--
branch : minor
2016-09-01 18:32:12 -03:00
Alex Szpakowski ee79038572 Renamed Shader:getExternVariable to Shader:getUniformVariable. The "extern" alias for shader uniforms is considered deprecated, although it still exists.
--HG--
branch : minor
2016-09-01 18:15:25 -03:00
Alex Szpakowski dd2a448099 The vsync field in t.window and love.window.setMode is now an integer.
0 disables vsync, 1 sets it to sync every screen refreshes, 2 sets it to sync every 2 screen refreshes (effectively setting the framerate to half the monitor's refresh rate), etc.

As a special case, -1 also attempts to use adaptive vsync (vsync enabled when FPS is >= monitor's refresh rate, disabled whe not) if the driver supports it.

--HG--
branch : minor
2016-08-29 22:52:15 -03:00
Alex Szpakowski ef61573cd3 Merge default into minor
--HG--
branch : minor
2016-08-29 22:41:24 -03:00
Alex Szpakowski d572c70883 Fix a GL error on OpenGL ES 3 when using multiple render targets. 2016-08-29 18:48:53 -03:00
Alex Szpakowski 677a8d60b8 Use love::Vector (8 bytes) instead of love::Vertex (20 bytes) for love.math.triangulate and love.math.isConvex. 2016-08-24 18:02:27 -03:00
Alex Szpakowski acde58d311 Improved the error message when nil is passed as the first argument to love.image.newImageData (resolves issue #1205). 2016-08-21 11:22:21 -03:00
Alex Szpakowski daf13de4eb Removed the no-argument variant of Text:set() in favour of Text:clear(). Resolves issue #1126.
--HG--
branch : minor
2016-08-20 09:17:14 -03:00
airstruck 154f7cbc7e Support reference angle on revolute, prismatic, and weld joints (fixes #1194) 2016-08-19 14:36:36 +02:00
Bart van Strien 9998e761a4 Do not error in newVideo when optionally loading audio with love.audio disabled (fixes #1206) 2016-08-15 17:12:36 +02:00
Alex Szpakowski 22056271ec love.graphics.circle/ellipse/arc/rectangle now take transformation scale into account when determining the number of segments to use. Resolves issue #1184.
--HG--
branch : minor
2016-08-13 12:43:52 -03:00
Alex Szpakowski e9ac008f43 Merge default into minor
--HG--
branch : minor
2016-08-13 12:41:14 -03:00
Alex Szpakowski 3e678fc462 Fix SpriteBatch:setBufferSize to keep old sprite data if it can fit (resolves issue #1204). 2016-08-12 23:44:16 -03:00
Bart van Strien 57e4ec78e3 Prevent attaching a MouseJoint to a kinematic body (fixes #1185)
It turns out, calling World:update() after attaching a MouseJoint to a
kinematic body causes an exception. Normally the wrapper catches the exception,
but somehow this exception cannot be caught. Wonderful.
2016-08-02 14:26:51 +02:00
Bart van Strien 0ce44e465d Catch possible Box2D exception in Fixture:getBoundingBox() (fixes #1196) 2016-08-02 13:07:05 +02:00
Alex Szpakowski fc2c79ad5f Add EdgeShape:set/getNext/PreviousVertex. ChainShape:setNext/PreviousVertex can now take no arguments to disable ghost vertices.
Resolves issue #1191.
2016-08-01 10:15:34 -03:00
Alex Szpakowski 3157e5df7b Added ChainShape:getNext/PreviousVertex (see issue #1191). Thanks airstruck! 2016-07-31 14:25:12 -03:00
Alex Szpakowski 55cb2fad84 Fixture:setCategory and Fixture:setMask now accept a table of categories/masks (resolves issue #1178). 2016-07-31 11:51:53 -03:00
Alex Szpakowski 0a534d4751 Fixed ChainShape:setPreviousVertex. 2016-07-28 18:08:27 -03:00
Leonardo Etcheverry a11c7278c8 Fix FT_Get_Kerning using char codes instead of glyph indices. 2016-07-20 21:52:56 -03:00
Alex Szpakowski 8ea1edbc2a Cause a Lua error instead of silently failing if a vertex buffer memory allocation fails. 2016-07-17 17:44:38 -03:00
Bart van Strien 877ebbf9c9 Make WheelJoint/PrismaticJoint:getAxis return a world vector (refs #1176) 2016-07-15 12:20:58 +02:00
Bart van Strien 803cdccc1f Add love.window.updateMode (resolves #1037)
--HG--
branch : minor
2016-07-14 18:43:30 +02:00
Bart van Strien 990839383f Merge default into minor
--HG--
branch : minor
2016-07-14 18:42:42 +02:00
Bart van Strien 65f53a491f Make MouseJoint:getBodies() return only one body (fixes #1179)
Override Joint's Body getters in MouseJoint, to make the second (user-supplied) body the first body returned, and return nil for the second (internal) body
2016-07-14 16:39:29 +02:00
Bart van Strien 7266fa4fc5 Fix memory leak in Text:set (fixes #1181) 2016-07-14 14:22:38 +02:00
airstruck 9a2f99dc3d Added 2-point version of love.physics.newRevoluteJoint (fixes #1175) 2016-07-07 21:18:35 +02:00
airstruck 24da8433d0 Expose axis vector of PrismaticJoint and WheelJoint (fixes #1176) 2016-07-07 21:13:49 +02:00
Bart van Strien 516c0cc21d Merge default into minor
--HG--
branch : minor
2016-06-21 16:07:32 +02:00
Bart van Strien debea1192b Fixed large burst of particles when dramatically increasing the emission rate of a ParticleSystem. (fixes #1169) 2016-06-21 15:48:49 +02:00
Bart van Strien b328049517 Fix print coloring bug with empty strings (fixes #1171) 2016-06-11 19:51:51 +02:00
Alex Szpakowski 57b70e2a7b The format of the ImageData returned by Canvas:newImageData now matches the Canvas' format as best as possible.
--HG--
branch : minor
2016-05-23 13:21:44 -03:00
Alex Szpakowski d50cf0ac4a Prevent linear filtering on RGBA32F images when the system doesn't support it.
--HG--
branch : minor
2016-05-22 15:59:09 -03:00
Alex Szpakowski e71f95595c ImageData (and Images loaded from them) now support different data formats. Resolves issue #1048.
Currently exposed formats are rgba8 and rgba16 (normalized), and rgba16f and rgba32f (floating-point). Some systems, especially mobile ones, won't support every format when creating a love.graphics Image. Use love.graphics.getRawImageFormats to check for support.

love.image.newImageData now takes an optional format parameter as its third argument when creating an empty sized ImageData. It defaults to rgba8.

16-bit PNGs, .hdr images, and floating-point OpenEXR images can now be loaded via love.image.newImageData and love.graphics.newImage.

--HG--
branch : minor
2016-05-22 15:28:20 -03:00
Alex Szpakowski 3e6d01748e Merged default into minor
--HG--
branch : minor
2016-05-22 15:11:15 -03:00
Alex Szpakowski 9900051647 Improved performance of ImageData:mapPixel when JIT compilation is unavailable (e.g. on iOS and Android) 2016-05-21 22:18:12 +00:00
Alex Szpakowski 4666d83beb Fixed ImageData:mapPixel again, for non-JIT platforms this time.
--HG--
branch : minor
2016-05-21 15:24:11 -03:00
Alex Szpakowski 963b4c4447 Fixed ImageData:mapPixel's color component arguments to the mapping function to be within [0, 1] instead of [0, 255].
--HG--
branch : minor
2016-05-21 14:46:17 -03:00
Alex Szpakowski 8b920ba816 Improved the numeric distribution of love.math.random.
--HG--
branch : minor
2016-05-15 10:25:08 -03:00
Alex Szpakowski 31b44797bc Merge default into minor
--HG--
branch : minor
2016-05-12 18:20:01 -03:00
Alex Szpakowski d6310ca87f Fixed glyphs being added to partially out-of-bounds positions in Font texture atlases in rare cases (resolves issue #1162). 2016-05-11 21:38:12 -03:00
Alex Szpakowski d28bc1f42e Fixed a warning about a missing newline at the end of a file. 2016-05-01 21:04:01 -03:00