relrelb
e1d01b0a5e
swf: Extract `Rectangle` to a separate file
...
And make it generic, as a first step towards making it a general-purpose
data structure for the whole codebase. Some potential replacements are:
* `BoundingBox` in `render/src/bounding_box.rs`.
* `BoxBounds` in `core/src/html/dimensions.rs`.
* Parameters to a bunch of `BitmapData` methods in
`core/src/bitmap/bitmap_data.rs`.
2022-09-25 10:37:56 +03:00
relrelb
b5084eef25
Revert "web: Bump `wasm-bindgen` to 0.2.83"
...
This reverts commit 1954f6162f
.
2022-09-24 09:52:25 +03:00
relrelb
1954f6162f
web: Bump `wasm-bindgen` to 0.2.83
...
This reverts commit cf721d45f9
and restores
commit 084b252030
, this time without updating
`web-sys`, due to being coupled to `wgpu`.
2022-09-23 17:23:35 +03:00
relrelb
e7643c731b
core: `ColorTransform` cleanup
...
Main changes:
* Merge `ColorTransformParams` into `ColorTransformObject`, as it's only relevant for AVM1.
* Make `BitmapData::color_transform` work with a generic `ColorTransform`, which uses fixed-point
arithmetic.
Note that Ruffle still calculates color transforms slightly different from Flash. This is probably
caused by inaccuracy of the current `ColorTransformObject` to `ColorTransform` conversion and/or the
`ColorTransform` application logic itself. Since this requires further research, it'll be fixed in a
future PR.
2022-09-23 11:10:12 +03:00
relrelb
c31e9e2b11
render: Random cleanups
...
Avoid some `Vec::with_capacity` and de-duplicate code.
2022-09-22 03:00:02 +03:00
relrelb
9d4ab37ef6
core: Replace consecutive `push`es with `extend`
...
This should be slightly more efficient.
2022-09-22 03:00:02 +03:00
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
Aaron Hill
1d6b3b6f57
chore: Fix Clippy lints and allow `clippy::bool_to_int_with_if`
...
In several cases, the current code seems preferable to the
code required by `clippy::bool_to_int_with_if`. Let's suppress
this for now to get the build passing, and decide later if this
is something that we want to enable.
2022-09-11 13:31:46 +02: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
relrelb
ca701c4aeb
webgl: Remove `Texture` wrapper
...
`width` and `height` are already stored in `Bitmap`, so simply use
a `WebGlTexture` directly.
2022-09-08 21:04:02 -05:00
relrelb
e0aba46bb2
chore: Remove unused `image` dependency
...
This basically reverts #7254 for all `.toml` files, except for `wgpu`
where it's actually needed on both desktop and web.
2022-09-07 13:09:29 -07:00