Alex Szpakowski
8cad9c8bf0
Only allow multiply blending when the 'premultiplied' blend alpha mode is used, since the formula only works with that anyway.
...
--HG--
branch : minor
2016-04-02 18:28:16 -03:00
Alex Szpakowski
1eed86426b
Merge default into minor
...
--HG--
branch : minor
2016-04-02 18:27:33 -03:00
Alex Szpakowski
901cc362df
Added 'shaderswitches' to love.graphics.getStats.
2016-04-02 18:14:52 -03:00
Bart van Strien
db8e7a7670
Merge default into minor
...
--HG--
branch : minor
2016-04-02 17:19:20 +02:00
Alex Szpakowski
175c3af10b
Updated stb_image to 2.12.
2016-04-02 12:02:39 -03:00
Alex Szpakowski
cc1b9bc619
Moved most love.math functions out of the Math class, since they're pure functions.
...
--HG--
branch : minor
2016-03-28 19:46:29 -03:00
Alex Szpakowski
3d25416e14
Removed an unused variable.
2016-03-27 11:28:34 -03:00
Alex Szpakowski
aa88383793
Fixed per-vertex colors (e.g. spritebatch colors) improperly applying gamma correction when the default shader is used and gamma correction is requested but not supported on OpenGL ES.
2016-03-26 12:01:34 -03:00
Alex Szpakowski
829cf5fd06
Fixed ImageFonts and BMFonts with colored bitmap images to proper sRGB conversions when gamma correction is enabled.
2016-03-25 20:13:49 -03:00
Alex Szpakowski
9efbe4892c
Merge default into minor.
...
--HG--
branch : minor
2016-03-22 20:53:09 -03:00
Alex Szpakowski
090c50795a
Fix love.window.setMode crashing if a Canvas is active.
2016-03-22 18:05:26 -03:00
Alex Szpakowski
8b07bad15e
Fixed the build.
2016-03-20 22:36:54 -03:00
Alex Szpakowski
9ebd759851
Don't call glGetFloat every time love.graphics.getSystemLimits is called.
2016-03-20 22:00:24 -03:00
Bart van Strien
6533665f15
Ignore carriage returns (\r) in print and friends (issue #1114 )
...
--HG--
branch : minor
2016-03-14 14:40:10 +01:00
Bart van Strien
dc7b1fb049
Remove the default source type ( resolves #1082 )
...
--HG--
branch : minor
2016-03-08 11:44:36 +01:00
Alex Szpakowski
d4e701b434
SpriteBatch:add will now automatically increase the maximum size of the SpriteBatch if there's no more room.
...
--HG--
branch : minor
2016-03-05 12:59:00 -04:00
Alex Szpakowski
2e5f385be3
Merge default into minor
...
--HG--
branch : minor
2016-03-03 21:28:30 -04:00
Alex Szpakowski
7370bd56ce
Improved the error message when love.graphics.newImage fails due to CompressedImageData not having all required mipmap levels (thanks Shell32!)
2016-03-03 20:36:30 -04:00
Alex Szpakowski
f51bbb8462
Cleaned up some StrongRef-related code.
2016-03-01 18:57:17 -04:00
Bart van Strien
977ffd1154
Merge in default
...
--HG--
branch : minor
2016-02-26 14:52:02 +01:00
Alex Szpakowski
4ca6106d7a
Cleaned up Canvas::checkCreateStencil a bit.
2016-02-24 18:36:34 -04:00
Adam M
62b642f28a
Support combined depth/stencil buffers when using vendor extensions.
2016-02-24 19:42:22 +00:00
Alex Szpakowski
ff91fa1327
Improved Shader:send performance by removing some temporary memory allocations.
2016-02-20 19:24:33 -04:00
Alex Szpakowski
cf4b409302
Renamed some things.
2016-02-18 22:11:41 -04:00
Alex Szpakowski
1be2e34c92
Merged default into minor.
...
--HG--
branch : minor
2016-02-14 19:59:34 -04:00
Alex Szpakowski
f7ee949af8
Fixed love.graphics.clear(colortable) causing crashes in GLES 2.0 when a Canvas is active (resolves issue #1127 ).
2016-02-14 00:26:02 -04:00
Alex Szpakowski
7c4edf2efc
love.graphics object creation functions (love.graphics.new*) now cause an error instead of hard-crashing, if called when the window has not been created yet.
2016-02-11 22:34:33 -04:00
Alex Szpakowski
ed933847f8
Color values in love's APIs are now in the range of [0, 1] rather than [0, 255].
...
--HG--
branch : minor
2016-01-31 10:49:29 -04:00
Alex Szpakowski
7299a237fb
Added Text:getDimensions
2016-01-16 12:51:31 -04:00
Alex Szpakowski
abd3c64bc5
Moved another AMD-specific driver bug workaround to the OpenGL Bugs struct.
2016-01-13 21:43:00 -04:00
Alex Szpakowski
314a82b126
Fixed the piecewise function in linearToGamma to use <= instead of < when determining whether to use the linear part of the function.
2016-01-13 21:23:56 -04:00
Alex Szpakowski
a95235ffa1
Typo fixes in a comment
2016-01-10 20:13:06 -04:00
Alex Szpakowski
8a59743481
Added comments to the Bugs struct in OpenGL.h detailing some driver bugs that have workarounds that don't need conditional codepaths.
2016-01-10 16:12:51 -04:00
Alex Szpakowski
6d6d805858
Workaround for love.graphics.clear + love.graphics.setCanvas AMD driver bug, take two.
2016-01-09 23:40:04 -04:00
Alex Szpakowski
4f093e7fac
Added a workaround for an AMD driver bug where setCanvas + clear + setCanvas doesn't work.
2016-01-09 17:14:05 -04:00
Alex Szpakowski
46a2e7b85c
Happy new year! 🎉
2016-01-01 00:05:06 -04:00
Alex Szpakowski
b48117544d
Added "lighten" and "darken" blend modes (resolves issue #443 ).
...
They perform the equations res.rgba = max(dst.rgba, src.rgba) and res.rgba = min(dst.rgba, src.rgba) respectively.
They only work when the "premultiplied" blend alpha mode is used, and an error occurs otherwise. They also aren't supported on some non-iOS OpenGL ES 2 systems. Check for support with love.graphics.getSupported().lighten.
2015-12-31 15:54:02 -04:00
Alex Szpakowski
5a98af7e2d
ASTC has guaranteed support when OpenGL ES 3.2 is used.
2015-12-31 15:48:05 -04:00
Alex Szpakowski
a42341aa73
Added a new variant of love.graphics.arc: arc(drawmode, arcmode, x, y, radius, angle1, angle2 [, points]).
...
arcmode is "open", "closed", or "pie" (with pie being the mode used for the original variant of the function).
2015-12-31 00:13:01 -04:00
Alex Szpakowski
ef94e43af1
Fixed Shader:sendColor incorrectly converting alpha from sRGB to linear RGB when gamma-correct rendering is enabled.
2015-12-29 01:30:45 -04:00
Alex Szpakowski
1ad5a768f6
Fixed love.graphics.newMesh(vertices) double-converting colors from sRGB to linear RGB, when gamma-correct rendering is enabled.
2015-12-29 01:11:05 -04:00
Alex Szpakowski
09e6a9a434
When multiple canvases are active at once (MRT), individual canvases can now be selectively cleared with love.graphics.clear(c1, c2, ...) by passing empty tables for the canvases that shouldn't be cleared, and color tables for the canvases that should.
2015-12-29 00:10:40 -04:00
Alex Szpakowski
67fe29b30e
More accurate comment.
2015-12-24 17:33:50 -05:00
Alex Szpakowski
c751e4881a
Possibly fixed everything showing up as black on some Android devices.
2015-12-24 17:09:30 -05:00
Alex Szpakowski
538f3869c5
Don't query the current texture bindings when initializing OpenGL.
2015-12-24 15:53:50 -05:00
Alex Szpakowski
2ad1712eaf
Font:getWrap can now accept a colored text table in the same format as what's accepted by love.graphics.print. Resolves issue #1108 .
...
The returned table of strings still has no color information.
2015-12-20 19:25:09 -05:00
Alex Szpakowski
48345bd58c
Changed the optional 'multiply alpha' boolean argument in love.graphics.setBlendMode to be an enum with constants 'alphamultiply' and 'premultiplied'.
...
The default value for the second argument of setBlendMode is 'alphamultiply'.
2015-12-16 14:53:16 -04:00
Alex Szpakowski
dad93959f9
Fixed a memory leak.
2015-12-15 21:51:47 -04:00
Alex Szpakowski
5460a5b872
Hopefully work around an nvidia graphics driver bug in OS X.
...
Some nvidia GPUs in OS X fail to render geometry that uses an OpenGL index buffer and client-side vertex arrays. This affected ParticleSystems and love.graphics.print. The code for those has been changed to use a client-side index array instead of an OpenGL index buffer.
2015-12-15 21:50:38 -04:00
Alex Szpakowski
0a059814e7
Revamped love.graphics.stencil and love.graphics.setStencilTest:
...
- Each canvas (and the screen) has an invisible stencil value associated with each pixel. Stencil values are between [0, 255].
- love.graphics.stencil takes a function argument which draws things, and makes the geometry of what's drawn set the stencil values of pixels instead of coloring the pixels.
- Its second argument is a 'stencil action' which determines what happens to the stencil values of pixels. The possible stencil actions are 'replace' (the default), 'invert', 'increment', 'decrement', 'incrementwrap', and 'decrementwrap'. If the stencil action is 'replace', the third argument of love.graphics.stencil is a number between [0, 255] which determines what the stencil value of each pixel that touches drawn objects is replaced with.
The fourth argument is a boolean which determines whether the previous stencil values of all pixels on-screen should be kept (true), or cleared to 0 (false, the default.) love.graphics.clear also clears the stencil values.
- love.graphics.setStencilTest allows for anything drawn to be affected by a comparison between the arguments to setStencilTest and the existing stencil value of the pixels that are touched by what's drawn. Its first argument is a compare mode which can be 'equal', 'notequal', 'less', 'lequal', 'gequal', or 'greater', and the second argument is an integer value (between 0 and 255) used in the comparison with the value in the stencil buffer.
For example, love.graphics.setStencilTest("greater", 0) will cause any geometry drawn afterwards to only appear on pixels whose stencil value is greater than 0.
2015-12-14 20:43:39 -04:00