Commit Graph

701 Commits

Author SHA1 Message Date
Alex Szpakowski 9e746c56fa love.graphics.getBlendMode no longer does several glGetInteger function calls 2014-01-30 21:51:17 -04:00
Alex Szpakowski 40242689b1 Fixed rendering to multiple canvases, removed some redundant OpenGL calls when switching between canvases 2014-01-30 21:09:13 -04:00
Alex Szpakowski 2a4d47e614 Added a missing newline to a print statement 2014-01-29 23:10:57 -04:00
Alex Szpakowski a7ed581204 Reverted ParticleSystem:setPosition’s functionality to 0.9.0’s beheaviour, added ParticleSystem:moveTo which has the new behaviour (new particles spawn in a line between the old position and where the emitter was moved to.) 2014-01-28 03:20:08 -04:00
Alex Szpakowski 6b538b5827 The emission rate for ParticleSystems is no longer restricted to integer numbers. 2014-01-27 23:42:26 -04:00
Alex Szpakowski d70023e350 Enable OpenGL’s debug output when the LOVE_GRAPHICS_DEBUG environment variable is ‘1’. Resolves issue #607. 2014-01-27 23:30:16 -04:00
Alex Szpakowski c5c788e976 Added a built-in variable readable in shaders: ‘love_ScreenSize’. Its x and y components contain the width and height of the current viewport. Resolves issue #841. 2014-01-27 02:58:34 -04:00
Alex Szpakowski 988404e4ca Added love.graphics.getSystemLimit (resolves issue #840). Deprecated love.graphics.getMaxPointSize.
love.graphics.getSystemLimit currently accepts these enum strings: “pointsize”, “texturesize”, “multicanvas”, and “canvasfsaa”.
2014-01-27 02:19:30 -04:00
Alex Szpakowski 7556fde5e6 Added antialiasing (MSAA) support to Canvases via a new optional parameter. Added Canvas:getFSAA. 2014-01-27 01:31:41 -04:00
Alex Szpakowski ba7e69d776 Added Mesh:setDrawRange(min, max) and Mesh:getDrawRange().
If no vertex map is set, this restricts the drawn vertices to those whose indices in the vertex array are between [min, max] inclusive.
If a vertex map is set, this restricts the values used in the vertex map to those whose indices in the vertex map array are between [min, max] inclusive.

Added Mesh constructor variant: love.graphics.newMesh(vertexcount, texture, drawmode). Creates a Mesh with a certain number of vertices with x,y,u,v,r,g,b,a values of (0,0,0,0,255,255,255,255).
2014-01-21 06:16:47 -04:00
Alex Szpakowski 73f1ce0d40 Added instancing support to Meshes via Mesh:setInstanceCount. Added a new built-in variable to vertex shaders: int love_InstanceID.
love.graphics.draw(mesh) will draw the mesh instancecount times, using hardware instancing when available. The only way to draw individual instances differently from each other is to use the love_InstanceID variable in a vertex shader.

Added love.graphics.isSupported(“instancing”). Hardware instancing is supported if true, otherwise a (slower) pseudo-instancing fallback is used internally when drawing instanced meshes.
2014-01-21 06:01:50 -04:00
Alex Szpakowski 0e13975c11 Improved some error message text 2014-01-17 22:28:06 -04:00
Alex Szpakowski 29f47d9a10 Changed particle spawning behaviour in ParticleSystems to spawn at an interpolated position between the location at the previous update and the current one. This results in much smoother behaviour when moving a ParticleSystem constantly via ParticleSystem:setPosition.
Also fixed particle spawning to better fill up the buffer.
2014-01-16 16:20:30 -04:00
Alex Szpakowski dc35db1c7b Fixed tab characters (‘\t’) in text to be drawn properly with love.graphics.print. 2014-01-15 23:38:39 -04:00
Alex Szpakowski 9b9671f5ee Fixed a potential memory leak when a Font object errors 2014-01-15 23:03:39 -04:00
Alex Szpakowski 7f77c2d0b3 Canvas:renderTo now restores the previously active Canvas when done, instead of erroring if another Canvas is already active 2014-01-15 14:56:28 -04:00
Alex Szpakowski 113093e4fc Separated canvas texture creation code from FBO creation code 2014-01-13 01:47:06 -04:00
Alex Szpakowski fda005c5ff love.graphics.getScissor now has a proper C++ module method 2014-01-09 22:49:00 -04:00
Alex Szpakowski c64b3d2527 Renamed love.graphics.getMaxImageSize to love.graphics.getMaxTextureSize (old function is still there, but deprecated.) 2014-01-09 22:18:37 -04:00
Alex Szpakowski 1d3c4e125e Make love.graphics.reset call love.graphics.origin instead of clearing the internal pixel size stack 2014-01-05 15:52:12 -04:00
Alex Szpakowski 510ed6f11e Abstracted lua bindings for general Texture methods into wrap_Texture.cpp 2014-01-04 21:19:03 -04:00
Alex Szpakowski 3120a0e650 Goodbye 2013, hello 2014! 2014-01-03 17:28:58 -04:00
Alex Szpakowski aa69a695d3 Canvases can now be used in SpriteBatches, ParticleSystems, and Meshes (resolves issue #782).
Canvases and Images are now subclasses of the new Texture class.
Added setTexture and getTexture methods for Meshes, ParticleSystems, and SpriteBatches (the old set/getImage methods are deprecated but not removed.)
Canvas texture coordinates are no longer flipped.
2014-01-03 17:07:12 -04:00
Alex Szpakowski ab1cf7fdc5 Really fixed setting the scissor and then changing Canvases 2013-12-31 23:37:04 -04:00
Alex Szpakowski 98b258b75f Fixed font textures in OpenGL returning black RGB values when a shader is active (reverts changeset 69b0b4e) 2013-12-31 22:09:04 -04:00
Alex Szpakowski f3bd944cf5 Reduced the RAM and VRAM space taken up by TrueType font glyphs by 1/2. 2013-12-31 20:15:55 -04:00
Alex Szpakowski a00c006c44 The graphics viewport is now properly restored when switching from an active Canvas to no Canvas (resolves issue #817) 2013-12-30 23:52:46 -04:00
Alex Szpakowski cd303c7c62 Added Mesh:setWireframe and Mesh:isWireframe.
This should *only* be used for debugging: the wireframe lines behave differently from regular love.graphics lines, and the functionality may not work on OpenGL ES.
2013-12-30 01:44:04 -04:00
Alex Szpakowski 27f36455e8 Fixed ParticleSystem:clone not duplicating position and area spread properly 2013-12-28 01:51:50 -04:00
Bart van Strien 90d041ed1b Patch GLee for missing GLXContextID typedef after upstream (mesa) removal from header 2013-12-27 16:50:07 +01:00
Alex Szpakowski bccac13432 Added ParticleSystem:clone() 2013-12-25 05:30:07 -04:00
Alex Szpakowski d0d629a314 Fixed line width after love.graphics.scale with negative numbers (resolves issue #808) 2013-12-18 03:15:44 -04:00
Alex Szpakowski 2ee869b0e8 Fixed some compiler warnings 2013-12-07 05:07:54 -04:00
Alex Szpakowski c83e3c33c5 Fixed building as a universal binary on OS X (resolves issue #793) 2013-11-20 17:55:30 -04:00
Alex Szpakowski 006f4dd600 Fixed 2013-11-17 05:47:38 -04:00
Alex Szpakowski c0b28f9d07 Only apply an AMD-specific hack when generating mipmaps on AMD GPUs 2013-11-17 05:44:09 -04:00
Alex Szpakowski 0214bab0fe Reduced initialization time of the graphics module in OS X by ~80ms 2013-11-15 15:41:15 -04:00
Alex Szpakowski c8f5494900 Images, Canvases, Quads, and Fonts now have the same vertex winding order 2013-11-10 19:57:13 -04:00
Alex Szpakowski c1b4f31578 Fixed detection for shader support 2013-11-06 01:50:54 -04:00
Alex Szpakowski 83d3eae1e7 Fixed error messages in Shader:send and love.math.newRandomGenerator to include the line number 2013-11-04 15:03:45 -04:00
vrld 3b04eeeec8 Fix #756: Sending an Image to a shader does not retain it
Each shader contains a map of uniform name -> bound retainable Object. After
setting the uniform, sendImage() and sendCanvas() release() the Object with
the requested name (if present) and record the new Image/Canvas.

Related bugfix: Shader::attach() calls retain()/release() on the shader.
2013-11-03 18:27:36 +01:00
Alex Szpakowski 4e321697d3 Renamed Font:hasGlyph to Font:hasGlyphs, and expanded it to accept multiple arguments and full strings. Resolves issue #762. 2013-10-25 21:56:32 -03:00
Alex Szpakowski 4e1c73c1f2 Removed Quad:flip (resolves issue #770) 2013-10-24 17:46:21 -03:00
Alex Szpakowski 206a1abd81 Added Mesh:getVertices (resolves issue #771) 2013-10-23 21:23:24 -03:00
Alex Szpakowski faf483d156 Fixed error message when an invalid vertex index is given to Mesh:setVertex, Mesh:getVertex, and Mesh:setVertexMap (resolves issue #772) 2013-10-23 13:52:04 -03:00
Alex Szpakowski cfd030d4ab Fixed building on Mac OS 10.9 2013-10-23 06:53:52 -03:00
rude 27de844472 Include <algorithm> when std::min/max is used.
It won't build in Visual Studio 2013 unless we do this.
2013-10-23 00:09:12 +02:00
Alex Szpakowski d9da19d665 Error for misspelled / invalid window attributes in love.window.setMode (resolves issue #736) 2013-10-20 13:17:57 -03:00
Alex Szpakowski b556dde3cb love.graphics.draw(image, quad, x, y, ...) now errors instead of shifting parameters if the quad argument is nil 2013-10-14 03:38:07 -03:00
Alex Szpakowski 43b3629e01 Improved performance of Image:refresh 2013-10-13 16:31:29 -03:00