Commit Graph

1954 Commits

Author SHA1 Message Date
Alex Szpakowski c73fb2ef98 Fixed stenciling inside a Canvas in OpenGL ES 2. 2015-12-13 23:50:23 -04:00
Alex Szpakowski 493d5d6911 Removed more dead video remote code. 2015-12-13 21:54:55 -04:00
Alex Szpakowski 9573b415a3 Whoops... 2015-12-13 21:45:59 -04:00
Alex Szpakowski 834bd149d5 Fixed Video:setSource(nil). 2015-12-13 21:45:25 -04:00
Alex Szpakowski 2d7a99a3ae Set the internal wrap mode for videos to clamp. Fixes video playback on some OpenGL ES devices. 2015-12-13 21:22:36 -04:00
Alex Szpakowski 7b8af113da Fixed the minimum window size to re-set itself when love.window.setFullscreen(false) is called. 2015-12-13 20:50:35 -04:00
Alex Szpakowski 925eebdaf0 Removed love.event.addListener/removeListener/clearListeners.
They take away too much control from the main game code, which makes it harder to implement things like gamestates without modifying library code.
2015-12-12 17:54:54 -04:00
Alex Szpakowski 9893f7ad51 Fixed an error message. 2015-12-12 14:23:47 -04:00
Alex Szpakowski e5c0c49751 Added love.event.clearListeners. 2015-12-12 14:19:37 -04:00
Alex Szpakowski de0b63a48d Re-added love.filesystem.exists.
If PhysFS 2.1-alpha is used and a directory is symlinked, isDirectory will return false (whereas it will return true when PhysFS 2.0 is used.) exists will return true in all cases.
2015-12-11 23:17:49 -04:00
Alex Szpakowski 3eb363059b Added love.event.addListener and removeListener.
addListener takes a function, and names of events that will trigger the function when they're processed inside love.event.poll or love.event.wait. When the given listener function is called, the name of the event as well as all of the event's arguments are passed to the function.

If addListener is called multiple times with the same function and events, it will not add the function more than once.

