Sasha Szpakowski
e20f018272
Change the 'viewformats' texture setting field to be a list of pixel formats.
...
Replace Texture:hasViewFormats with Texture:getViewFormats.
2024-02-24 23:42:28 -04:00
Sasha Szpakowski
42812ad521
Add texture views. Fixes #2022 .
...
Add love.graphics.newTextureView(basetexture, viewsettings). Requires GLSL4 support.
Add 'viewformats' boolean setting to texture setting tables.
Add Texture:hasViewFormats.
The viewsettings table has the following fields:
format = nil, -- set this to a pixel format to override the base format. It must have the same number of bytes per pixel as the original, and the 'viewformats' setting on the original texture must be true for this to work. Cannot be used for compressed or depth/stencil textures.
type = nil, -- set this to a texture type to override the base texture type. 2d base textures can make [2d, array] views. [array, cube] base textures can make [2d, array, cube] views.
mipmapstart = nil, -- set to a number to use a less detailed mipmap level as a base.
mipmapcount = nil, -- set to a number to override the number of mipmaps in the texture view.
layerstart = nil, -- set to a number to use a specific layer or cube face as a base.
layers = nil, -- set to a number to override the number of layers in an array texture view.
2024-02-24 15:45:43 -04:00
Sasha Szpakowski
d880c48502
Clean up some internal texture data upload parameters.
2024-02-17 14:10:38 -04:00
Sasha Szpakowski
25e008e20c
metal: remove a redundant memcpy when uploading pixels to a texture.
2024-02-10 23:17:10 -04:00
Sasha Szpakowski
64a30f177f
Merge branch 'main' into 12.0-development
2024-02-10 12:24:48 -04:00
Sasha Szpakowski
0523aa6f8f
metal: check for depth compare mode support before setting it on a texture.
2024-01-01 15:41:31 -04:00
Sasha Szpakowski
059cab0364
metal: implement buffer/texture debug names.
2023-12-13 20:27:58 -04:00
Sasha Szpakowski
343d192f10
Compressed texture formats have explicit sRGB variants
2023-10-14 15:01:01 -03:00
Sasha Szpakowski
f6cdbdc868
Merge branch 'main' into 12.0-development
2022-12-31 22:46:34 -04: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
bc1c38d361
improve logic for detecting when Texture:generateMipmaps is supported
2022-02-19 16:34:52 -04:00
Alex Szpakowski
f4a85f42df
metal: Apple Silicon macs also support rgba4 / rgb5a1 / rgb565.
2022-01-24 21:19:40 -04:00
Alex Szpakowski
a5351e5046
metal: improve detection of rgba32f format filter and MSAA support.
2022-01-23 11:28:09 -04:00
Alex Szpakowski
1cf0073cf4
metal: use a fallback for fonts when luminance-alpha isn't supported.
2022-01-22 14:41:42 -04:00
Alex Szpakowski
3ecae61189
metal: improve texture initialization.
2022-01-16 14:18:34 -04:00
Alex Szpakowski
44d87ff7ce
metal: fix textures not being tagged with compute-write flags.
2022-01-16 13:47:18 -04:00
Alex Szpakowski
4e1c4a6afe
metal: some fixes for MSAA
2022-01-16 13:44:29 -04:00
Alex Szpakowski
cf57c3eedf
update copyright year for metal files
2022-01-05 21:13:53 -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
759937a458
metal: fix depth24stencil8 fallback on macOS
2021-12-24 22:20:25 -04:00
Alex Szpakowski
dab174b120
metal: fix a couple compiler warnings
2021-12-24 18:04:11 -04:00
Alex Szpakowski
2ec9f88f7a
metal: more robust render pass handling.
...
Initial implementation of captureScreenshot.
Fix getStats().shaderswitches.
Fix getStats().drawcalls.
2021-04-04 23:47:58 -03:00
Alex Szpakowski
2d2918a254
Merge branch '12.0-development' into metal
2021-03-26 21:42:08 -03:00
Alex Szpakowski
e1d5f3b010
metal: fix Texture:setWrap/setFilter
2021-03-25 20:41:05 -03:00
Alex Szpakowski
4639e7330e
metal: initial implementation of Texture:newImageData.
2021-03-25 20:36:31 -03:00
Alex Szpakowski
20a92a4106
Merge branch '12.0-development' into metal
2020-12-22 22:37:17 -04: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
ceb1e4459b
metal: initial sampler cache implementation
2020-04-26 09:09:26 -03:00
Alex Szpakowski
acc4064a6c
metal: implement stubs for missing methods
2020-04-22 23:18:00 -03:00
Alex Szpakowski
7c1a344c23
Minor cleanup of some metal helper code
2020-02-28 23:00:07 -04:00
Alex Szpakowski
455b0c2c6b
metal: more work on MSAA textures
2020-02-15 16:00:55 -04:00
Alex Szpakowski
64b38459cf
Update metal backend for Image+Canvas->Texture changes
2020-02-15 15:44:23 -04:00