Commit Graph

370 Commits

Author SHA1 Message Date
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
Alex Szpakowski a68bdfe7a2 Constified many Graphics and Window methods 2013-02-16 01:45:01 -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 96161c66f6 Updated copyright text for the new year 2013-02-05 05:32:49 -04:00
Alex Szpakowski a9211a1389 Removed direct OpenGL calls in the SDL Window module 2013-01-30 00:27:46 -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
Alexander Szpakowski ce75b3af69 Merge from root 2013-01-17 20:29:48 -04:00
Bart van Strien 501beb7d02 Add blend mode 'none' (issue #536) 2013-01-18 00:48:36 +01:00
Alexander Szpakowski e24d721381 Renamed all instances of 'ShaderEffect' (previously 'PixelEffect') to 'Shader'. 2013-01-16 07:21:41 -04:00
Alexander Szpakowski 331c883c77 Improved clarity of some comments, variable names, and functions 2013-01-15 20:20:35 -04:00
Alexander Szpakowski 8fdd6cbbb2 Merged in from main repository (originally from love-mipmap fork) 2013-01-12 18:07:14 -05:00
Alexander Szpakowski 808a09f786 Changed shader source list from a vector of sources to a map of shader types to source codes 2013-01-07 19:13:19 -04:00
Alexander Szpakowski a6f4a3ab0f Removed names of unused parameters to quiet noisy compilers 2013-01-07 07:29:04 -04:00
Alexander Szpakowski 88af7239c3 Removed unnecessary tabs from empty lines 2013-01-07 06:21:15 -04:00
Alexander Szpakowski 0968fa6f11 More cleanup and some overdone comments 2013-01-05 15:59:01 -04:00
Alexander Szpakowski 8b3fb1d71c Code cleanup 2013-01-02 17:19:41 -04:00
Alexander Szpakowski 1678252b7a Applied patch from issue #542 (texture filtering inconsistencies) in main LÖVE repository 2013-01-01 21:29:38 -04:00
Alexander Szpakowski da661e8e2f Bind texture id 0 (no texture) instead of disabling/re-enabling texturing entirely, when drawing graphics primitives. This both allows shaders to potentially use their own textures when drawing textureless primitives, and reduces overhead caused by constant GL state changes when drawing many graphics primitives. 2013-01-01 04:08:30 -04:00
Alexander Szpakowski 83204c5dc5 ShaderEffects now take a dynamically sized list of source codes instead of one vertex and one fragment shader string 2012-12-22 22:47:07 -04:00
Alexander Szpakowski 16f925affa improved GL texture binding api to take texture units into consideration 2012-12-21 20:35:32 -04:00
Alexander Szpakowski 0611234067 changed PixelEffect name to ShaderEffect, added lua-side support for vert/frag shader combinations with love.graphics.newShaderEffect, added tentative support for single-file vertex+fragment shaders 2012-12-20 21:51:31 -04:00
Alexander Szpakowski 28e3b105e9 added C++side support for combinations of vertex and fragment shaders in pixeleffects 2012-12-20 03:42:48 -04:00
vrld c70cd5b8ee Merge default branch
--HG--
branch : minor
2012-11-23 10:24:46 +01:00
vrld 6882c2c32c Close issue #519: Maximum stack depth reached error message. 2012-11-23 09:08:36 +01:00
Bart van Strien 8867f6c329 Merge in default
--HG--
branch : minor
2012-10-14 17:23:35 +02:00
vrld e6711b2837 Fix multiplicative blend mode. 2012-10-12 13:52:16 +02:00
vrld ccdf6e1c00 Fix Issue #476: Add HDR Canvas (thanks, Alexander Szpakowski!).
* Add `love.graphics.isSupported("hdrcanvas")' to query whether the hardware
  actually supports HDR canvases.

* Add optional third argument to `love.graphics.newCanvas(w,h, type)', where
  `type' is one of "normal" or "hdr" and defaults to "normal". HDR canvases
  use floating point that can have values > 1 to store pixels, allowing for
  HDR rendering and other higher level lighting techniques when combined with
  pixel effects.

* Add `canvas:getType()'.
2012-10-11 22:22:10 +02:00