Aaron Hill
423d7e4cc4
render: Treat `update_texture` with invalid `BitmapHandle` as an error
...
This should be impossible to trigger from ActionScript, so
we shouldn't ignore it.
2022-09-16 22:03:15 -06:00
Daniel Jacobs
cf721d45f9
Revert "web: Bump `wasm-bindgen` to 0.2.83"
...
This reverts commit 084b252030
.
2022-09-15 22:33:07 +02:00
relrelb
084b252030
web: Bump `wasm-bindgen` to 0.2.83
...
As usual, also bump its helper crates (`js-sys`, `web-sys` and
`wasm-bindgen-futures`) to the latest versions.
Due to https://github.com/rustwasm/wasm-bindgen/pull/3031 , use the
`serde-wasm-bindgen` crate as a replacement to the deprecated
`JsValue::from_serde` function.
2022-09-14 09:03:31 +03:00
Nathan Adams
92044c9c02
wgpu: Merge bitmap bind groups 2 and 3
2022-09-11 09:07:53 +02:00
Nathan Adams
d867a370fc
wgpu: Cache direct bitmap draw bind groups (smoothing vs not)
2022-09-11 09:07:53 +02:00
Nathan Adams
57ddb6bdcb
wgpu: Refactor out bitmap bind group from drawtype
2022-09-11 09:07:53 +02:00
Nathan Adams
dd7f23f319
wgpu: Add documentation for pipeline binding groups
2022-09-11 09:07:53 +02:00
Nathan Adams
2d48d78990
wgpu: Removed redundant _pipeline suffix in Pipelines
2022-09-11 09:07:53 +02:00
Nathan Adams
a38cadfd39
wgpu: Cache shape pipelines per texture format & msaa
2022-09-11 09:07:53 +02:00
Nathan Adams
a8ff81ee38
wgpu: Make vertex buffer descriptions const
2022-09-11 09:07:53 +02:00
Aaron Hill
b62c17577b
wgpu: Switch to arena
2022-09-11 09:07:53 +02:00
Nathan Adams
c63aa2cfc8
wgpu: Moved Draw creation outside of backend
2022-09-11 09:07:53 +02:00
Nathan Adams
b2e02db72f
wgpu: Extracted a create_texture_transforms method
2022-09-11 09:07:53 +02:00
Nathan Adams
e7e0905647
wgpu: Moved Mesh, Draw and DrawType to their own file, and code that constructs a DrawType there too
2022-09-11 09:07:53 +02:00
Nathan Adams
f36bcac742
wgpu: Move actual frame rendering to Surface, deduplicates some code
2022-09-11 09:07:53 +02:00
Nathan Adams
b2ecd39648
wgpu: Enable MSAA for offscreen textures
2022-09-11 09:07:53 +02:00
Nathan Adams
69aba474e1
wgpu: Split off srgb and msaa code from backend to a Surface enum
2022-09-11 09:07:53 +02:00
Nathan Adams
03f7719c49
wgpu: Move quad into its own structure under Descriptors
2022-09-11 09:07:53 +02:00
Nathan Adams
a8e8b01a6c
wgpu: Use a static buffer for srgb transform uniforms, reworked it from Frame
2022-09-11 09:07:53 +02:00
Nathan Adams
a1d1da5d25
wgpu: Simplify stencil usage from Frame's perspective
2022-09-11 09:07:53 +02:00
Nathan Adams
794b30e10e
wgpu: Split draw_x into prep_x and draw
2022-09-11 09:07:53 +02:00
Nathan Adams
91f3230a45
wgpu: Split off Frame into CommandRenderer and Frame - command renderer translates commands into draw calls on frame
2022-09-11 09:07:53 +02:00
Nathan Adams
22ba32b785
wgpu: Remove target from Frame
2022-09-11 09:07:53 +02:00
Nathan Adams
8616c898cc
wgpu: Remove globals from Frame
2022-09-11 09:07:53 +02:00
Nathan Adams
14ecc98780
wgpu: Pass quad vbo/ibo as slices
2022-09-11 09:07:53 +02:00
Nathan Adams
09172c8b12
wgpu: Simplified rendering code down to 'apply transform, draw x'
2022-09-11 09:07:53 +02:00
Nathan Adams
5f671c0018
wgpu: Fixed panic if rendering to a texture smaller than 1x1
2022-09-11 09:07:53 +02:00
Nathan Adams
d5ab88f40d
wgpu: Make buffer blocks Pin<Box<Block>>
2022-09-11 09:07:53 +02:00
Nathan Adams
08471c6fb7
wgpu: Don't keep setting globals bind group, it only needs to be set once
2022-09-11 09:07:53 +02:00
Nathan Adams
41239039eb
wgpu: Moved all bind group layouts into their own struct
2022-09-11 09:07:53 +02:00
Nathan Adams
f33e6904cd
wgpu: Moved bind layouts out of Pipelines, they don't change
2022-09-11 09:07:53 +02:00
Nathan Adams
39e1224bda
wgpu: Don't recompile shaders for each Pipelines
2022-09-11 09:07:53 +02:00
Nathan Adams
7e013183a7
wgpu: Removed Descriptors::pipelines, we don't need 3 pipelines
2022-09-11 09:07:53 +02:00
Nathan Adams
8b6c6f8a62
wgpu: Removed DescriptorsTargetData::surface_format and frame_buffer_format as they aren't needed to be target specific
2022-09-11 09:07:53 +02:00
Nathan Adams
6755e1ccbd
wgpu: Pass the pipelines to frame instead of deciding based on a macro
2022-09-11 09:07:53 +02:00
Nathan Adams
13657e16ca
wgpu: Make render_offscreen use its own Frame instead of making a whole new renderer backend
2022-09-11 09:07:53 +02:00
Nathan Adams
697369536c
wgpu: Split off code that actually renders a frame
2022-09-11 09:07:53 +02:00
Nathan Adams
267ea0fd13
render: Introduced render commands, moved to a command list model instead of direct rendering
2022-09-11 09:07:53 +02:00
Nathan Adams
c7f420dde5
wgpu: Moved WgpuRenderBackend into backend.rs
2022-09-11 09:07:53 +02:00
Nathan Adams
70d96654d7
wgpu: Move descriptors out into its own file
2022-09-11 09:07:53 +02:00
Aaron Hill
2f81f5814d
render: Add `premultiplied_alpha` parameter for image capture
...
When rendering offscreen, we want the resulting image to use
premultiplied alpha, since the image will be stored in a texture.
However, when capturing an image in the exporter or test framework,
we want to use straight alpha, so that the resulting image can
be saved as a PNG.
Previously, we incorrectly used straight alpha everywhere, resulting
in incorrect output when using BitmapData.draw with transparency.
2022-09-09 15:46:48 -07:00
Aaron Hill
93607aa86e
avm2: Implement `BitmapData.draw` for `wgpu` backend ( #7254 )
...
* avm2: Implement `BitmapData.draw` for `wgpu` backend
This method requires us to have the ability to render directly to a
texture. Fortunately, the `wgpu` backend already supports this in
the form of `TextureTarget`. However, the rendering code required
some refactoring in order to avoid creating duplicate `wgpu` resources.
The current implementation blocks on copying the pixels back
from the GPU to the CPU, so that we can immediately set them in
the Ruffle `BitmapData`. This is likely very inefficient, but will
work for a first implementation.
In the future, we could explore allowing the CPU image data and GPU
texture to be out of sync, and only synchronized when explicitly
necessary (e.g. on `getPixel` or `setPixel` calls).
* Rename `with_offscreen_backend` to `render_offscreen` and use Bitmap
* Don't panic when backend doesn't implement `render_offscreen`
2022-09-06 16:38:48 -05:00
dependabot[bot]
aacc3c231a
build(deps): bump clap from 3.2.18 to 3.2.20
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.18 to 3.2.20.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/v3.2.20/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.2.18...v3.2.20 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-09-05 14:47:03 -07:00
Nathan Adams
33b35cc29b
wgpu: Use lowest limits and then bump up only what we need - fixes #5566 , fixes #7256
2022-09-04 18:55:13 -07:00
Nathan Adams
5585772d54
wgpu: Don't make pipelines for blend modes we don't support
2022-09-04 18:55:13 -07:00
Nathan Adams
03744d46f1
web: Rename wgpu feature to webgpu, add wgpu-webgl feature to use webgl through wgpu
2022-09-04 18:55:13 -07:00
Nathan Adams
0ac2a3f361
wgpu: Try lower limits when full aren't available, and use uniforms for gradients if storage won't work
2022-09-04 18:55:13 -07:00
dependabot[bot]
33cc87ce27
build(deps): bump clap from 3.2.17 to 3.2.18
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.17 to 3.2.18.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/v3.2.18/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.2.17...v3.2.18 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-30 00:19:02 +03:00
dependabot[bot]
802de0e7d1
build(deps): bump futures from 0.3.23 to 0.3.24
...
Bumps [futures](https://github.com/rust-lang/futures-rs ) from 0.3.23 to 0.3.24.
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.23...0.3.24 )
---
updated-dependencies:
- dependency-name: futures
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-29 23:38:43 +03:00
=
17f261fc1f
wgpu: Descriptors::new is infallible, removed error path
2022-08-25 23:43:21 +02:00