Commit Graph

198 Commits

Author SHA1 Message Date
Alex Szpakowski 2426d97450 Fixed justify printf Align Mode (issue #635) 2013-06-18 23:16:01 -03:00
Alex Szpakowski f25efcc8af Improved performance and reduced temporary memory usage of love.graphics.newScreenshot and Canvas:getImageData 2013-06-15 22:07:16 -03:00
Alex Szpakowski 0a1c90f2d7 Removed love.graphics.setLine and love.graphics.setPoint.
Both functions are redundant (setLineStyle+setLineWidth and setPointStyle+setPointSize do the same thing) and have misleading names.
2013-06-14 10:12:09 -03:00
Alex Szpakowski 8718e064e0 Fixed love.graphics.print[f] truncating strings with embedded zeros 2013-06-13 17:37:14 -03:00
Alex Szpakowski d286f78ec7 Improved error messages when canvas/image creation fails because the size is too big for the system 2013-06-09 18:24:19 -03:00
Alex Szpakowski 35984790e5 Added a way for love's reference-counted objects to be released more safely in some situations (e.g. setters) 2013-06-09 02:42:33 -03:00
Alex Szpakowski c0998cd996 Fixed love.graphics.setScissor when love.graphics.setCanvas is called directly after a setScissor call 2013-06-07 03:31:30 -03:00
Alex Szpakowski 6c6cb270de Fixed Canvas:clear 2013-05-30 04:31:32 -03:00
Alex Szpakowski 0e9d73503c Stencil buffers are now created and attached to canvases on-demand, instead of always on canvas creation.
saves VRAM when stencils aren't used in canvases.
2013-05-22 23:08:21 -03:00
Alex Szpakowski ac094f9437 Fixed love.graphics.newScreenshot to always read from the main framebuffer, even when a canvas is bound 2013-05-22 19:18:11 -03:00
Alex Szpakowski 264948690c Renamed BlendMode "none" to "replace" and updated changelog 2013-05-22 04:26:29 -03:00
Alex Szpakowski aa59761177 Fixed smooth lines with love.graphics.origin() after love.graphics.scale 2013-05-12 16:13:32 -03:00
Alex Szpakowski c1cbd610e6 Fixed the default blend mode (and other related state) 2013-05-12 05:49:00 -03:00
Alex Szpakowski ff77eb4b29 Added love.window (issue #6.) All window-related functions have been moved from love.graphics to love.window.
love.graphics.setCaption has been renamed to love.window.setTitle.
2013-05-10 22:32:15 -03:00
vrld 13dd8d3199 Faster (and less WTF-ish) computation of current pixel size for line drawing. 2013-05-10 19:09:17 +02:00
Alex Szpakowski 63404f7097 Added love.graphics.getRendererInfo(infotype). Useful for creating more informative error reports and advanced debugging.
Returned string can be highly system-dependent, so don't rely on its output!

infotype can be "name", "version", "vendor", or "device"
2013-05-05 16:47:42 -03:00
Alex Szpakowski 3bf43dadd8 Renamed CompressedData:getNumMipmaps to CompressedData:getMipmapCount; Improved type-checking error messages for some functions which expect function arguments 2013-05-02 17:26:50 -04:00
Alex Szpakowski 8b50dd499b Removed now-unnecessary optional filter parameters from love.graphics.newImageFont 2013-04-28 18:15:03 -07:00
Alex Szpakowski ad2239aaaf Error instead of crash when love.graphics.newScreenshot fails 2013-04-28 11:12:19 -07:00
Alex Szpakowski a5eaffe625 Disabled opengl debug output until it can be improved & made optional 2013-04-23 16:47:22 -07: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 bf6d1c258b Misc. code cosmetics and improvements 2013-04-18 02:14:35 -03:00
Alex Szpakowski 6fd3038405 Improved clarity/readability of internal OpenGL state shadowing functions 2013-04-17 01:06:33 -03:00
Alex Szpakowski 3edf033498 Internally keep track of the value of the current color (issue #564) 2013-04-12 15:24:21 -03:00
Alex Szpakowski 7391d9821f Merged love.graphics.origin into default (issue #124) 2013-04-11 17:59:32 -03:00
Alex Szpakowski c7838b78b6 Added love.graphics.setAlphaTest (issue #534) 2013-04-10 13:17:54 -03:00
Alex Szpakowski c215541d6c Merged mage-CompressedData into default 2013-04-09 23:44:00 -03:00
Alex Szpakowski 1b80853118 Fixed an OpenGL error when MSAA isn't supported 2013-04-09 10:57:43 -03:00
Alex Szpakowski ab2c4aca7e Removed an unused graphics Image method
--HG--
branch : image-CompressedData
2013-04-08 21:58:20 -03:00
Alex Szpakowski 8a8adcce39 Code cleanup
--HG--
branch : image-CompressedData
2013-04-05 18:55:44 -03:00
Alex Szpakowski 5301026f3c Added support for DXT1/3/5 and BC5/7 compressed textures via love.image.CompressedData. Some internals are still iffy.
- added a new CompressedData type to love.image
- added love.image.isCompressed(file or data)
- love.graphics.newImage automatically tests for compression when loading a file
- added love.graphics.isSupported strings for DXT, BC5, and BC7

Compressed textures meant to be used on the GPU offer huge performance gains when
- loading the texture from a file
- loading the texture from RAM to VRAM
- loading mipmaps
- rendering

--HG--
branch : image-CompressedData
2013-04-04 19:09:18 -03:00
Alex Szpakowski d5aa807747 More internal code cleanup 2013-03-31 19:02:27 -03:00
Alex Szpakowski 23a0f3a69c Merged love-experiments/love.graphics.setColorMask into default 2013-03-27 19:43:04 -03:00
Alex Szpakowski 2ea065c68b Added MRT support to canvases via love.graphics.setCanvases(c1, c2, ...), and an 'effects' callback function in shaders.
- Simultanious rendering to multiple canvases requires all canvases to be the same size (limitation of pre-GL3.0 framebuffers)
- love.graphics.isSupported("mrtcanvas") was added
- love_Canvases[n] (0-based array of active canvases) can be written to in pixel shaders in the 'effects' callback function
- everything drawn to multiple canvases at once will be duplicated to all canvases if no shader is active or the standard 'effect' shader function is used

--HG--
branch : MRTs
2013-03-24 02:20:15 -03:00
Alex Szpakowski 2009124cf9 Reworked internal anisotropic filtering code to be more concise and intuitive 2013-03-21 12:21:13 -03:00
Alex Szpakowski 7e753a0acb Renamed love.graphics.setDefaultImageFilter to love.graphics.setDefaultFilter 2013-03-21 11:27:40 -03:00
Alex Szpakowski 25d6700361 Moved anisotropic filtering to Image:setFilter(min, mag, anisotropy), added anisotropic filtering support to canvases and fonts 2013-03-20 23:23:26 -03:00
Alex Szpakowski 8c406b7a4b Added anisotropic filtering functionality for images, consolidated mipmap methods into Image:setMipmapFilter(filtermode, sharpness, anisotropy), added love.graphics.setDefaultMipmapFilter(filtermode, sharpness, anisotropy) 2013-03-19 22:42:12 -03:00
Alex Szpakowski 288971a3ad Added all standard optional draw parameters to love.graphics.printf: angle, sx, sy, ox, oy, kx, and ky 2013-03-18 16:15:21 -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
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 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 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 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 e5670e69b3 Added love.graphics.setColorMask(r, g, b, a) and love.graphics.getColorMask()
setColorMask enables or disables specific color components when rendering and clearing the screen.
For example, setColorMask(true, false, true, true) will prevent the green component of the color of all rendered objects from being written to the current frame buffer.
setColorMask is a wrapper for http://www.opengl.org/sdk/docs/man2/xhtml/glColorMask.xml

--HG--
branch : love.graphics.setColorMask
2013-02-26 11:24:30 -04:00
Alex Szpakowski 083218742a Added love.graphics.origin(): resets the coordinate system (replaces the current transformation matrix with the identity)
--HG--
branch : love.graphics.origin
2013-02-24 14:07:03 -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