Alex Szpakowski
b7400892a4
Merge branch 'master' into 12.0-development
2020-12-22 19:35:06 -04:00
Alex Szpakowski
1f9d98263d
Refactor Buffer internals.
...
Allows buffers created with love.graphics.newBuffer to only allocate VRAM data. Previously they had a copy of their contents in RAM.
Also makes it easier to implement Buffers in other graphics APIs and to implement more types of Buffers in the future.
2020-12-22 19:23:02 -04:00
Alex Szpakowski
a1861a8ff4
Don't allow calling Texture:generateMipmaps on depth/stencil textures
2020-12-21 13:36:29 -04:00
Miku AuahDark
81272ba5b5
Only use pinned memory on AMD GPUs.
...
As per in Discord, for some reason Intel driver in Linux(?) expose
pinned memory extension and causes driver crash in one test case.
2020-12-15 10:25:38 +08:00
Jordan Christiansen
0fd53e2e3d
Disable GL_EXT_texture_array on OpenGL ES 2.0
...
The Nvidia Tegra 3 driver for Android (used by Ouya) erroneously claims
to support the desktop-oriented GL_EXT_texture_array extension. On
desktop GPUs using (non ES) OpenGL, the glTexImage3D and similar
functions are always present, and the GL_EXT_texture_array extension
simply adds support for texture arrays to those functions. On OpenGL ES
2.0, those functions do not exist, and GL_OES_texture_3D is required to
define them.
Calling glTexImage3D on the Tegra 3 causes a segfault. This change works
around the issue by manually setting GLAD_EXT_texture_array to 0 on
OpenGL ES 2.0 systems, which causes LÖVE to avoid codepaths that assume
that the 3D texture functions are available. It doesn't make sense for
any OpenGL ES 2.0 GPU to claim support for GL_EXT_texture_array.
Fixes #1647
2020-12-09 19:54:36 -06:00
Alex Szpakowski
e32935e0f6
Backport Canvas memory stats fix from 12.0.
...
Fixes #1642
2020-11-11 15:11:00 -04:00
Alex Szpakowski
7a18190c5c
Restructure SpriteBatch internal vertex data
2020-11-03 22:12:56 -04:00
Alex Szpakowski
5031cb5f56
Images don't hold on to RAM copies of their contents anymore
2020-11-02 18:17:07 -04:00
Alex Szpakowski
7e0c7e3a67
Fix the default mipmap filter for textures.
2020-10-26 18:25:40 -03:00
Alex Szpakowski
99875d83b3
Fix explicit texture MSAA of 1 or 0 not being treated the same as the default
2020-10-26 17:11:50 -03:00
Alex Szpakowski
e10444c21f
Move Texture:generateMipmaps error handling out of backend code
2020-10-25 23:13:50 -03:00
Alex Szpakowski
442f37e0a1
Fix a potential bug in captureScreenshot on some older systems
2020-10-25 23:00:12 -03:00
Alex Szpakowski
7934ce0a66
Handle backbuffer MSAA manually in love.graphics code
...
Previously love would use SDL APIs to make the system (WGL etc) handle it, which meant the OpenGL context had to be recreated whenever MSAA changed.
2020-10-25 22:24:07 -03:00
Alex Szpakowski
6f3e590a82
metal: more work on shader texture bindings
2020-10-24 17:58:25 -03:00
Alex Szpakowski
3b2b9ef5fd
metal: Fix a crash when deleting a stream buffer
2020-10-24 17:57:59 -03:00
Alex Szpakowski
27897b4af1
Merge branch '12.0-development' into metal
2020-10-24 00:36:33 -03:00
Alex Szpakowski
4b9c648c8b
metal: work towards shader uniform implementation.
...
Misc cleanup.
2020-10-24 00:33:02 -03:00
Alex Szpakowski
2b0f8495bf
Fix a crash in Text:set. Fixes issue #1639
2020-10-16 21:19:50 -03:00
Alex Szpakowski
d083c87d74
Update glslang
2020-10-12 17:29:08 -03:00
Alex Szpakowski
365387150e
Merge branch 'master' into 12.0-development
2020-08-09 12:25:07 -03:00
Alex Szpakowski
5f4d2f3323
Fix love.graphics.newVolumeImage when explicit mipmaps are given
...
Fixes issue #1602
2020-08-09 12:12:28 -03:00
Alex Szpakowski
aa219c0d7a
Simplify some boilerplate internal code
2020-08-02 16:00:08 -03:00
Alex Szpakowski
f168333938
Simplify Buffer APIs.
...
Remove Buffer:set/getElement, Buffer:isCPUReadable, and the cpureadable flag in newBuffer's settings parameter.
2020-08-01 21:51:37 -03:00
Alex Szpakowski
a8c879f3bf
metal: initial texel buffer implementation
2020-07-29 19:35:45 -03:00
Alex Szpakowski
2e4b1f5dd9
metal: reimplement explicit attribute locations
...
Also reimplement temporary uniform buffer hack
2020-07-29 19:15:22 -03:00
Alex Szpakowski
3ae4a0f76b
metal: post merge compilation fixes
2020-07-29 18:51:21 -03:00
Alex Szpakowski
7a50f32585
Merge branch '12.0-development' into metal
2020-07-29 18:21:19 -03:00
Alex Szpakowski
eea78884d3
metal: initial barebones texture reflection in shaders
2020-07-29 18:11:20 -03:00
Alex Szpakowski
b011487a3e
Add new texel buffer type.
...
GLSL 3+ shaders can read from texel buffers by declaring a uniform samplerBuffer variable and calling texelFetch with a 0-based index, in the shader code. All attributes in a texel buffer's format array must have the same data format (e.g. all 'floatvec4' formats).
Shader:send accepts a texel Buffer for samplerBuffer uniforms.
Added 'texelbuffer' to love.graphics.getSupported (requires GLSL 3+ and desktop OpenGL).
Added 'texelbuffersize' to love.graphics.getSystemLimits. Returns the max number of values in a texel buffer (array length multiplied by the number of attributes declared in the buffer's format array).
2020-07-28 20:44:36 -03:00
Alex Szpakowski
3c65d5ae41
love.graphics.newIndexBuffer uses 0-based index values.
...
It can't be consistent with other buffer types or Buffer methods if it's 1-based.
2020-07-27 17:35:16 -03:00
Alex Szpakowski
de370beb68
Remove deprecation notices from newImage for now
2020-07-26 16:59:09 -03:00
Alex Szpakowski
2d7267a428
Add Buffer:isBufferType and Buffer:isCPUReadable.
2020-07-26 16:43:40 -03:00
Alex Szpakowski
36b0394afc
Add love.graphics.newVertexBuffer and love.graphics.newBuffer.
2020-07-26 16:32:18 -03:00
Alex Szpakowski
d75f5df80d
Add Buffer methods
...
flush, setArrayData, setElement, getElement, getElementCount, getElementStride, getSize, getFormat
2020-07-25 19:48:54 -03:00
Alex Szpakowski
1d087cc5c2
Fix Mesh/Buffer:flush uploading more data than it needs to, sometimes.
2020-07-21 21:56:47 -03:00
Alex Szpakowski
7ad5e5a21a
Fix newMesh(format, ...). Fix Mesh:attachAttribute.
...
Deprecate the mesh argument variant of attachAttribute in favor of the buffer argument variant.
2020-07-21 21:46:45 -03:00
Alex Szpakowski
c2be89f130
Fix crashes when creating a Buffer.
2020-07-21 20:50:49 -03:00
Alex Szpakowski
77834d8e6c
Add a Data object variant of love.graphics.newIndexBuffer
2020-07-21 19:09:13 -03:00
Alex Szpakowski
3b67db4672
Add love.graphics.newIndexBuffer
2020-07-21 18:57:50 -03:00
Alex Szpakowski
834cddc34c
Add Mesh:getVertexBuffer.
2020-07-20 22:13:30 -03:00
Alex Szpakowski
e60736f5a6
Add Mesh:set/getIndexBuffer.
2020-07-20 22:10:08 -03:00
Alex Szpakowski
3f4161dd5d
Merge branch '12.0-development' into GraphicsBuffer
2020-07-20 18:13:27 -03:00
Alex Szpakowski
0c7793e195
Fix detection of #pragma language glsl3 in shaders
2020-07-19 15:41:04 -03:00
Alex Szpakowski
f848b201ae
Merge branch 'master' into 12.0-development
2020-07-18 21:29:36 -03:00
Alex Szpakowski
dde3db3006
Apply Image:replacePixels/missing text workaround to more ATI drivers
...
issue #1563
2020-07-12 18:25:55 -03:00
Alex Szpakowski
d60d8867f4
Possible workaround for an Intel driver bug with readable depth buffers
...
https://github.com/love2d/love/issues/1592
2020-07-11 17:21:26 -03:00
Alex Szpakowski
50eeed7bb1
Fix Shader:send's Data variant when a matrix layout arg is used.
...
Also add a second more consistent Data+matrix layout variant of Shader:send which matches the argument order of the table+matrix layout variant - Shader:send(name, matrixlayout, data, ...).
2020-07-10 22:52:23 -03:00
Alex Szpakowski
96b8d29a5c
Clean up code for computing smooth line vertex colors.
2020-06-28 21:58:13 -03:00
Alex Szpakowski
426798ab10
metal: fix a freeze issue with the main uniform buffer
2020-06-15 22:00:30 -03:00
Alex Szpakowski
9aa9319eb5
metal: implement depth/stencil state
2020-06-14 21:14:56 -03:00