Sasha Szpakowski
6599697835
opengl: Fix love_PixelCoord and love_ScreenSize in shaders.
...
Fixes #1866 .
2022-11-25 23:27:04 -04:00
slime
919ffc08f0
remove some dead code
2022-10-10 14:35:12 -03:00
slime
99ad576668
metal: implement storage texture support for shaders.
...
Fixes #1783
2022-10-10 13:47:17 -03:00
slime
2466e49fd1
Change behaviour of love.graphics.newImage when image size is too big.
...
Previously it would load a placeholder error texture, now it causes a Lua error - which is the same behaviour as love.graphics.newCanvas.
2022-10-01 21:55:59 -03:00
niki
f4c38eb00a
Revert "vulkan: use push constants for builtin uniforms"
...
This reverts commit 47e3fc85d2 .
2022-09-15 15:55:47 +02:00
niki
47e3fc85d2
vulkan: use push constants for builtin uniforms
...
when available
2022-09-15 15:17:06 +02:00
niki
a93d153792
vulkan: adjust code styling
2022-09-10 17:40:46 +02:00
niki
4047cc9d3a
Merge remote-tracking branch 'origin/12.0-development' into vulkan
2022-08-28 03:43:08 +02:00
slime
db1bf4707c
Workaround for built-in shaders on some ES2 devices which don't support highp in pixel shaders.
2022-08-25 19:25:01 -03:00
niki
f4ece69307
Merge remote-tracking branch 'origin/12.0-development' into vulkan
2022-08-15 03:43:35 +02:00
slime
1afe5a56da
Merge branch 'main' into 12.0-development
2022-08-09 20:42:34 -03:00
slime
8495cefd3b
opengl: fix creating compressed array textures with > 1 layer.
...
Fixes #1817 .
2022-08-09 20:37:48 -03:00
Alex Szpakowski
258d2334af
OpenGL: Fix missing 'keep' and 'zero' stencil action implementations.
...
Fixes #1818
2022-07-09 09:00:58 -03:00
niki
4c415479c0
Merge remote-tracking branch 'origin/12.0-development' into vulkan
2022-06-11 01:22:29 +02:00
Alex Szpakowski
3a5c3df02f
Add sync and async texture and buffer readback APIs.
...
- Add imagedata = love.graphics.readbackTexture(texture, [slice, mipmap, x, y, w, h, [dest, destx, desty]]).
- Add readback = love.graphics.readbackTextureAsync(texture, [slice, mipmap, x, y, w, h, [dest, destx, desty]]).
- Add bytedata = love.graphics.readbackBuffer(buffer, [offset, size, [dest, destoffset]]).
- Add readback = ove.graphics.readbackBufferAsync(buffer, [offset, size, [dest, destoffset]]).
- Deprecate Texture:newImageData.
The async variants return a new GraphicsReadback object. It has the following methods:
- isComplete()
- hasError()
- wait()
- getBufferData()
- getImageData()
- update() (called automatically every frame by love, not normally needed).
Support notes:
- readbackBuffer and readbackBufferAsync require buffer copying support.
- readbackTexture with a render target (canvas) is always supported. readbackTexture with a non-render-target requires copy-texture-to-buffer support.
- readbackTextureAsync with a render target requires copy-render-target-to-buffer support. readbackTextureAsync with a non-render-target requires copy-texture-to-buffer support.
2022-05-30 21:53:55 -03:00
Alex Szpakowski
fb450b1df4
Add internal code for temporary buffers.
2022-05-30 21:46:55 -03:00
Alex Szpakowski
a533982cb4
Replace internal 'staging' buffer data type with new 'readback' type.
2022-05-30 21:43:25 -03:00
niki
75a6bc9b5d
Merge remote-tracking branch 'origin/12.0-development' into vulkan
2022-05-06 16:46:55 +02:00
niki
4e8304255d
first draft of vulkan texture impl
2022-05-06 16:06:09 +02:00
Alex Szpakowski
ee336e5393
opengl: restructure code for computing format support.
2022-04-23 13:15:58 -03:00
Alex Szpakowski
28a64c2b29
Use uint32 instead of int for some internal bit-flags.
2022-04-23 09:41:29 -03:00
Miku AuahDark
405e33a689
Use int instead of PixelFormatUsageFlags for isPixelFormatSupported.
2022-03-05 13:42:20 +08:00
Alex Szpakowski
0fa00e0bdc
love.graphics.newShader: add a compile options table parameter.
...
The only field currently read from the table is 'defines', which can contain either an array of define names, or name-value pairs.
For example: newShader(file, {defines={"MYFEATURE_ENABLED", MYSETTING=1}})
Fixes #1577
2022-02-20 12:23:41 -04:00
Alex Szpakowski
6dbb7fa5de
Add love.graphics.setStencilMode. Remove old stencil API.
...
- Add setStencilMode(drawaction, comparemode, value = 0, readmask = 0xFF, writemask = 0xFF).
- Add getStencilMode.
- Remove love.graphics.stencil.
- Remove love.graphics.set/getStencilTest.
Note that the new setStencilMode API does not clear the stencil buffer, and does not turn off color writes (it can still be done manually), unlike love.graphics.stencil.
Fixes #1161 .
Fixes #1251 .
2022-01-22 23:36:07 -04:00
Alex Szpakowski
87592513a2
metal: fix automatic depth/stencil with setCanvas.
2022-01-22 20:57:06 -04:00
Alex Szpakowski
f78db47d0e
opengl: allow glTexStorage on Android devices.
2022-01-16 12:00:16 -04:00
Alex Szpakowski
a7c4e56a41
Merge branch 'main' into 12.0-development
2022-01-16 11:58:07 -04:00
Alex Szpakowski
65667c0f18
Fix sRGB texture internal formats in OpenGL ES 3.
2022-01-16 10:30:56 -04:00
Alex Szpakowski
4ca3535cd2
Metal: fix clamp-to-one texture wrap mode detection.
2022-01-15 23:31:07 -04:00
Alex Szpakowski
f93d167a47
Merge branch '12.0-development' into metal
2022-01-12 18:23:23 -04:00
Alex Szpakowski
ff83ee6a9c
Add basic ortho and perspective projection APIs to love.graphics.
...
- Added love.graphics.setOrthoProjection.
- Added love.graphics.setPerspectiveProjection.
- Added love.graphics.resetProjection.
Note that the projection is reset whenever the canvas changes.
2022-01-08 22:56:21 -04:00
Alex Szpakowski
cdafe5a931
opengl: explicitly don't support BGRA pixel formats.
...
They're only used internally, by the metal backend.
2022-01-06 17:53:32 -04:00
Alex Szpakowski
d51e012812
Merge branch '12.0-development' into metal
2022-01-05 21:12:22 -04:00
Alex Szpakowski
7f3538d2ba
Merge branch 'main' into 12.0-development
2022-01-05 21:10:27 -04: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
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
f88eecf482
Allow texel buffers in OpenGL ES, when supported by the system.
2022-01-01 18:06:50 -04:00
Alex Szpakowski
40aa50662a
Merge branch '12.0-development' into metal
2022-01-01 15:36:57 -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
7a910484c3
Fix compilation
2021-12-24 16:45:23 -04:00