Commit Graph

3218 Commits

Author SHA1 Message Date
Alex Szpakowski 44a434604a t.renderers/excluderenderers doesn't affect renderer order. 2022-01-05 20:52:17 -04:00
niki 81e3bed778 handle resizing correctly 2022-01-06 01:42:50 +01:00
Alex Szpakowski 674143175f metal: fix Shader:send with matrices and arrays. 2022-01-05 20:33:08 -04:00
niki b32c5f3c4e hello world triangle 2022-01-06 01:12:16 +01:00
Alex Szpakowski 5864d83c31 Add ability to configure which renderers are used by love.graphics.
- Add t.renderers and t.excluderenderers love.conf fields. They can be an array of renderer names.
- Add --renderers a,list,of,renderernames and --excluderenderers more,renderers argument options.
2022-01-04 21:29:56 -04:00
Alex Szpakowski ecbc5ca7f6 Add love.graphics.getQuadIndexBuffer.
love's pre-generated quad index buffer is useful when combined with drawShaderVertices. Note that it uses 16 bit indices so it can only draw up to 16k quads in a single call.
2022-01-03 16:22:08 -04:00
Alex Szpakowski 42e8df1489 Add a GraphicsFeature support enum for 32 bit index buffers.
Some old OpenGL ES 2 systems don't support them.
2022-01-03 16:09:38 -04:00
Alex Szpakowski ac8f5374c2 Fix a minor validation bug. 2022-01-03 14:36:22 -04:00
Alex Szpakowski 0c4be3d5e3 Add love.graphics.drawShaderVertices (name subject to change).
It draws a number of vertices, or a number of indices from an index buffer, without using any vertex data from a vertex buffer. A custom shader is required while using it.

