Alex Szpakowski
433190d1df
Merge branch 'master' into 12.0-development
2021-06-06 11:43:54 -03:00
Alex Szpakowski
e9c58c8192
Work around certain buggy Vivante GPU drivers on Android
...
love2d/love-android#204
2021-04-17 15:09:21 -03:00
Alex Szpakowski
21f5ba86d3
Merge branch 'master' into 12.0-development
2021-04-07 20:33:44 -03:00
Alex Szpakowski
f89aabb0bb
Update copyright year for 2021
2021-04-04 16:14:45 -03:00
Alex Szpakowski
694d448e83
Vertex shaders can write to gl_PointSize ( fixes #1603 ).
...
If a shader uses gl_PointSize then it can only be used when drawing points. If a shader doesn't use gl_PointSize then it can't be used when drawing points.
Added 'ConstantPointSize' and 'CurrentDPIScale' built-in shader uniforms.
ConstantPointSize is in DPI-scaled points, whereas gl_PointSize is in pixels, so to get the correct default behaviour a shader needs to do gl_PointSize = ConstantPointSize * CurrentDPIScale
2021-01-23 13:47:12 -04:00
Alex Szpakowski
deff795908
Rename some internal buffer enums to better match what they do
2021-01-17 20:59:16 -04:00
Alex Szpakowski
4244e01a35
More texture format support cleanup
2021-01-17 14:48:35 -04:00
Alex Szpakowski
e2838131f2
Add love.graphics.copyBuffer.
2021-01-17 14:02:00 -04:00
Alex Szpakowski
5e77944dc0
refactor texture format support internals
2021-01-16 13:09:01 -04:00
Alex Szpakowski
50ff86bd92
Graphics Buffers can be used as Shader Storage Buffers.
2021-01-10 17:53:12 -04:00
Alex Szpakowski
65bfeedd4e
Merge branch 'master' into 12.0-development
2020-12-26 22:48:08 -04:00
Alex Szpakowski
fe23c16198
Disable gamma correction on Windows + Intel HD 2/3000 / Intel HD Graphics
...
It's completely broken there. Closes #1592
2020-12-24 20:31:33 -04:00
Alex Szpakowski
d357ceb191
Merge pull request #1648 from xordspar0/tegra-3-bug
...
Work around Ouya driver bug related to texture array support
2020-12-23 20:13:41 -04: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
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
3f4161dd5d
Merge branch '12.0-development' into GraphicsBuffer
2020-07-20 18:13:27 -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
2c4bfab1de
Merge branch '12.0-development' into GraphicsBuffer
2020-05-23 20:29:38 -03:00
Alex Szpakowski
d13e97fd83
Merge branch 'master' into 12.0-development
2020-03-15 19:25:48 -03:00
Alex Szpakowski
8fac08809a
Eliminate redundant glActiveTexture calls when shaders are used.
...
The redundant calls were introduced with the previous commit.
2020-03-15 19:24:49 -03:00
Alex Szpakowski
c5b6cc3228
Merge branch 'master' into 12.0-development
2020-03-15 19:17:04 -03:00
Alex Szpakowski
9c2454816f
Fix the active GL texture unit not always being set properly.
...
Fixes issues where texture methods wouldn't have any effect, depending on the current internal opengl state.
2020-03-15 01:29:33 -03:00
Alex Szpakowski
2828761060
Move some code from Mesh wrapper to Buffer wrapper
2020-02-22 18:58:41 -04:00
Alex Szpakowski
b1c028a4d3
Merge branch '12.0' into GraphicsBuffer
2020-02-17 16:31:02 -04:00
Alex Szpakowski
aa636381d0
Fix MSAA texture creation logic
2020-02-09 12:46:52 -04:00
Alex Szpakowski
694bc9c5b7
rename love_Canvases to love_RenderTargets in shaders.
...
More misc. renaming
2020-02-09 12:11:19 -04:00
Alex Szpakowski
453322678c
Rename internal uses of canvas to texture/render target
2020-02-08 20:40:10 -04:00
Alex Szpakowski
12c90b3dca
Merge Image and Canvas GL backend classes into new common Texture class.
2020-02-07 20:29:21 -04:00
Alex Szpakowski
63c5df6aa7
Begin unification of Canvases and Images.
2020-02-03 23:05:46 -04:00
Alex Szpakowski
b46b3ed552
Move some Canvas code to Texture, devirtualize Texture::draw.
2020-02-03 19:02:58 -04:00
Alex Szpakowski
f9248d478c
Refactor sampler state parameters for textures.
2020-02-02 22:26:28 -04:00
Alex Szpakowski
2572f0c7a1
Meshes expose GraphicsBuffers, part 2
2020-02-01 15:39:59 -04:00
Alex Szpakowski
25d9ae2ba0
Meshes expose vertex buffers, part 1
...
(compiles, but is currently half-implemented and broken)
2020-01-19 15:03:19 -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
23bc1a7aae
Add new mesh data formats: int32, uint32, [u]int8, [u]int16, snorm8, and snorm16.
...
Integer formats for vertex attributes are only supported in glsl3 shaders. They use ivec/uvec types in glsl.
--HG--
branch : minor
2020-01-11 22:24:38 -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
361cefbb05
Add new wrap mode "clampone". Pixels sampled outside of [0, 1] are white (1, 1, 1, 1).
...
--HG--
branch : minor
2019-12-27 13:57:20 -05:00
Alex Szpakowski
6c662ade41
Fix disabling blending,
...
--HG--
branch : minor
2019-12-27 13:28:15 -05:00
Alex Szpakowski
f3b52f66fe
Update the internal naming convention for pixel formats.
...
--HG--
branch : minor
2019-12-23 23:38:04 -04:00
Alex Szpakowski
3a227cea37
Merge default into minor
...
--HG--
branch : minor
2019-11-19 21:47:48 -04:00
Alex Szpakowski
6a552d5a6f
Allow Canvases to use the r16, rg16, and rgba16 pixel formats.
2019-11-18 22:45:54 -04:00
Alex Szpakowski
3435a6bcbf
Change the internal constant color from a (per-draw) vertex attribute to a uniform. Pack most built-in uniforms into a single vec4 array and update them all with a single glUniform call.
...
--HG--
branch : minor
2019-11-18 21:13:54 -04:00
Alex Szpakowski
1e0a7cad67
Fix instanced vertex attributes.
2019-10-04 19:28:55 -03:00
Alex Szpakowski
157282ec7e
Fix a typo causing mesh attribute instancing to behave weirdly.
2019-09-28 00:31:44 -03:00
Alex Szpakowski
58e26280c2
Fix detection for support of r16 and rg16 image formats on desktops.
2019-09-18 19:36:08 -03: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