niki
197dfb9738
start implementing vulkan Shader type
2022-02-06 22:56:24 +01:00
niki
4692a0490c
basic functionality for indexed draw in vulkan
2022-02-06 02:11:20 +01:00
niki
7d680838b6
restructure to not hardcore draw vk commands
2022-02-05 20:44:36 +01:00
niki
f39d01e940
Merge branch 'vulkan' of https://github.com/nikeinikei/love into vulkan
2022-02-05 01:53:05 +01:00
niki
8694655edd
use shaderc instead of glslang to compile shader
2022-02-04 23:48:36 +01:00
niki
7b8fcfb919
fix vulkan::StreamBuffer::unmap
2022-02-04 23:48:36 +01:00
niki
4e583c8cf8
make vulkan::ShaderStage non abstract
2022-02-04 23:48:36 +01:00
niki
1267f2a7bb
make vulkan::Shder non abstract
2022-02-04 23:48:36 +01:00
niki
4d7fe75001
add vulkan streambuffer implementation
2022-02-04 23:48:36 +01:00
niki
d09f834bf3
first draft of vulkan buffer implementation
2022-02-04 23:48:36 +01:00
niki
b80ef89e8d
handle resizing correctly
2022-02-04 23:48:32 +01:00
niki
65074dae15
hello world triangle
2022-02-04 23:45:58 +01:00
niki
cc56c79606
use shaderc instead of glslang to compile shader
2022-02-04 20:07:27 +01:00
niki
867766dafe
fix vulkan::StreamBuffer::unmap
2022-02-04 20:03:41 +01:00
niki
9b176cbcde
make vulkan::ShaderStage non abstract
2022-02-04 20:03:23 +01:00
niki
829b33a77e
make vulkan::Shder non abstract
2022-02-04 20:01:59 +01:00
Alex Szpakowski
5549279eb1
Use metal by default on supported systems.
...
There are still issues to fix with the Metal backend, but it's more easily testable now at least.
2022-01-31 21:27:59 -04:00
Alex Szpakowski
6e49b1f901
metal: fix texture sampler changes not affecting draws using shaders.
2022-01-31 21:25:49 -04:00
Alex Szpakowski
f4a85f42df
metal: Apple Silicon macs also support rgba4 / rgb5a1 / rgb565.
2022-01-24 21:19:40 -04:00
Alex Szpakowski
b3d37e5fc2
metal: Apple Silicon macs support PVRTC/ETC/ASTC textures.
2022-01-24 21:09:33 -04:00
Alex Szpakowski
e4020e439a
metal: lowdpi on macOS uses nearest instead of linear upscaling.
...
Matches the behaviour of the OpenGL backend on macOS.
2022-01-23 12:55:06 -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
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
173fe3dab5
Add a love.graphics.setColorMask variant which accepts a single bool.
...
Remove the variant which accepted no args - it would be too confusing because setColorMask(false) does the opposite of what setColorMask(nil) used to do.
2022-01-22 23:27:53 -04:00
Alex Szpakowski
c26f6ed94f
metal: improve performance of auto depth/stencil in setCanvas.
2022-01-22 23:12:42 -04:00
Alex Szpakowski
4c3c875aa9
metal: clean up some code around render pipeline states.
2022-01-22 21:29:57 -04:00
Alex Szpakowski
87592513a2
metal: fix automatic depth/stencil with setCanvas.
2022-01-22 20:57:06 -04:00
Alex Szpakowski
8c496d60e5
metal: add a couple comments clarifying depth format fallbacks.
2022-01-22 14:51:37 -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
62de8f62c7
metal: hook up emulated 'fan' mesh draw mode.
2022-01-22 12:59:09 -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
d96e1636b1
Improve setCanvas validation of volume texture layer + mipmap values.
2022-01-16 13:00:12 -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
niki
73ee691d23
add vulkan streambuffer implementation
2022-01-16 02:58:11 +01:00
Alex Szpakowski
de35999de3
Prevent meshes with the 'fan' draw mode from using an index buffer.
2022-01-15 21:23:15 -04:00
Alex Szpakowski
5c3f391136
update metal backend for projection changes.
2022-01-12 18:31:32 -04:00
Alex Szpakowski
f93d167a47
Merge branch '12.0-development' into metal
2022-01-12 18:23:23 -04:00
Alex Szpakowski
f7f5290693
love.graphics.newMesh: DrawMode arg no longer defaults to 'fan'.
2022-01-09 14:37:33 -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
a76606e76e
metal: fix some define checks.
2022-01-06 17:34:20 -04:00
niki
aed6595ee6
first draft of vulkan buffer implementation
2022-01-06 14:55:07 +01:00
Alex Szpakowski
c373fb2e82
Fix compilation on macOS/iOS
2022-01-05 21:28:47 -04:00
Alex Szpakowski
cf57c3eedf
update copyright year for metal files
2022-01-05 21:13:53 -04:00
Alex Szpakowski
d51e012812
Merge branch '12.0-development' into metal
2022-01-05 21:12:22 -04:00