removeListener takes a function and removes it from all events it was previously added to.
2015-12-11 20:14:52 -04:00
Alex Szpakowski 77b832057d Fixed the Windows build... 2015-12-11 00:21:33 -04:00
Alex Szpakowski 7769090c1f Mesh:setVertices can now accept a Data object. 2015-12-11 00:07:42 -04:00
Alex Szpakowski 20fb7f44df Cleaned up the code for love.math.random and related functions. 2015-12-10 13:09:54 -04:00
Alex Szpakowski 52b1bd78f2 Implemented LuaJIT FFI versions of love.math.random and RandomGenerator:random. 2015-12-10 12:45:53 -04:00
Alex Szpakowski 7ee02e8d37 Fixed most PhysFS deprecated call warnings on iOS/Android. 2015-12-09 17:22:46 -04:00
Bart van Strien 22f2175bec Add initial video playback support for Ogg Theora videos (resolves issue #66.)
The basic APIs are:

video = love.graphics.newVideo("myvideo.ogv")

love.graphics.draw(video, ...) -- Video objects are Drawables.

video:play(), video:pause()

video:getDuration(), video:tell(), video:rewind(), video:seek(seconds)

video:getSource()

video:getWidth(), video:getHeight(), video:setFilter(min, mag)

More advanced APIs include video:setSource(source), video:getStream(), and videostream:setSync.

To use a custom pixel shader when drawing a Video, call the new TexelVideo(texcoords) function instead of Texel(texture, texcoords) in order to get the pixel colors of a video frame.
2015-12-08 22:41:19 -04:00
Alex Szpakowski a1dab12117 Fixed a bug in love.math.gammaToLinear/linearToGamma when a table with an alpha channel is passed in as an argument. 2015-12-08 21:43:32 -04:00
Alex Szpakowski 374d1ae0e1 Implemented LuaJIT FFI versions of love.math.noise, love.math.gammaToLinear, and love.math.linearToGamma.
The new versions of the functions are only used if LuaJIT's JIT compiler is enabled.

Those functions are often combined with ImageData:mapPixel or ImageData:setPixel, which also have LuaJIT FFI versions in 0.10.0 - so without JIT-able implementations of the math functions, the FFI code in the ImageData methods would not be JIT-compiled and would end up taking up to 10 times as long to execute compared to the non-FFI versions in 0.9.2.
2015-12-08 21:24:16 -04:00
Alex Szpakowski 004ffb8819 Fixed the build. 2015-12-07 23:14:27 -04:00
Alex Szpakowski e0dca60380 Cleaned up some code. 2015-12-07 23:01:52 -04:00
Alex Szpakowski 5bdd858487 Fixed compiler warnings when new versions of FreeType are used. 2015-11-30 23:36:17 -04:00
Alex Szpakowski 6036454a20 Fixed up some code. 2015-11-30 02:26:59 -04:00
Alex Szpakowski 4c82c96369 Added a new texture wrap mode "clampzero", which outputs transparent black (or opaque black for textures without an alpha channel) rather than the texture's edge colors, when it's drawn or sampled from outside of its regular texture coordinate range. 2015-11-30 02:22:20 -04:00
Alex Szpakowski 2c4e713114 Imported some of the dynamiccore branch from love-experiments:
- Type names for love's Lua objects are specified as an argument to luax_register_type, rather than being statically defined in an array.

- luax_register_type takes a variable number of method array arguments, for registering superclass methods without copying them into the subclass' method array.

Also removed most of the header declarations for wrapper functions.
2015-11-29 20:38:12 -04:00
Alex Szpakowski 77998c707d Added the ability to use ASTC compressed textures, when the system supports them. 2015-11-28 14:55:26 -04:00
Alex Szpakowski 7265f891de Improved support for non-PVRTC compressed texture formats in .pvr files. 2015-11-28 10:33:17 -04:00
Alex Szpakowski 890e8f1086 Simplified the code for love.graphics.arc. 2015-11-27 17:49:17 -04:00
Alex Szpakowski ebf6ca822c Added an optional 'startvertex' argument to Mesh:setVertices, which specifies a (1-based) offset within the Mesh's vertices to replace. 2015-11-26 23:04:04 -04:00
Alex Szpakowski 3c1c13793e Added SpriteBatch:attachAttribute(attributename, mesh), which lets SpriteBatches use per-vertex information from a vertex attribute in a Mesh when drawing.
Each sprite in a SpriteBatch has 4 vertices in the following order: top-left, bottom-left, top-right, bottom-right. The index returned by SpriteBatch:add (and used by SpriteBatch:set) can be multiplied by 4 to determine the first vertex in a specific sprite.
2015-11-26 21:24:29 -04:00
Alex Szpakowski ac99a47386 Moved most of the ParticleSystem code from modules/graphics/opengl/ to modules/graphics/ 2015-11-25 04:29:00 -04:00
Alex Szpakowski b0c19ef2c5 Renamed love.window.set/isScreenSaverEnabled to love.window.set/isDisplaySleepEnabled. 2015-11-24 22:35:57 -04:00
Alex Szpakowski 7ebef76b24 Added love.window.setScreenSaverEnabled and love.window.isScreenSaverEnabled (resolves issue #1088.) 2015-11-24 22:16:40 -04:00
Alex Szpakowski ec17811aa9 The 'dimension' field is no longer needed when passing matrices-as-flat-tables to Shader:sendMatrix. 2015-11-24 15:14:57 -04:00
Alex Szpakowski 75faf77d66 Improved the performance of Shader:send when matrices are used. 2015-11-24 14:25:52 -04:00
Alex Szpakowski aca369e5d4 Fixed memory leaks in love.physics. When a World is garbage-collected it now implicitly calls World:destroy, which also destroys all Bodies, Fixtures, and Joints that belong to it. 2015-11-17 01:27:48 -04:00
Alex Szpakowski a81621df82 Removed the 'multicanvas' GraphicsFeature constant since it's redundant (the love.graphics.getSystemLimits().multicanvas number can be used instead.) 2015-11-14 19:33:56 -04:00
Alex Szpakowski e9c75c342e Text:add and Text:addf now return index numbers which can be used as arguments to Text:getWidth and text:getHeight to determine the (pre-transformed) width and height of specific text within the Text object. 2015-11-14 18:51:43 -04:00
Alex Szpakowski 7043b5314d Added high-dpi / retina support to the no-game screen; additional minor tweaks and cleanup. 2015-11-11 19:35:45 -04:00
Alex Szpakowski 0558fcdbd4 Added Source:getDuration (thanks Boolsheet!)
For streaming sources, the duration may not always be sample-accurate and may return -1 if it cannot be determined at all.
2015-11-07 01:49:37 -04:00
Alex Szpakowski bb24c1b7a6 Mesh:getVertexMap now returns nil rather than an empty table, if no vertex map is set (resolves issue #1096.) 2015-11-02 19:37:18 -04:00
Alex Szpakowski 46daf9dd15 Simplified some code by removing an unnecessary/useless optimization. 2015-11-02 03:28:31 -04:00
Alex Szpakowski 389b91cf6f Added per-character color support to love.graphics.print/printf and Text objects. Resolves issue #865.
The aforementioned functions now optionally accept an array instead of a plain string. The array is in the format of: {{r, g, b [, a]}, "first colored text, ", {r, g, b [, a]}, "second colored text", ...}, where the color values specify the color to use in the next section of the text.
2015-11-01 23:17:46 -04:00
Alex Szpakowski 799e303673 More fixes for love.graphics.printf's text positioning. 2015-10-29 03:57:29 -03:00
Alex Szpakowski 396b0f0956 Mostly fixed the center and right wrap alignments for love.graphics.printf. 2015-10-29 00:44:00 -03:00
Alex Szpakowski 34b8e47831 Removed the internal rounding applied to the x and y parameters of love.graphics.print/printf. Resolves issue #1062. 2015-10-28 01:59:53 -03:00
Alex Szpakowski c03ce3a9ab love.math.random now uses a slight variant of Xorshift (Xorshift*). 2015-10-26 20:47:56 -03:00
Alex Szpakowski f92e6552d4 Rewrote Font:getWrap (and thus love.graphics.printf's logic) to behave better. Resolves issue #799.
It now wraps text at the specified wrap limit even when there are no spaces in a line, and has improved performance.
2015-10-24 02:28:22 -03:00
Alex Szpakowski 5fabd64aea Improved the error message when an unsupported file format is used with love.image.newImageData or love.graphics.newImage. 2015-10-19 15:54:53 -03:00
Alex Szpakowski 890802c0a3 Use a more descriptive error message if love.graphics.newImage fails because the OpenGL texture can't be created. 2015-10-15 14:42:57 -03:00