Commit Graph

44 Commits

Author SHA1 Message Date
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 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 c63e2ec624 Merged default into Mesh
--HG--
branch : Mesh
2013-09-29 04:58:26 -03:00
Alex Szpakowski 1e696c4505 Added Mesh objects and love.graphics.newMesh. Mesh objects are similar to Geometry but they're drawables (the relationship between meshes and images is the opposite of geometry and images.)
Removed Geometry objects and re-added Quads.

example:
local vertices = {{0, 0, 0, 0}, {100, 0, 1, 0}, {100, 100, 1, 1}, {0, 100, 0, 1}}
mesh = love.graphics.newMesh(vertices, image, "fan")
..
love.graphics.draw(mesh, 0, 0)

--HG--
branch : Mesh
2013-09-28 18:26:47 -03:00
Alex Szpakowski bcee9a222b Made some float/int/unsigned char conversions explicit, fixed ParticleSystem:getColors, fixed love.mouse.isDown with x1 and x2 buttons 2013-09-26 00:36:50 -03:00
Alex Szpakowski 06f80d5c08 Fixed undefined behaviour when love exceptions are converted into Lua errors (resolves issue #729) 2013-09-05 23:17:29 -03:00
Alex Szpakowski ec9dec6b80 Replaced luax_newtype with luax_pushtype (and added luax_rawnewtype for the old functionality of luax_newtype.)
luax_pushtype keeps the object in a weak table and checks the table before creating a new userdata, so it re-uses the object's existing wrapper userdata if it can, whenever the object is pushed to Lua.

This fixes some subtle issues with love objects, where using them as keys in tables would not always work as expected (https://love2d.org/forums/viewtopic.php?f=4&t=39398&p=112388#p112415). It also decreases the amount of new Lua objects created, saving the garbage collector some work.
2013-08-29 00:40:06 -03:00
Alex Szpakowski dfba650575 Fixed SpriteBatch:set with Geometry 2013-07-29 16:03:38 -03:00
Alex Szpakowski 7cf7f3a25f Merged love.graphics.drawg into love.graphics.draw, and SpriteBatch:addg/setg into SpriteBatch:add/set (resolves issue #639) 2013-07-17 18:34:57 -03:00
Alex Szpakowski 3fb78d5458 Added SpriteBatch:setBufferSize (issue #655) 2013-06-29 00:04:56 -03:00
Alex Szpakowski be33d17f89 Added SpriteBatch:getColor 2013-06-14 05:29:05 -03:00
Alex Szpakowski 0b71fa1483 Added SpriteBatch:getCount and SpriteBatch:getBufferSize, and removed SpriteBatch:isEmpty/isFull. 2013-05-22 18:44:40 -03:00
Alex Szpakowski 89265107ea Fixed SpriteBatch:addg/setg to error properly instead of crash when attempting to use a Geometry without exactly 4 vertices 2013-05-20 14:47:37 -03:00
Bart van Strien 167d3183b9 Rename SpriteBatch:setq to setg 2013-05-20 19:04:27 +02:00
vrld 71317c4359 Add Geometries (replaces Quads).
A Geometry is a collection of vertices describing a non self-intersecting
(simple) polygon. In addition to screen coordinates, the vertices have
attributes for texture coordinates (s,t) and color (r,g,b,a).

It can be used as a quad, to display distorted images, or anything in between.

Added:
^^^^^^

-- geometry from table, where table has the format:
-- info = {
-- {x,y, s,t, [r = 255, g = 255, b = 255, a = 255]}
-- {x,y, s,t, [r = 255, g = 255, b = 255, a = 255]}
-- ...
-- }
geom = love.graphics.newGeometry(info)

-- convenience wrapper for quads (same as before)
geom = love.graphics.newQuad(x,y, w,h, sw,sh)

-- retrieve vertex i (1-indexed)
x,y,s,t,r,g,b,a = geom:getVertex(i)

-- set vertex i (1-indexed)
geom:setVertex(i, x,y, s,t, [r,g,b,a])

-- flip geometry
geom:flip(x, y)


Renamed:
^^^^^^^^

love.graphics.drawq() -> love.graphics.drawg()


Removed:
^^^^^^^^

quad:setViewport()
quad:getViewport()
2013-04-21 18:53:13 +02:00
Alex Szpakowski d5aa807747 More internal code cleanup 2013-03-31 19:02:27 -03:00
Alex Szpakowski d3cdb7d609 Added SpriteBatch:isEmpty() and SpriteBatch:isFull() 2013-03-01 17:32:38 -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 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
Bart van Strien 94516e2290 Catch possible exceptions thrown when locking a SpriteBatch twice 2012-11-18 18:48:37 +01:00
Bart van Strien 85a1787ad8 Make SpriteBatch:setColor accept a table as well (issue #459) 2012-08-03 15:27:59 +02:00
Bart van Strien 7793e7f02f CRLF to LF 2012-07-04 14:40:24 +02:00
rude 81c38e22d0 Applied the new style guidelines.
Well, sort of. Lot's more to be done, but this is a start.
2012-06-28 23:52:33 +02:00
Bill Meltsner be55579a22 Happy New Year, have an enormous diff 2012-01-09 02:41:11 -06:00
Bart van Strien 1509403ca7 Add SpriteBatch:getImage (issue #321) 2012-01-08 13:46:01 +01:00
Bart van Strien c707a4ca45 Properly export all lua-facing functions and use those for initialization (love.cpp no longer explicitly mentions implementations) 2011-12-24 01:10:40 +01:00
Bart van Strien 0aae9684b3 Automated formatting fix 2011-11-16 11:32:41 +01:00
Bart van Strien dc66ea20c1 Add SpriteBatch:set(q) and make add(q) return the index 2011-10-20 20:19:01 +02:00
rude 387a8ab2dc Issue #262: Add per-sprite colors. 2011-07-23 17:12:29 +02:00
vrld d420d68048 Add shear transformation and transform object (issue #152).
Add origin parameters to love.graphics.print.

New shear parameters kx,ky for:
- love.graphics.draw,
- love.graphics.drawq,
- love.graphics.print,
- SpriteBatch:add,
- SpriteBatch:addq.

Transform objects apply to:
- love.graphics.draw,
- love.graphics.drawq,
- love.graphics.print.
2011-07-05 14:33:34 +02:00
Bart van Strien bd158faaaa Revise spritebatch locking (binding now) (issue #231) 2011-06-10 14:40:37 +02:00
José Romero dc2d87a90f Apply patch for issue #219 2011-04-27 16:35:14 +02:00
Bill Meltsner fde708160e bringing in the new year by changing every 2010 to 2011 2011-01-15 14:40:27 -06:00
rude aa01c984b9 Updated all dates to 2010. 2010-01-31 16:54:47 +01:00
rude c52c218ba1 Renamed Frame to Quad; added drawq/addq; fixed some bugs. 2009-08-17 23:35:04 +02:00
rude dd420d68a3 Ok, project generation didn't really work out. Reverted. 2009-08-10 21:33:07 +02:00
rude ba1a75e547 Added many comments, and changed function names for wrapper functions. 2009-08-09 21:08:55 +02:00
rude 5c068db487 Added locking to SpriteBatch, and conf.lua. 2009-07-27 15:17:54 +02:00
rude 4f32377efa Added working SpriteBatch. 2009-07-27 02:10:51 +02:00
rude 84bf839872 Removed classes which should be implemented in Lua (or need of re-implementation). 2009-07-26 23:08:40 +02:00
rude dcb3dfd83d Initial Mercurial commit. 2009-07-26 15:46:49 +02:00