Commit Graph

919 Commits

Author SHA1 Message Date
Alex Szpakowski 90a3c2b8ba Added Text:setFont. 2015-04-27 04:19:03 -03:00
Alex Szpakowski 33e1d2736d Removed restrictions preventing sRGB and non-sRGB canvases from being used together when doing multi-canvas rendering. 2015-04-25 21:32:10 -03:00
Alex Szpakowski 5c49898cdf Fixed lines drawn using the 'none' line join mode having missing sections of each line segment. 2015-04-25 18:56:47 -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 d8a68d6ce1 Updated iOS-specific graphics code to use the latest SDL changes. 2015-04-13 12:26:54 -03:00
Alex Szpakowski 2844499ef7 Added the ability to have custom vertex attributes in Meshes (resolves issue #768.)
Added new love.graphics.newMesh variants: newMesh(vertexformat, vertices [, drawmode, meshusage]) and newMesh(vertexformat, numvertices [, drawmode, meshusage]).

Replaced the regular love.graphics.newMesh variants with newMesh(vertices [, drawmode, meshusage]) and newMesh(numvertices [, drawmode, meshusage]). To use an image or canvas with a mesh, use Mesh:setTexture.

vertexformat is a table with the following prototype:
{
  {attributename, datatype, components},
  {attributename, datatype, components},
  ...
}

Where attributename is the name of the vertex attribute (can be the built-in names 'VertexPosition', 'VertexTexCoord', or 'VertexColor', or a custom name for use in a vertex shader), datatype is the type of values used for the attribute ('float' or 'byte'), and components is the number of components in the vertex attribute (between 1 and 4.)

The vertex format is used to determine the layout of the vertices in the mesh, for example the 'regular' newMesh variants use this vertex format:
format = {
  {"VertexPosition", "float", 2},
  {"VertexTexCoord", "float", 2},
  {"VertexColor", "byte", 4},
}

The mesh usage parameter accepts the same constants as the spritebatch usage hint in love.graphics.newSpriteBatch - "dynamic", "static", and "stream".

Mesh:setVertex now sets *all* vertex attributes for a specific vertex in the Mesh.

Added Mesh:setVertexAttribute(vertexindex, attributeindex, attributevalue1, ...), which sets the values for a specific vertex attribute in a specific vertex in the Mesh (resolves issue #784.)

Added Mesh:getVertexFormat and Mesh:flush.

Added Mesh:setAttributeEnabled(attributename, enable) and Mesh:isAttributeEnabled(attributename), to enable or disable the use of a specific attribute when drawing the Mesh.

Added Mesh:attachAttribute(attributename, mesh), which makes the Mesh use a vertex attribute from another mesh when drawing the Mesh. This can be used to separate out vertex attributes which are updated at different rates into different meshes, and to share vertex data between multiple meshes.

Removed Mesh:setVertices, Mesh:getVertices, and Mesh:setVertexColors.
2015-04-08 22:24:17 -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 2a6bffaa5a Prevent sRGB and non-sRGB Canvas formats from being used together in multi-canvas rendering (MRTs), due to driver bugs. 2015-03-29 23:51:08 -03:00
Dermoumi Sid 6a07823224 Fixed shearing resetting transformations 2015-03-29 12:37:18 +01:00
Alex Szpakowski 3aafab9607 Hopefully fixed compilation in Windows. 2015-03-26 22:16:17 -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 e237ed2432 love.graphics.discard now accepts a table of booleans indicating which of the active canvases to discard (matches love.graphics.clear.) 2015-03-21 02:36:13 -03:00
Alex Szpakowski d31168c0e0 Cleaned up some graphics code. 2015-03-20 00:16:36 -03:00
Alex Szpakowski a36dbc3d49 Only update the shader point size in OpenGL ES 2 when it's been modified, rather than before every draw. 2015-03-17 17:24:45 -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 14cbc91e7f Fixed a memory leak in love.graphics.newText. 2015-03-16 03:13:10 -03:00
Alex Szpakowski d00773b974 Updated GLAD for the latest GL and GLES extensions. 2015-03-15 23:45:08 -03:00
Alex Szpakowski 468127eed4 Added a variant of love.graphics.clear which accepts a color table argument for each active canvas, allowing it to clear active canvases to different colors without having to call love.graphics.setCanvas. 2015-03-15 15:15:21 -03:00
Alex Szpakowski a119e6a862 Added an optional spacing argument to love.graphics.newImageFont, allowing additional spacing (positive or negative) to be applied to all glyphs rendered using that font. 2015-03-11 18:28:22 -03:00
Alex Szpakowski b1f4beac56 Fixed the internal color mask state not being updated when love.graphics.setColorMask is called. 2015-03-10 01:13:39 -03:00
Alex Szpakowski 2e8f19930c Fixed love.graphics.stencil 2015-03-09 23:08:42 -03:00
Alex Szpakowski 52b2701cf0 Removed love.graphics.clearStencil. love.graphics.stencil now clears the stencil buffer unless true is passed as an optional second argument ('keep the existing contents'.) 2015-03-09 23:05:29 -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 4dc73959a6 Hopefully fixed a major bug related to using Shader:send with textures. 2015-03-06 02:08:33 -04:00
Alex Szpakowski b39036eaa5 Added Image:getFlags. 2015-03-04 23:07:05 -04:00
Alex Szpakowski c561308c96 Font:getWrap's second return value is now a table containing the text split into lines. Resolves issue #1002. 2015-03-04 20:35:41 -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 4263de89ab The default offset for particles in a ParticleSystem is now updated when ParticleSystem:setQuads or ParticleSystem:setTexture is used (resolves issue #998.) 2015-03-04 03:57:41 -04:00
Alex Szpakowski e2652fddc1 Updated the readme. 2015-03-04 03:21:26 -04:00
Alex Szpakowski 06fa7bd7a4 Don't enable SDL_GL_FRAMEBUFFER_SRGB_CAPABLE in Linux when creating the window, to work around a potential bug. sRGB windows are still possible even without that. 2015-03-03 17:48:19 -04:00
Alex Szpakowski 8277eb9abd Renamed the internal OpenGL buffer class from VertexBuffer to GLBuffer. 2015-03-03 02:21:28 -04:00
Alex Szpakowski d7667ea8fc Updated changelog. 2015-03-03 00:49:46 -04:00
Alex Szpakowski 275a9a300f Multi-canvas rendering (love.graphics.setCanvas with multiple canvases) now allows canvases with different formats, if the system supports it. Added 'multicanvasformats' to the table returned by love.graphics.getSupported.
--HG--
branch : minor
2015-03-02 23:43:09 -04:00
Alex Szpakowski 3ced9ca38f Added one- and two-channel Canvas formats: r8, rg8, r16f, rg16f, r32f, and rg32f.
--HG--
branch : minor
2015-03-02 18:06:14 -04:00
Alex Szpakowski 3fea174008 Cleaned up some shader code.
--HG--
branch : minor
2015-03-02 15:18:12 -04:00
Alex Szpakowski 3536f2665f love.graphics.clear can accept an array of color components.
--HG--
branch : minor
2015-03-02 02:32:53 -04:00
Alex Szpakowski bf5f0b4175 bmp isn't a supported format for ImageData:encode.
--HG--
branch : minor
2015-03-01 23:38:34 -04:00
Alex Szpakowski 2f419c1c83 Replaced most cases of type bits and type name strings in love's Lua wrapper code with type id's.
--HG--
branch : minor
2015-03-01 18:32:41 -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 395bb0bea8 Fixed a crash when Canvas:newImageData should error.
--HG--
branch : minor
2015-02-28 16:22:02 -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 9a2bf4b210 Fixed the check for OpenGL extensions that support glInvalidateFramebuffer to check for GL_ARB_invalidate_subdata instead of GL_ARB_ES3_compatibility.
--HG--
branch : minor
2015-02-27 23:34:08 -04:00
Alex Szpakowski b9c90e8a6f Fixed the background color for the error screen, and updated LodePNG to the latest version.
--HG--
branch : minor
2015-02-27 21:20:31 -04:00
Alex Szpakowski b52b9c7a2b Added love.graphics.discard, which discards the contents of the screen (or currently active Canvas.)
Using it just after activating a Canvas can improve performance on many mobile devices, if the conditions for using it are right.

--HG--
branch : minor
2015-02-27 04:51:38 -04:00
Alex Szpakowski 1326ae9a5d Added love.graphics.clearStencil, which only clears the stencil buffer.
--HG--
branch : minor
2015-02-27 03:58:40 -04:00
Alex Szpakowski 3efcf3901b Removed Canvas:clear. love.graphics.clear now accepts r,g,b,a values (and defaults to 0,0,0,0 with no arguments given.) love.graphics.clear clears the content of the currently active Canvas(es.)
--HG--
branch : minor
2015-02-27 03:47:25 -04:00
Alex Szpakowski f83c2db471 Cleaned up the Canvas code.
--HG--
branch : minor
2015-02-26 17:06:09 -04:00
Alex Szpakowski a66a7b7ce9 Prevent invalid stencil buffer contents from being used when switching to a Canvas on mobile.
--HG--
branch : minor
2015-02-26 01:00:38 -04:00
Alex Szpakowski e8ce59038f Renamed Canvas:getImageData to Canvas:newImageData (see issue #1001.)
--HG--
branch : minor
2015-02-26 00:13:46 -04:00