Alex Szpakowski
2572f0c7a1
Meshes expose GraphicsBuffers, part 2
2020-02-01 15:39:59 -04:00
Alex Szpakowski
1bc2b947fc
Rename Attributes struct to VertexAttributes
2020-01-13 20:44:39 -04:00
Alex Szpakowski
ee5304ba53
Remove vertex namespace
2020-01-13 20:41:05 -04:00
Alex Szpakowski
b0232a4a6b
Initial work on unified graphics buffers representing different types of data.
2020-01-12 16:41:23 -04:00
Alex Szpakowski
5f9b5a21d0
Merge default into minor
...
--HG--
branch : minor
2020-01-03 22:45:36 -04:00
Alex Szpakowski
fc4847c69d
Update copyright for the new year
2020-01-03 22:40:36 -04:00
Alex Szpakowski
76121ec152
Fix the default blend mode.
...
--HG--
branch : minor
2019-12-27 13:51:57 -05:00
Alex Szpakowski
b41f1316fa
Add love.graphics.setBlendState, which sets the lower level blend operation and factor values which higher level blend modes are based on.
...
--HG--
branch : minor
2019-12-27 09:57:42 -05:00
Alex Szpakowski
efa2bd7837
Consolidate some internal graphics state definitions into a new renderstate file.
...
--HG--
branch : minor
2019-12-26 23:07:51 -05:00
Alex Szpakowski
37c579929b
Add support for GLSL 4.30 and GLSL ES 3.10, via #pragma language glsl4.
...
macOS and iOS won't support glsl4 until a Metal backend is implemented.
--HG--
branch : minor
2019-11-16 14:33:48 -04:00
Alex Szpakowski
55d4dc0f9e
Restructure some internal vertex buffer binding code to be closer to how graphics APIs actually behave.
2019-08-25 16:50:15 -03:00
Alex Szpakowski
0c2153e0ca
Fix a potentially uninitialized value in love.graphics code. Minor cleanup.
2019-04-02 20:20:18 -03:00
Alex Szpakowski
74dcc41b38
Cleaned up love.graphics Image code for determining whether the image's pixel format is supported.
2019-01-16 19:30:21 -04:00
Alex Szpakowski
0752f27bdf
Update copyright year for 2019
2019-01-03 21:09:05 -04:00
Alex Szpakowski
cfa30167ca
Fix hash map collisions when setting canvases.
2018-04-02 15:58:38 -03:00
Alex Szpakowski
39201af79f
Improve the error message when an invalid layer or face index is given in love.graphics.setMode.
2018-01-14 19:15:24 -04:00
Bart van Strien
e80247c191
Happy new year! ✨
2018-01-03 19:47:35 +01:00
Alex Szpakowski
a31b500b03
Simplify quad drawing code, and use glDrawElementsBaseVertex when available.
2017-12-24 22:05:10 -04:00
Alex Szpakowski
3fb621af95
Always use a 16 bit index array for quad indices, with multiple draws when necessary. See issue #1356 .
2017-12-24 15:54:03 -04:00
Alex Szpakowski
7354de2059
Add (low level) functionality to allow rendering 3D Meshes.
...
- Add love.graphics.setDepthMode(testcomparison, enablewrites).
- Add love.graphics.setMeshCullMode.
- Add love.graphics.setFrontFaceWinding.
Depth testing and depth writes require a depth buffer to work. The mesh cull mode controls whether front/back faces of a mesh are culled. The front face winding determines whether a clockwise or counterclockwise-oriented face in a mesh is considered front facing.
--HG--
branch : minor
2017-12-09 23:34:08 -04:00
Alex Szpakowski
915e6c8eec
Fill-mode love.graphics.circle/ellipse draws a triangle fan from the center of the ellipse, instead of from an edge.
...
--HG--
branch : minor
2017-12-04 19:12:06 -04:00
Alex Szpakowski
e099e57052
Cleaned up some internal love.graphics code.
...
--HG--
branch : minor
2017-12-03 23:04:40 -04:00
Alex Szpakowski
cbcb1a8606
Allow a depth/stencil canvas to be active without a color canvas.
...
--HG--
branch : minor
2017-12-03 19:33:48 -04:00
Alex Szpakowski
fccc6fa733
Increase the love.graphics max stack depth from 64 to 128.
...
--HG--
branch : minor
2017-11-28 22:41:01 +00:00
Alex Szpakowski
b8c4b07edf
Clean up unused temporary Canvases after a few frames.
...
--HG--
branch : minor
2017-11-13 19:45:18 -04:00
Alex Szpakowski
7f88037d94
Move the implementation for Graphics::flushStreamDraws out of the opengl backend
...
--HG--
branch : minor
2017-10-26 21:05:15 -03:00
Alex Szpakowski
e3fd489373
Abstracted lower level drawing code, moved all type-specific drawing code out of opengl backend, deleted obsolete files
...
--HG--
branch : minor
2017-10-26 20:58:19 -03:00
Alex Szpakowski
7a2e52b12d
Cleaned up some vertex data-related code.
...
--HG--
branch : minor
2017-10-22 12:33:47 -03:00
Alex Szpakowski
e5b0d96b27
Restructured some Shader code. Added runtime temporary caching and sharing of shader stages. Resolves issue #1235 .
...
--HG--
branch : minor
2017-10-21 03:08:18 -03:00
Bart van Strien
9e4374935d
Show (short) list of possible enum values when an invalid value is encountered ( resolves #1318 )
...
All enum errors have (hopefully) been changed to a luax_enumerror, which has a
fixed error message. If additionally a list of valid options is passed, it
lists that in the error message. For every enum error with few options I've
implemented this using a getConstants call.
This solution has been designed specifically to reduce the number of template
instantiations (as I've been told that was a concern). All new template code
happens in places where there already was an instantiation of the relevant
StringMap. Of course there is still std::vector<std::string>...
--HG--
branch : minor
2017-10-02 17:11:53 +02:00
Alex Szpakowski
8068b0f1d4
Add variant of love.graphics.captureScreenshot which takes a Channel argument.
...
--HG--
branch : minor
2017-09-30 10:25:14 -03:00
Alex Szpakowski
844900db39
Rename all cases of 'pixel density' to 'DPI scale' in love's APIs.
...
--HG--
branch : minor
2017-09-24 16:09:05 -03:00
Bart van Strien
77663ed847
Replace love.graphics.pop("all") with love.graphics.getStackDepth ( resolves #1248 again)
...
The pop("all") api was a bit awkward, especially considering there's a
push("all") that does something else. I think any use case that benefited from
pop("all") benefits from getStackDepth just as much if not more. There is also
additional functionality, like being able to find the source of a mismatched
push/pop.
--HG--
branch : minor
2017-09-23 10:56:54 +02:00
Bart van Strien
a2ad1b462f
Add love.graphics.pop("all"), which pops the entire stack ( resolves #1248 )
...
--HG--
branch : minor
2017-09-18 14:31:51 +02:00
Alex Szpakowski
de28c6e6a8
Add the ability to have formally deprecated functions.
...
Functions which are deprecated will print out a message and show up in a small dialog on-screen, when they're first called. Deprecation output is disabled in fused mode by default, and can be modified with love.setDeprecationOutput(enable).
--HG--
branch : minor
2017-08-27 13:46:31 -03:00
Alex Szpakowski
0b68c92570
Rename some internal functionality to better match what it actually is.
...
--HG--
branch : minor
2017-08-25 22:42:03 -03:00
Alex Szpakowski
b129d49a6c
Move Color.h from modules/graphics/ to common/
...
--HG--
branch : minor
2017-08-01 23:53:44 -03:00
Alex Szpakowski
b3d4443f9d
Added 'drawcallsbatched' field to the table returned by love.graphics.getStats.
...
It has the number of draw calls that were saved by auto-batching.
--HG--
branch : minor
2017-07-23 01:58:25 -03:00
Alex Szpakowski
c37e9ed6bf
Use vector2 arrays instead of raw float arrays for graphics primitives. Simplifies the code a bit.
...
--HG--
branch : minor
2017-07-23 01:49:27 -03:00
Alex Szpakowski
864147c38c
love.graphics: move more platform-independent code out of the opengl backend
...
--HG--
branch : minor
2017-07-22 23:34:39 -03:00
Alex Szpakowski
34f25bd6c8
ESSL: always enable standard derivative functionality (dFdx, dFdy, fwidth) when available. Added 'shaderderivatives' graphics feature enum.
...
--HG--
branch : minor
2017-07-09 16:55:21 -03:00
Alex Szpakowski
54a049e206
Restructured internal code for graphics capabilities. Added love.graphics.getTextureTypes which returns a table of Texture Type to boolean supported fields.
...
--HG--
branch : minor
2017-06-27 22:26:30 -03:00
Alex Szpakowski
45de7cebb6
Cleaned up some graphics code.
...
--HG--
branch : minor
2017-06-10 15:09:33 -03:00
Alex Szpakowski
9fe81ad922
Allow a temporary/internal depth buffer to be used when a Canvas is active, similar to how temporary stencil buffers are allowed.
...
Syntax is setCanvas{canvas [, depth=true, stencil=true]} or setCanvas{canvas, depthstencil=true}.
--HG--
branch : minor
2017-06-10 14:25:22 -03:00
Alex Szpakowski
e03c763215
Fix love.graphics.drawLayer.
...
--HG--
branch : minor
2017-05-20 15:37:29 -03:00
Alex Szpakowski
ac697ddb0f
Clean up love’s internal Vector code a bit, and rename it to Vector2 so it’s more obvious what it is.
...
--HG--
branch : minor
2017-05-16 22:07:01 -03:00
Alex Szpakowski
b019a4a64c
Cleaned up texture VRAM usage tracking.
...
--HG--
branch : minor
2017-05-06 23:56:10 -03:00
Alex Szpakowski
621fb24ba1
Require stencil=true to be specified in setCanvas if stenciling is used while a Canvas is active and there is no custom stencil buffer.
...
--HG--
branch : minor
2017-04-29 21:29:37 -03:00
Alex Szpakowski
fd64999748
Allow calling love.graphics.drawLayer(arraycanvas, layer) when rendering to a different layer of the same Canvas.
...
--HG--
branch : minor
2017-04-29 13:35:07 -03:00
Alex Szpakowski
353852ca24
Fix the default mipmap filter of mipmapped Canvases (thanks Shell32).
...
--HG--
branch : minor
2017-04-28 21:36:50 -03:00