It is useful when a custom GLSL3 vertex shader which uses love_VertexID is used to pull or compute per-vertex information from other sources.
2022-01-03 14:33:54 -04:00
Alex Szpakowski de89f5a9eb love.graphics.apply/replaceTransform can accept x,y,angle,etc. args. 2022-01-03 11:57:05 -04:00
Alex Szpakowski 91cb845f31 #pragma language glsl4 in shaders maps to GLES 3.2 instead of 3.1. 2022-01-02 14:02:55 -04:00
Alex Szpakowski 59f532fdfa Add amazon luna and google stadia enums to Joystick:getGamepadType. 2022-01-01 18:15:27 -04:00
Alex Szpakowski f88eecf482 Allow texel buffers in OpenGL ES, when supported by the system. 2022-01-01 18:06:50 -04:00
Alex Szpakowski 9709f95194 metal: fix structs in uniforms. 2022-01-01 17:41:23 -04:00
Alex Szpakowski e2c397355c metal: implement copyBufferToTexture and copyTextureToBuffer. 2022-01-01 15:48:43 -04:00
Alex Szpakowski 40aa50662a Merge branch '12.0-development' into metal 2022-01-01 15:36:57 -04:00
Alex Szpakowski e602f08c24 metal: support constant initializer values for local uniforms. 2022-01-01 15:28:42 -04:00
Alex Szpakowski 8e7fd10b6f Update copyright year for 2022 2021-12-31 18:33:40 -04:00
Alex Szpakowski 813c9d1781 Fix GL version check for arbitrary texture-to-buffer copy support.
love never creates a GL4.5 context, so we also need to check for the extension that provides the same functionality.
2021-12-30 19:25:10 -04:00
Alex Szpakowski cf0a45f601 Fix non-stream buffers uploading redundant data when a sub-range is modified.
https://love2d.org/forums/viewtopic.php?f=4&t=92458
2021-12-28 15:10:09 -04:00
Alex Szpakowski bfcf025ef7 Add 'staging' buffer data usage enum. 2021-12-28 12:49:33 -04:00
Alex Szpakowski 52101b2563 Add love.graphics.copyTextureToBuffer and copyBufferToTexture. 2021-12-28 12:46:56 -04:00
Alex Szpakowski d7bfc2ebcb Fix compile error 2021-12-27 21:31:04 -04:00
Alex Szpakowski 5b3a5e7721 Remove the need for copysource and copydest buffer usage flags. 2021-12-27 21:17:04 -04:00
Alex Szpakowski 4195911680 Relax Texture:replacePixels sub-rect restriction for compressed textures. 2021-12-27 12:10:37 -04:00
Alex Szpakowski 045f5ff0a5 Fix initializing the graphics module after a window is opened. 2021-12-26 12:34:47 -04:00
Alex Szpakowski 19feec43f9 metal: don't do auto sRGB -> P3 color conversions on the backbuffer 2021-12-25 22:31:18 -04:00
Alex Szpakowski 37ff7ef665 metal: support for depth16 on iOS 2021-12-25 14:21:59 -04:00
Alex Szpakowski 30fe00d767 metal: implement storage buffer bindings 2021-12-25 14:21:45 -04:00
Alex Szpakowski c6e4cfdc64 metal: initial love.graphics.dispatchThreadgroups implementation 2021-12-24 23:04:44 -04:00
Alex Szpakowski a03041043f metal: partial implementation of love.graphics.discard 2021-12-24 22:41:31 -04:00
Alex Szpakowski 759937a458 metal: fix depth24stencil8 fallback on macOS 2021-12-24 22:20:25 -04:00
Alex Szpakowski 2868ede191 metal: restrict to macOS 10.15+ and iOS 13+. 2021-12-24 19:22:10 -04:00
Alex Szpakowski 620dc42292 metal: fix quad drawing on older iOS devices 2021-12-24 19:13:48 -04:00
Alex Szpakowski a431e70179 metal: add internal compute encoder APIs 2021-12-24 18:56:21 -04:00
Alex Szpakowski bcd64fe537 metal: implement mesh cull modes 2021-12-24 18:46:06 -04:00
Alex Szpakowski dab174b120 metal: fix a couple compiler warnings 2021-12-24 18:04:11 -04:00
Alex Szpakowski 7eb8366b2d metal: integer texture format support. 2021-12-24 17:50:17 -04:00
Alex Szpakowski 304b569a39 metal: tag texture formats with compute write support 2021-12-24 17:45:05 -04:00
Alex Szpakowski 7a910484c3 Fix compilation 2021-12-24 16:45:23 -04:00
Alex Szpakowski 75b2ddc3c9 Fix love.graphics.clear's alpha component. 2021-12-24 16:14:06 -04:00
Alex Szpakowski 3d8117ccbb Merge branch '12.0-development' into metal 2021-12-24 15:35:18 -04:00
Alex Szpakowski e63025b74f Merge branch '12.0-development' into metal 2021-12-24 15:34:05 -04:00
Alex Szpakowski 185b53421a Fix function declaration type mismatch (didn't cause any errors). 2021-12-24 11:41:12 -04:00
Alex Szpakowski c8038f22df Merge branch 'main' into 12.0-development 2021-12-24 11:35:35 -04:00
megagrump b359311832 accept Data objects in newFileData 2021-12-13 09:20:17 +01:00
Miku AuahDark fb815edc28 Change luaL_loadbuffer chunkname with prefixes. 2021-12-12 09:23:00 +08:00
Alex Szpakowski 7e271fc53e Use SDL's rumble APIs for Joystick:setVibration, when available.
Fixes #1756
2021-12-11 11:52:42 -04:00
Alex Szpakowski ebd5f13456 Fix missing ByteData:clone and DataView:clone implementations.
Fixes #1754
2021-12-07 19:51:40 -04:00
Alex Szpakowski b54aaf65ca Fix the default error handler drawing when love.graphics is inactive.
love.graphics.isActive() is false on mobile devices when the app isn't in the foreground. On iOS there can be a few frames between when the app is backgrounded and when the OS pauses it, where it's not valid to call OpenGL functions or present the screen.
2021-12-04 11:58:00 -04:00