Alex Szpakowski
43b3629e01
Improved performance of Image:refresh
2013-10-13 16:31:29 -03:00
Alex Szpakowski
2710c6c488
Renamed Source:s/getDistance to Source:s/getAttenuationDistances (resolves issue #632 ).
...
Fixed detection for mipmap sharpness support.
2013-10-10 23:05:45 -03:00
Alex Szpakowski
4fa7347e26
Reduced code duplication in love.graphics.newImage
2013-10-07 22:18:44 -03:00
Alex Szpakowski
fb34f5bc9e
Auto-padded NPOT images' texture coordinates are now scaled at draw time via the texture matrix (fixes auto-padded images with Meshes.) Also fixed love.graphics.newQuad.
...
--HG--
branch : Mesh
2013-10-06 23:25:29 -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
5de43a7207
The Vertex struct is now recognized as POD by C++, also fixed the name to be consistent with other love structs
2013-09-24 11:09:18 -03:00
Alex Szpakowski
96a668ecf3
Renamed CompressedData:getType to CompressedData:getFormat
2013-08-17 14:30:23 -03:00
Alex Szpakowski
c230098642
Fixed Geometry:getVertexMap to return 1-based vertex indices and made it return the default vertex map instead of nil if no map is set.
2013-08-16 19:25:41 -03:00
Alex Szpakowski
d815374a9b
Renamed the 'ModelViewMatrix' and 'ModelViewProjectionMatrix' built-in shader variables to 'TransformMatrix' and 'TransformProjectionMatrix', respectively.
2013-08-16 03:17:55 -03:00
Alex Szpakowski
14ae39eec9
Images which are too large for the system they're loaded on use a checkerboard pattern instead of erroring
2013-08-15 23:40:32 -03:00
Alex Szpakowski
2128ba321e
Fixed Geometry texture coordinates when using Geometry to draw auto-padded NPOT images (resolves issue #696 )
2013-08-01 17:14:20 -03:00
Alex Szpakowski
e19ade38ab
Added support for BC4 (aka 3Dc+) compressed textures
2013-07-28 17:20:24 -03:00
Alex Szpakowski
454ba9d968
love.graphics.newGeometry now takes an optional draw mode argument ("fan", "strip", or "triangles".) "fan" is the default.
...
This allows for more diverse and complex Geometries, provided the lover understands how to use each mode. See http://escience.anu.edu.au/lecture/cg/surfaceModeling/image/surfaceModeling015.png
Changed love.graphics.newGeometry to optionally accept vertices as individual arguments instead of just a table of vertices (resolves issue #651 ).
Changed Geometry:setVertex to optionally accept a table containing x,y,u,v,r,g,b,a instead of just individual arguments.
Added Geometry:set/getDrawMode.
Removed the convex-check in love.graphics.newGeometry (all geometry modes have at least some form of concavity support, lovers can do their own check if needed with love.math.isConvex.)
Added an optional "vertex map" table argument to love.graphics.newGeometry (AKA a vertex index array / element array in graphics programming lingo.)
This allows lovers to change the order in which the vertices are used when drawing, or re-use a single vertex multiple times for different parts of the Geometry.
This is especially useful in the "triangles" Geometry draw mode. The vertex map lets you draw very complex (and concave) shapes / meshes without duplicating vertex data.
Added Geometry:set/getVertexMap.
2013-07-10 15:34:10 -03:00
Alex Szpakowski
9155b7b0ee
Removed dead code for the now-removed Thread:kill
2013-07-08 17:00:47 -03:00
Alex Szpakowski
6e3a7288dd
Improved performance of ImageData:mapPixel (now up to 2x as fast as in 0.8.0!); love.graphics.newImage, Image:refresh, love.window.setIcon, and ImageRasterizers now prevent other threads from modifying the ImageData used in those functions until they're done accessing it
2013-06-25 05:28:20 -03:00
Alex Szpakowski
cd97e9ec05
Added Image:getData, returns the original ImageData (or CompressedData) used to create the image
2013-06-17 13:43:40 -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
0a36c41ba0
Removed support for BC7-compressed DDS images (only *very* modern systems support it right now); updated the ddsparse library
2013-06-09 16:31:02 -03:00
vrld
e9d0204cdc
Disallow concave shapes as geometry.
2013-05-12 13:01:05 +02: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
3b05ec0635
Geometries now automatically use per-vertex colors when drawing if any vertex has a custom color set, otherwise the constant color is used.
...
Still not a perfect solution, but it works better than before
2013-04-23 23:25:45 -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
6fd3038405
Improved clarity/readability of internal OpenGL state shadowing functions
2013-04-17 01:06:33 -03:00
Alex Szpakowski
b22f1aa16a
Added Image:refresh(), reloads a love.graphics image using the imagedata that created it
2013-04-10 00:15: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
299ee64320
Added Image:isCompressed()
...
--HG--
branch : image-CompressedData
2013-04-07 23:11:11 -03:00
Alex Szpakowski
88d64954a4
Replaced the devil love.image module with love.image.magpie, which can decide which image library to use in a similar manner to love.sound.lullaby. Some rough edges still exist.
...
love.filesystem.newFileData now accepts filepaths and File objects.
--HG--
branch : image-CompressedData
2013-04-07 17:18:34 -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
2009124cf9
Reworked internal anisotropic filtering code to be more concise and intuitive
2013-03-21 12:21:13 -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
86ced3c70e
Simplified the error message on image creation failure
2013-02-24 15:02:56 -04:00
Alex Szpakowski
7d579308dc
LÖVE now errors when Image creation fails
2013-02-24 00:50:39 -04:00
Alex Szpakowski
472915a4bb
Worked around ATI/AMD driver bugs when creating mipmaps for Images
2013-02-23 15:52:03 -04:00
Alex Szpakowski
23968d3b4a
Fixed image mipmap creation on some systems with buggy video drivers
2013-02-17 11:36:17 -04:00
Alex Szpakowski
96161c66f6
Updated copyright text for the new year
2013-02-05 05:32:49 -04:00
rude
de8b4d91a5
Use GLint when getting GL_GENERATE_MIPMAP.
...
Using GLboolean caused a stack corruption according to VS2012.
2013-01-12 12:53:07 +01:00
Bart van Strien
b97765b169
Check for OpenGL 2.0 in NPOT check (issue #538 )
2013-01-18 00:29:01 +01:00
Alexander Szpakowski
eb98e8cc48
Removed unnecessary tabs in empty lines, fixed texture filtering when the minification and mipmap filter are the same
2013-01-07 06:56:59 -04:00
Alexander Szpakowski
8b3fb1d71c
Code cleanup
2013-01-02 17:19:41 -04:00
Alexander Szpakowski
2d077758d1
Fixed mipmap generation for pre-FBO systems, fixed NPOT check if mipmap filtering is enabled on an image before the texture is created
2013-01-02 05:29:17 -04:00
Alexander Szpakowski
f067e228b4
Fixed mipmap sharpness setting not being correctly reapplied on resolution change
2013-01-02 04:44:24 -04:00
Alexander Szpakowski
fda16e27cd
Changed image mipmap api: Image:setFilter now takes an optional third argument (mipmap filter mode), Image:get/setMipmapFilter is removed.
2013-01-02 04:21:22 -04:00
Alexander Szpakowski
2739ea561a
Initial image mipmapping implementation. Includes Image:set/getMipmapFilter and Image:set/getMipmapSharpness. setMipMapFilter requires a filter mode, or nil to disable mipmapping.
...
Enabling mipmapping on an image that does not have power-of-two dimensions will raise an error, due to inconsistent support in older graphics chipsets
2013-01-02 02:50:13 -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
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
Bart van Strien
1e00f0f981
Move the default image filter to the Image class, instead of Graphics applying it on newImage
2012-05-18 17:35:51 +02:00
Bart van Strien
2ac4a9e6d0
Manually keep track of bound textures, so we don't have to poll each frame
...
Patch submitted by slime73.
2012-01-10 15:36:18 +01:00