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
bc1c38d361
improve logic for detecting when Texture:generateMipmaps is supported
2022-02-19 16:34:52 -04:00
Alex Szpakowski
d96e1636b1
Improve setCanvas validation of volume texture layer + mipmap values.
2022-01-16 13:00:12 -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
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
4195911680
Relax Texture:replacePixels sub-rect restriction for compressed textures.
2021-12-27 12:10:37 -04:00
Alex Szpakowski
e63025b74f
Merge branch '12.0-development' into metal
2021-12-24 15:34:05 -04:00
Alex Szpakowski
a551fcd492
Initial support for writing to textures in compute shaders.
2021-08-13 14:43:03 -03:00
Alex Szpakowski
48b3a4e860
Initial support for integer format textures.
...
They can't be rendered to and ImageData can't use the formats, for now.
2021-08-12 16:38:54 -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
2d2918a254
Merge branch '12.0-development' into metal
2021-03-26 21:42:08 -03:00
Alex Szpakowski
2e2ebe95cd
Clean up some obsolete internal graphics code
2021-01-17 16:50:44 -04:00
Alex Szpakowski
5e77944dc0
refactor texture format support internals
2021-01-16 13:09:01 -04:00
Alex Szpakowski
20a92a4106
Merge branch '12.0-development' into metal
2020-12-22 22:37:17 -04:00
Alex Szpakowski
a1861a8ff4
Don't allow calling Texture:generateMipmaps on depth/stencil textures
2020-12-21 13:36:29 -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
7a50f32585
Merge branch '12.0-development' into metal
2020-07-29 18:21:19 -03:00
Alex Szpakowski
9d2dca5740
metal: nogame and error screens work.
...
- implement love.graphics.setColor
- implement default textures
- hacky implementation of default uniform data
- use texture swizzles to set up LA8 (text) texture data
- shader reflection work
2020-06-13 20:29:23 -03:00
Alex Szpakowski
2c4bfab1de
Merge branch '12.0-development' into GraphicsBuffer
2020-05-23 20:29:38 -03:00
Alex Szpakowski
9765485222
metal: partial implementation of pipeline states.
...
Add BGRA8 pixel format.
2020-05-03 12:48:43 -03:00
Alex Szpakowski
e0ff593d09
Fix love.graphics.newTexture(imagedata, {canvas=true}) not using an sRGB format when it should
2020-03-04 20:37:41 -04:00
Alex Szpakowski
7fbb68e90e
Merge branch '12.0-development' into GraphicsBuffer
2020-02-28 23:10:21 -04:00
Alex Szpakowski
9425c9224b
Rename internal batched draw code to be more clear
2020-02-27 20:08:50 -04:00
Alex Szpakowski
b1c028a4d3
Merge branch '12.0' into GraphicsBuffer
2020-02-17 16:31:02 -04:00
Alex Szpakowski
7c34345fa6
Rename new/set/getRenderTarget back to new/set/getCanvas, for now.
...
The setRenderTarget/setCanvas API will likely change before 12.0 is released, so there's no reason to rename things unnecessarily before then.
2020-02-16 19:42:11 -04:00
Alex Szpakowski
4ec9cafdea
Better error checking in the GL texture backend
2020-02-12 22:57:13 -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
12c90b3dca
Merge Image and Canvas GL backend classes into new common Texture class.
2020-02-07 20:29:21 -04:00
Alex Szpakowski
0017f9c77d
Remove a redundant internal Texture method
2020-02-04 22:15:18 -04:00
Alex Szpakowski
258129738f
Remove graphics::Canvas and graphics::Image
2020-02-04 22:06:55 -04:00
Alex Szpakowski
0304bdf450
Move getMipmapMode from Canvas to Texture
2020-02-04 19:56:19 -04:00
Alex Szpakowski
4104c136cf
Move Canvas:newImageData to Texture:newImageData
2020-02-04 19:19:37 -04:00
Alex Szpakowski
4716211c14
Move replacePixels from Image to Texture
2020-02-04 19:05:43 -04:00
Alex Szpakowski
63c5df6aa7
Begin unification of Canvases and Images.
2020-02-03 23:05:46 -04:00
Alex Szpakowski
fc0d60a96d
Move Canvas:getMSAA to Texture:getMSAA.
2020-02-03 19:26:11 -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
f24b1aa377
Move internal Slices class from Image to Texture
2020-02-02 13:50:37 -04:00
Alex Szpakowski
2572f0c7a1
Meshes expose GraphicsBuffers, part 2
2020-02-01 15:39:59 -04:00
Alex Szpakowski
ee5304ba53
Remove vertex namespace
2020-01-13 20:41:05 -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
9ab2a94037
Rename internal C++ Color struct to Color32 to help differentiate it from Colorf.
2019-09-14 23:13:40 -03:00
Alex Szpakowski
0752f27bdf
Update copyright year for 2019
2019-01-03 21:09:05 -04:00