Bart van Strien
c02ba91ef4
Fix segfault loading images from compressed data without an explicit sRGB flag
2015-08-01 14:22:36 +02:00
Alex Szpakowski
66942d5f31
Added the ability to use custom mipmaps in Images, via love.graphics.newImage(filename, {mipmap1, mipmap2, ...}). Resolves issue #1064 .
...
All mipmap levels must be present if custom mipmaps are used (and their sizes must be half the size of the previous mipmap level, rounded down.)
Image:getData now returns all custom mipmaps in an Image.
2015-07-30 20:48:36 -03:00
Alex Szpakowski
d8fd1413d6
Renamed the internal 'Matrix' class to 'Matrix4'.
2015-06-26 19:34:05 -03:00
Alex Szpakowski
ed3f419747
Prevent redundant calls to glEnable/DisableVertexAttribArray. This should hopefully fix a performance regression compared to 0.9.2 as well.
2015-06-23 20:55:23 -03:00
Alex Szpakowski
0f986b10aa
Cleaned up some code, the 'ry' parameter of love.graphics.rectangle now defaults to the value of 'rx' rather than defaulting to 0.
2015-05-27 17:36:27 -03:00
Alex Szpakowski
c62b005ff3
Changed the default mipmap filter to be 'linear' instead of 'nearest'.
2015-04-13 12:51:48 -03:00
Alex Szpakowski
f8ff50cfde
Fixed Image:refresh for sRGB images when OpenGL ES 2 is being used.
2015-04-05 17:35:19 -03:00
Alex Szpakowski
cf0968fc6d
Avoid some VC++ compiler warnings
2015-04-02 00:28:09 -03:00
Alex Szpakowski
a29b349014
Added love.math.compress(data, format [, level]) and love.math.decompress(compresseddata) / love.math.decompress(compressedstring, format).
...
Renamed the love.image CompressedData type to CompressedImageData.
love.math.compress returns a love.math CompressedData object which holds the newly compressed data. Currently supported formats are "lz4" and "zlib". Note that the formats are not file formats and don't compress filesystem hierarchies.
2015-03-23 11:28:14 -03:00
Alex Szpakowski
d31168c0e0
Cleaned up some graphics code.
2015-03-20 00:16:36 -03:00
Alex Szpakowski
06ef263537
Added OpenGL debug groups for most graphics operations when love is built in debug mode for iOS. The Xcode frame capture tool uses them to create nice visual groups for OpenGL function calls.
2015-03-16 22:55:58 -03:00
Alex Szpakowski
4ef0d257e9
Added an optional font hinting argument to love.graphics.newFont / love.font.newRasterizer when loading TrueType fonts. Resolves issue #963 .
...
Accepted values are "normal", "light", "mono", and "none".
2015-03-07 22:05:37 -04:00
Alex Szpakowski
4fa5ab4a07
Fixed the winding order of triangles in SpriteBatches and ParticleSystems.
2015-03-04 16:03:01 -04:00
Alex Szpakowski
3830a0969c
Moved the Texture and Quad Lua wrapper files out of the opengl graphics implementation folder.
...
--HG--
branch : minor
2015-03-01 03:51:44 -04:00
Alex Szpakowski
faa4a33fe9
Use triangle strips rather than triangle fans when possible.
...
--HG--
branch : minor
2015-02-28 02:32:34 -04:00
Alex Szpakowski
971380003b
Reorganized some Image code.
...
--HG--
branch : minor
2015-02-21 03:47:19 -04:00
Alex Szpakowski
36e99b4880
Fix an OpenGL error when an sRGB image is created with mipmaps in OpenGL ES 2.
...
--HG--
branch : minor
2015-02-09 21:46:56 -04:00
Alex Szpakowski
8067d42df2
Canvases now have OpenGL ES support, updated Texture:setWrap to return false for repeat wrap modes in non-power-of-two textures if OpenGL ES 2 is used and the implementation doesn't have support for repeat on NPOT textures.
...
--HG--
branch : minor
2015-01-20 15:13:59 -04:00
Alex Szpakowski
18ab3973e8
Added support for ETC2/EAC compressed textures. Changed the CompressedFormat enum names to capitalize the format names (e.g. "PVR1rgba4" instead of "pvr1rgba4".) Improved sRGB support for compressed textures.
...
--HG--
branch : minor
2015-01-20 07:53:44 -04:00
Alex Szpakowski
dfdd52e499
Added support for ETC1 and PVR1 compressed textures contained in KTX, PKM, and PVR files.
...
Most desktop graphics drivers don't support those formats.
--HG--
branch : minor
2015-01-20 03:18:28 -04:00
Alex Szpakowski
1124612c1f
Some work towards OpenGL ES 2+ support for love 0.10.
...
--HG--
branch : minor
2015-01-19 23:32:16 -04:00
Alex Szpakowski
a7e4148869
Merged default into minor
...
--HG--
branch : minor
2015-01-16 15:47:26 -04:00
Alex Szpakowski
c7b45b3505
Updated copyright for the new year
2014-12-31 19:32:43 -04:00
Alex Szpakowski
c4a1457603
Fixed Image:setMipmapFilter keeping bad state around if it errors.
2014-12-05 12:19:50 -04:00
Alex Szpakowski
8dba668ce9
Merged default into minor
...
--HG--
branch : minor
2014-11-15 20:17:18 -04:00
Alex Szpakowski
22bbe74ed9
Allow BC6 and BC7 compressed DDS files to be loaded into Images.
2014-11-05 21:11:22 -04:00
Alex Szpakowski
5eb37d30f7
Cleaned up and simplified some graphics code.
...
--HG--
branch : minor
2014-10-26 15:31:32 -03:00
Alex Szpakowski
a9630811d8
Fixed a logic error making compressed textures with no mipmaps trigger a Lua error when they're loaded into an Image.
...
--HG--
branch : minor
2014-10-06 20:09:10 -03:00
Alex Szpakowski
d1bdc9a7e2
Images and Canvases are now drawn using GL_TRIANGLE_FAN instead of GL_QUADS, for future compatibility with GLES and core GL3+.
...
--HG--
branch : minor
2014-09-07 13:19:27 -03:00
Alex Szpakowski
8a7481eaa3
Added optional xoffset/yoffset/width/height arguments to Image:refresh, to specify a sub-rectangle. Specifying a small sub-rectangle can improve the performance of Image:refresh.
...
--HG--
branch : minor
2014-08-26 09:40:24 -03:00
Alex Szpakowski
3a51f0ad08
Changed the love.graphics internal code to always use a default shader when none is set externally, and replaced the deprecated OpenGL vertex attribute code with the equivalent generic vertex attribute functions.
...
This will simplify the code and make it more maintainable when OpenGL ES 2+ support is added, compared to using the deprecated VA functions on desktop GL and the generic VA functions on GLES.
--HG--
branch : minor
2014-08-26 03:24:42 -03:00
Alex Szpakowski
766939bdd5
Removed mipmapping restriction on non-power-of-two Images.
...
--HG--
branch : minor
2014-08-25 01:37:05 -03:00
Alex Szpakowski
1978fa9910
Cleaned up a bit of unused code.
2014-08-22 17:44:52 -03:00
Alex Szpakowski
71c71985d3
Merged default into minor
...
--HG--
branch : minor
2014-08-21 16:53:43 -03:00
Alex Szpakowski
8ffe610659
Added love.graphics.getStats. It returns a table with performance-related graphics statistics. Currently it contains these fields:
...
drawcalls: The number of internal draw calls made so far in the current frame.
canvasswitches: The number of times the active Canvas has been changed so far in the current frame.
texturememory: The approximate amount of video memory (in bytes) used by OpenGL textures created by Images, Canvases, and Fonts.
images: The number of active Image objects.
canvases: The number of active Canvas objects.
fonts: The number of active Font objects.
2014-08-21 15:01:29 -03:00
Alex Szpakowski
5f6ee50541
Replaced the GLee OpenGL function loader with a modified version of GLAD (resolves issue #728.)
...
--HG--
branch : minor
2014-08-18 21:35:52 -03:00
Alex Szpakowski
53e63d48c9
Merged default into minor
...
--HG--
branch : minor
2014-08-07 18:10:19 -03:00
Alex Szpakowski
d59c76a55f
Reduced the number of explicit retain/release method calls on love objects. Less chance of bugs!
2014-08-07 14:53:17 -03:00
Alex Szpakowski
afc505e183
Added stack type enums to love.graphics.push (resolves issue #906.) Current enums are "transform" and "all". "transform" is the default (for compatibility.) When love.graphics.push("all") is used, love.graphics.pop() will restore all love.graphics module state to what it was when push was called.
...
Updated the graphics code to use a custom matrix stack rather than OpenGL1's APIs.
2014-08-06 22:25:29 -03:00
Alex Szpakowski
8483ea31a1
Changed love.graphics.newImage's optional second argument to be a table of flags. Current flags are 'mipmaps' and 'srgb'.
...
If mipmaps are enabled on image creation, the image will use the default mipmap filter (now 'nearest' by default.) Image:setMipmapFilter will error if the image was not created with mipmaps enabled.
--HG--
branch : minor
2014-06-05 17:19:31 -03:00
Alex Szpakowski
bfa3ec9369
Merged default into minor
...
--HG--
branch : minor
2014-06-05 03:02:50 -03:00
Alex Szpakowski
f973c696f9
Fixed Image:refresh regenerating mipmaps multiple times if mipmap filtering is enabled on an uncompressed image
2014-05-28 01:36:09 -03:00
Alex Szpakowski
53b20b63a5
Merged default into minor
...
--HG--
branch : minor
2014-05-21 21:16:37 -03:00
Alex Szpakowski
408a593113
Added support for several specific Canvas formats. Also added love.graphics.hasCanvasFormat.
...
The list includes RGBA with 4-bit components, RGBA with 10-bit R, G, and B components and a 2-bit alpha component, RGB with 9-bit RGB components and a 5-bit exponent component (for HDR rendering), and several more.
--HG--
branch : Canvas-formats
2014-05-13 20:54:58 -03:00
Alex Szpakowski
caa61563cc
OpenGL 2.1 is now required to use love.graphics (resolves issue #779.)
...
Removed love.graphics.isSupported("canvas", "shader", "npot", "subtractive", and "mipmap"), since those features are all guaranteed by the minimum system requirements.
--HG--
branch : minor
2014-03-12 02:26:32 -03:00
Alex Szpakowski
ce4fdf4ac9
Added sRGB (gamma-correct) support for Images, Canvases, and the main screen.
...
love.graphics.newImage(path, “srgb”) creates a new Image whose texels are treated as being in the sRGB color space, so they are linearized when drawing/sampling from the image.
love.graphics.newCanvas(w, h, “srgb”) creates a new Canvas whose texels are treated as being in the sRGB color space, so drawing to the Canvas does a linear->sRGB conversion (but blends linearly), and sampling from it (drawing it or using it in a shader) converts from sRGB to linear space.
The "srgb" window flag does the same as Canvases for the main screen.
2014-02-02 18:31:41 -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
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
c0b28f9d07
Only apply an AMD-specific hack when generating mipmaps on AMD GPUs
2013-11-17 05:44:09 -04:00