Commit Graph

474 Commits

Author SHA1 Message Date
Alex Szpakowski e8c6a3f77c Slightly improved error messages when love.graphics.newShader fails 2013-03-16 12:49:46 -03:00
Alex Szpakowski d39cfbb4fa Really fixed love.graphics.rectangle 2013-03-13 22:12:35 -03:00
Alex Szpakowski 7229dcae9f Fixed love.graphics.rectangle 2013-03-13 22:03:42 -03:00
vrld 1a407a6af3 Make non-gcc compilers happy... 2013-03-13 23:09:25 +01:00
vrld ece4ff6472 Make love.math a singleton. Remove code duplication. Add love.math.triangulate.
love::math::Math is now a singleton, so other modules can use it via
love::math::Math::instance.


Removed duplicate implementations of various rng helper functions.
ParticleSystem now uses love::math::Math's RNG.


New function: love.math.triangulate(vertices)

Accepts a table or list of x/y coordinate pairs and returns a table of tables.
The inner tables are the triangles the polygon is composed of.

Works on all *simple* polygons, i.e. a closed chain of vertices that does not
intersect itself. Attempting to triangulate non-simple polygons is undefined
behavior - in the best case it throws an error, in the worst case it returns
an invalid triangulation.

Polygons must be ordered in *clockwise order* with respect to the love
coordinate system. Attempting to triangulate a ccw polygon will throw an
error.

Examples:

  triangles = love.math.triangulate(0,0, 1,1, 2,0, 2,2, 0,2)
  triangles == {
      {1,1, 2,0, 2,2},
      {1,1, 2,2, 0,2},
      {1,1, 0,2, 0,0},
  }

  triangles = love.math.triangulate({0,0, 1,1, 2,0, 2,2, 0,2})
  -- same as above

  triangles = love.math.triangulate(0,2, 2,2, 2,0, 1,1, 0,0)
  -- error - polygons is in counterclockwise order

  triangles = love.math.triangulate(0,0, 1,3, 2,0, 2,2, 0,2)
  -- undefined behavior - polygon intersects itself (because of edge 1,3)
2013-03-13 20:48:39 +01:00
Alex Szpakowski d383434edf ParticleSystem:setColors now accepts multiple color arrays (issue #440) 2013-03-13 14:38:58 -03:00
Alex Szpakowski b8ec6633ab Fixed love.graphics.printf wrapping when the wrap limit is the same as the text width (issue #558) 2013-03-13 00:08:09 -03:00
Alex Szpakowski 1172d5b836 love.graphics.newScreenshot now uses the size of the current canvas (if applicable), instead of adding transparency or clipping to match the screen size 2013-03-12 20:52:24 -03:00
Alex Szpakowski d39bb315af love.graphics.newScreenshot replaces alpha with full opacity by default (issue #374, thanks Boolsheet)
Some additional overhead was added to newScreenshot because it doesn't use glPixelTransfer (not supported in ES2 / core GL3+, and like all GL functions has the slight potential to be buggy on some drivers). This choice might be revisited in the future.
2013-03-12 20:48:40 -03:00
Alex Szpakowski 94f140454f More Quad code cleanup 2013-03-11 22:46:25 -03:00
Alex Szpakowski 17bcab4f32 Added love.graphics.getDimensions and Image/Canvas/ImageData:getDimensions (issue #566) 2013-03-11 19:03:37 -03:00
Alex Szpakowski 4704c4e19e Cleaned up some ParticleSystem and Quad code 2013-03-11 17:56:55 -03:00
Alex Szpakowski 6a83eba5f2 Merged love-experiments/particlesystem-quads into default 2013-03-11 01:53:49 -03:00
Alex Szpakowski 318f335c7c ParticleSystem:setQuads can now accept a table argument, cleaned up the ParticleSystem quad code
--HG--
branch : particlesystem-quads
2013-03-11 01:44:43 -03:00
Bart van Strien 7efe11b11f Add centered flag to setMode, optionally centers the window (on by default, as before) (issue #463) 2013-03-10 23:00:31 +01:00
Alex Szpakowski d30809ebff Added ParticleSystem:setQuads(q1, q2, ...), quads are chosen based on current particle lifetime in a similar style to ParticleSystem:setColors
--HG--
branch : particlesystem-quads
2013-03-10 03:40:25 -03:00
Alex Szpakowski 738f471978 Fixed shader creation 2013-03-07 17:47:40 -04:00
Alex Szpakowski 65a3206ae4 Fixed another case of issue #538 (check for non power of two support does not cover all possibilities) 2013-03-04 14:02:35 -04:00
Alex Szpakowski 2d7dd87eb5 Removed PixelEffect compatibility functions (love.graphics.newPixelEffect is now love.graphics.newShader, etc)
Also removed love.graphics.isSupported("pixeleffect") in favor of love.graphics.isSupported("shader")
2013-03-04 14:01:04 -04:00
Alex Szpakowski 524368331d Removed love.graphics.setColorMode
- The "replace" color mode can easily be duplicated with love.graphics.setColor(255, 255, 255)
- The current color mode has no effect when a shader is active
- Color mode functionality can easily be replicated with shaders
- OpenGL ES 2 (iOS, Android, etc) does not have the functions used by love.graphics.setColorMode
2013-03-04 13:58:14 -04:00
Alex Szpakowski 4ae126ac44 Fixed some potential instability or crash issues 2013-03-03 20:23:40 -04:00
Alex Szpakowski f0ca4f6c97 Removed internal code for love.graphics.triangle and love.graphics.quad 2013-03-03 18:49:56 -04:00
Bart van Strien 3d0c5761ce Merge in default, update changelog
--HG--
branch : minor
2013-03-03 19:51:04 +01:00
Alex Szpakowski d3cdb7d609 Added SpriteBatch:isEmpty() and SpriteBatch:isFull() 2013-03-01 17:32:38 -04:00
Alex Szpakowski 395a1dbced The "alpha" blend mode now outputs more useful/intuitive alpha values (thanks Boolsheet)
See https://love2d.org/forums/viewtopic.php?f=4&t=16223 and http://www.opengl.org/discussion_boards/showthread.php/167554-FBO-and-blending
2013-02-26 21:44:01 -04:00
Alex Szpakowski 86ced3c70e Simplified the error message on image creation failure 2013-02-24 15:02:56 -04:00
Alex Szpakowski 1d34dda48b Removed SpriteBatch:remove(id) (reverted commit 2ca82dd)
The implementation had issues with sprite draw order when SpriteBatch:add used indices in the vertex buffer previously freed with SpriteBatch:remove
2013-02-24 09:47:03 -04:00
Alex Szpakowski 7d579308dc LÖVE now errors when Image creation fails 2013-02-24 00:50:39 -04:00
Alex Szpakowski 472915a4bb Worked around ATI/AMD driver bugs when creating mipmaps for Images 2013-02-23 15:52:03 -04:00
Alex Szpakowski d9736ab3ab Removed mipmap support from Font graphics objects 2013-02-19 14:21:01 -04:00
Alex Szpakowski 5bf78f891d Fixed OpenGL vertex buffer function usage (issue #489.)
The functions will be assigned to their core version counterparts if the extension version isn't supported but the core version is.
2013-02-19 03:17:05 -04:00
Alex Szpakowski 23968d3b4a Fixed image mipmap creation on some systems with buggy video drivers 2013-02-17 11:36:17 -04:00
Alex Szpakowski 8c21c4dce0 Fixed love.graphics.getBlendMode on systems which don't support the subtractive blend mode 2013-02-17 00:19:46 -04:00
Alex Szpakowski a68bdfe7a2 Constified many Graphics and Window methods 2013-02-16 01:45:01 -04:00
Alex Szpakowski eba8cbc0b5 Removed internal code support for multitexturing without shaders, since it's not currently used and there are no plans to do so 2013-02-16 01:04:00 -04:00
Alex Szpakowski 1945b7975d Cleaned up exception handling code when creating new fonts, spritebatches, and shaders 2013-02-14 21:49:11 -04:00
Alex Szpakowski e1779897ab Removed love.graphics.drawTest 2013-02-14 08:03:55 -04:00
Alex Szpakowski 77ab120424 Fixed SpriteBatch file includes 2013-02-11 20:27:29 -04:00
Alex Szpakowski ceb0ee6c7e Added SpriteBatch:remove(id) 2013-02-11 18:27:57 -04:00
Alex Szpakowski 96161c66f6 Updated copyright text for the new year 2013-02-05 05:32:49 -04:00
Alex Szpakowski e16b5afa6d Fixed love.graphics.getPointStyle 2013-02-01 01:44:00 -04:00
Alex Szpakowski a76ffd5715 Fixed VertexIndex::getElementSize 2013-01-30 19:01:14 -04:00
Alex Szpakowski de959b7275 Added a method to VertexIndex to determine the size in bytes of an element in the index array 2013-01-30 17:50:32 -04:00
Alex Szpakowski a9211a1389 Removed direct OpenGL calls in the SDL Window module 2013-01-30 00:27:46 -04:00
Alex Szpakowski 7a16e4cb49 Made Visual Studio play nice with the C++ STL min/max functions in the new shader code 2013-01-29 13:01:34 -04:00
Alex Szpakowski 7384bf15d3 Merged rude/love into default 2013-01-29 11:25:38 -04:00
Alex Szpakowski 02d2a872ab Improved shader member variable names, fixed up XCode project file 2013-01-29 04:34:36 -04:00
Bart van Strien 0fd4b147a4 Merge in default
--HG--
branch : minor
2013-01-27 19:15:55 +01:00
Alex Szpakowski 5cae5ea37e Removed code for tesselation and geometry shader detection 2013-01-24 18:26:40 -04:00
Alex Szpakowski 022f549554 Use unsigned ints instead of unsigned shorts to represent UTF8 font glyphs 2013-01-22 23:43:35 -04:00