Mike Welsh
89cb1212ad
render: Disable most blend modes
...
Avoid blend modes except ADD and SUBTRACT until they can be
implemented properly.
2022-08-19 14:59:08 -07:00
Aaron Hill
8a1e297e26
wgpu: Convert from premultiplied to straight alpha when capturing image
...
The captured WGPU texture uses premultiplied alpha.
This image gets saved as a PNG, so it should use straight alpha.
Note that all of our current image tests have 'alpha = 1.0' for all
of the pixels, so this currently has no effect.
2022-08-19 13:35:07 -07:00
Mike Welsh
a6b70e60ea
wgpu: Stub out more blend modes
2022-08-18 16:38:17 -07:00
Aaron Hill
f7205a02a9
render: Add BlendMode infrastructure and implement BlendMode.ADD
...
Each render backend keeps track of a stack of BlenModes,
which are pushed and popped by 'core' as we render objects
in the displaay tree. For now, I've just implemented BlendMode.ADD,
which maps directly onto blend mode supported by each backend.
All other blend modes (besides 'NORMAL') will produce a warning
when we try to render using them. This may produce a very large amount
of log output, but it's simpler than emitting each warning only once,
and will help to point developers in the right direction when they
get otherwise inexplicable rendering issues (due to a blend mode
not being implemented).
The wgpu implementation is by far the most complicated, as we need
to construct a `RenderPipeline` for each possible
`(BlendMode, MaskState)`. I haven't been able to find any documentation
about the maximum supported number of (simultaneous) WebGPU render
pipelines - if this becomes an issue, we may need to register them
on-demand when a particular blend mode is requested.
2022-08-18 16:38:17 -07:00
dependabot[bot]
82716d9be3
build(deps): bump bytemuck from 1.11.0 to 1.12.0
...
Bumps [bytemuck](https://github.com/Lokathor/bytemuck ) from 1.11.0 to 1.12.0.
- [Release notes](https://github.com/Lokathor/bytemuck/releases )
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md )
- [Commits](https://github.com/Lokathor/bytemuck/compare/v1.11.0...v1.12.0 )
---
updated-dependencies:
- dependency-name: bytemuck
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-16 01:39:03 +03:00
dependabot[bot]
7ffe92a36a
build(deps): bump clap from 3.2.16 to 3.2.17
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.16 to 3.2.17.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/v3.2.17/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.2.16...v3.2.17 )
---
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-16 00:30:12 +03:00
dependabot[bot]
ad2b1bbd24
build(deps): bump futures from 0.3.21 to 0.3.23
...
Bumps [futures](https://github.com/rust-lang/futures-rs ) from 0.3.21 to 0.3.23.
- [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.21...0.3.23 )
---
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-15 23:37:47 +03:00
Nathan Adams
c4488fc883
render: Removed common_tess and moved tessellator to render
2022-08-14 18:38:14 -07:00
Nathan Adams
e1f38b26c0
render: Removed ruffle_core dep from all renderers
2022-08-14 18:38:14 -07:00
Nathan Adams
824b4aa8d1
render: Moved render backend from core to render
2022-08-14 18:38:14 -07:00
Nathan Adams
f088d8ac3a
render: Moved color_transform from core to render
2022-08-14 18:38:14 -07:00
Nathan Adams
35082b687f
render: Moved shape_utils from core to render
2022-08-14 18:38:14 -07:00
Nathan Adams
91a7047ebb
render: Moved Matrix from core to render
2022-08-14 18:38:14 -07:00
Nathan Adams
bc0c7cbccb
render: Made new render crate, moved Bitmap stuff to it
2022-08-14 18:38:14 -07:00
Nathan Adams
cebe11ee38
wgpu: Avoid panics when attempting to create a texture larger than the device supports
2022-08-13 02:35:30 -07:00
Nathan Adams
3d235ac58f
wgpu: Make descriptors an Arc
2022-08-09 23:19:42 +02:00
Nathan Adams
08de63afb2
wgpu: Store Uniforms Buffer outside of Descriptor, so Descriptor can be immutable once again
2022-08-09 23:19:42 +02:00
Nathan Adams
9b33a18c7c
wgpu: Store Globals outside of Descriptor, so Descriptor can be immutable once again
2022-08-09 23:19:42 +02:00
relrelb
761759c4b3
wgpu: Pull out more code to `mask_render_state`
2022-08-07 10:18:48 +03:00
dependabot[bot]
d0535f4cb8
build(deps): bump clap from 3.2.15 to 3.2.16
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.15 to 3.2.16.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.2.15...v3.2.16 )
---
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-02 23:06:07 +03:00
dependabot[bot]
bb96025800
build(deps): bump enum-map from 2.4.0 to 2.4.1
...
Bumps [enum-map](https://github.com/xfix/enum-map ) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/xfix/enum-map/releases )
- [Changelog](https://github.com/xfix/enum-map/blob/master/CHANGELOG.md )
- [Commits](https://github.com/xfix/enum-map/compare/v2.4.0...v2.4.1 )
---
updated-dependencies:
- dependency-name: enum-map
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-08-02 20:34:41 +03:00
Mike Welsh
8c4dcf29ee
web: Rollback to web-sys 0.3.58
2022-07-30 19:07:39 +02:00
relrelb
286dccc274
wgpu: Introduce `create_shape_pipeline`
...
It is essentially a unification of `create_color_pipeline`, `create_bitmap_pipeline`
and `create_gradient_pipeline`.
2022-07-29 11:00:48 -07:00
relrelb
79f36964b4
web: Bump wasm-bindgen to 0.2.82
...
As usual, also bump its helper crates (`js-sys`, `web-sys` and
`wasm-bindgen-futures`) to the latest versions.
2022-07-29 09:40:14 -07:00
dependabot[bot]
df07f610e7
build(deps): bump clap from 3.2.14 to 3.2.15
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.14 to 3.2.15.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/v3.2.15/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.2.14...v3.2.15 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-25 23:35:39 +03:00
relrelb
115f15806e
chore: Fix `needless_borrow` clippy lints
...
Though https://github.com/rust-lang/rust-clippy/pull/8355 has been
merged, it seems to still report false-positives on nightly channel.
For now just fix the instances reported by stable clippy, and keep
`needless_borrow` allowed.
2022-07-08 14:14:30 +03:00
dependabot[bot]
cfe3d37905
build(deps): bump bytemuck from 1.9.1 to 1.10.0
...
Bumps [bytemuck](https://github.com/Lokathor/bytemuck ) from 1.9.1 to 1.10.0.
- [Release notes](https://github.com/Lokathor/bytemuck/releases )
- [Changelog](https://github.com/Lokathor/bytemuck/blob/main/changelog.md )
- [Commits](https://github.com/Lokathor/bytemuck/compare/v1.9.1...v1.10.0 )
---
updated-dependencies:
- dependency-name: bytemuck
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-07-04 23:55:22 +03:00
Mike Welsh
d3c64d4eb7
webgl/wgpu: Omit strokes when drawing a mask stencil
...
Adjust `common_tess` to add an additional `mask_index_count` to
draws. This is used to not render strokes when drawing a shape as
a mask stencil.
Fixes #7027 .
2022-07-02 16:57:53 -07:00
Mike Welsh
b39d54de2c
wgpu: Update exporter for wgpu 0.13
2022-07-02 16:44:37 -07:00
Mike Welsh
cb70d6e612
wgpu: Prefer linear surface formats
...
wgpu 0.13 added `Surface::get_supported_formats`, so we can check
if a non-sRGB surface format is supported on the current platform.
Because Flash colors and blending are in sRGB space, we want a
linear surface when possible to prevent the colors from being
fiddled with by the GPU.
2022-07-02 16:44:37 -07:00
relrelb
65be2adc63
wgpu: Bump to `0.13.0`
...
Based on the work in #6717 , plus additional adaptions mentioned in
https://github.com/gfx-rs/wgpu/blob/master/CHANGELOG.md#wgpu-013-2022-06-30 ,
and more not-mentioned but required changes.
Also bump `wasm-bindgen` to `0.2.81` (along with its helper crates), as
required by the new `wgpu` version.
Note that I don't fully understand some of the required changes, notably:
* `wgpu::PresentMode::Mailbox` no longer works on my machine (Windows 11) -
The `wgpu` documentation says that `wgpu::PresentMode::Fifo` is the
only guaranteed to be supported, so I switched over to it instead.
* `self.staging_belt.recall()` doesn't return a `Future` anymore -
I assume it became synchronous so I simply removed the `executor`
from there.
2022-07-02 16:44:37 -07:00
Aaron Hill
a79aa08f08
core: Free render backend resources on `BitmapData.dispose`
...
Currently, all three render backends hold on texture-related
resources indefinitely (`register_bitmap` pushes to a `Vec`,
and never removes anything). As a result, the resources used
by the render backend (which may include GPU memory) will grow
over time, even if the corresponding `BitmapData` has been deallocated.
This commit adds a new `unregister_bitmap` method, which is called from
`BitmapData.dispose`. All render backs are changed to now use an
`FnvHashMap<BitmapHandle, _>` instead of a `Vec`, allowing us to
remove individual entries.
Currently, we only call `unregister_bitmap in response to
`BitmapData.dispose` - when `BitmapData` is freed by the
garbage collector, `unregister_bitmap` is *not* called.
This will be addressed in a future PR.
2022-06-29 15:16:43 -07:00
dependabot[bot]
06d9a96b4a
build(deps): bump clap from 3.2.1 to 3.2.2
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.2.1 to 3.2.2.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v3.2.1...v3.2.2 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-21 09:54:39 +03:00
dependabot[bot]
4fb6afd993
build(deps): bump enum-map from 2.3.0 to 2.4.0
...
Bumps [enum-map](https://github.com/xfix/enum-map ) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/xfix/enum-map/releases )
- [Changelog](https://github.com/xfix/enum-map/blob/master/CHANGELOG.md )
- [Commits](https://github.com/xfix/enum-map/compare/v2.3.0...v2.4.0 )
---
updated-dependencies:
- dependency-name: enum-map
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-21 08:53:40 +03:00
dependabot[bot]
a3f5fda85d
build(deps): bump clap from 3.1.18 to 3.2.1
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.1.18 to 3.2.1.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.1.18...clap_complete-v3.2.1 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-06-17 07:58:21 +03:00
relrelb
53ef80f514
render: Introduce `RenderBackend::register_bitmap`
...
Since all `RenderBackend::register_bitmap_*` implementations are
identical now, move them to the default implementation of `RenderBackend`.
Also, turn `RenderBackend::register_bitmap_raw` into `RenderBackend::register_bitmap`,
which accepts a single `Bitmap` parameter.
2022-06-02 15:27:29 -07:00
dependabot[bot]
e4ef3c6406
build(deps): bump enum-map from 2.2.0 to 2.3.0
...
Bumps [enum-map](https://github.com/xfix/enum-map ) from 2.2.0 to 2.3.0.
- [Release notes](https://github.com/xfix/enum-map/releases )
- [Changelog](https://github.com/xfix/enum-map/blob/master/CHANGELOG.md )
- [Commits](https://github.com/xfix/enum-map/commits/v2.3.0 )
---
updated-dependencies:
- dependency-name: enum-map
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 23:36:14 +03:00
Aaron Hill
811af340c3
render: Fix swapped 'width' and 'height' in wgpu `register_bitmap_raw`
...
These arguments were being passed in the wrong order, leading to a crash
when the width and height are not equal.
2022-05-25 21:56:34 +03:00
Mike Welsh
32bf7e1412
chore: Appease clippy
2022-05-22 02:34:18 -07:00
dependabot[bot]
5a50f4cec1
build(deps): bump enum-map from 2.1.0 to 2.2.0
...
Bumps [enum-map](https://gitlab.com/KonradBorowski/enum-map ) from 2.1.0 to 2.2.0.
- [Release notes](https://gitlab.com/KonradBorowski/enum-map/tags )
- [Changelog](https://gitlab.com/KonradBorowski/enum-map/blob/master/CHANGELOG.md )
- [Commits](https://gitlab.com/KonradBorowski/enum-map/commits/master )
---
updated-dependencies:
- dependency-name: enum-map
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-05-21 23:04:43 -07:00
Mike Welsh
48f7ff5f4d
core: Add `Bitmap::to_rgba`
2022-05-19 10:43:54 -07:00
Mike Welsh
e710f3fa0e
core: Clean up `render::Bitmap`
...
* Make `BitmapFormat` a fieldless enum and move `data` to its own
field for ease of use.
* Make `Bitmap` fields private.
2022-05-19 10:43:54 -07:00
Mike Welsh
6615ed17f9
core: Verify bitmap length after decoding
...
Guarantee bitmap data after decoding has the expected length for
the given width+height+format. This eases the burden from backends
to worry about this. Pad or truncate the data if it doesn't have
the expected size.
2022-05-19 10:43:54 -07:00
dependabot[bot]
27da91b7a0
build(deps): bump clap from 3.1.17 to 3.1.18
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.1.17 to 3.1.18.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.1.17...v3.1.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-05-16 13:54:02 -07:00
Mike Welsh
121c2577b4
wgpu: Clamp alpha in shaders ( fix #6954 )
2022-05-12 14:50:25 -07:00
dependabot[bot]
a853b897ca
build(deps): bump clap from 3.1.15 to 3.1.17
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.1.15 to 3.1.17.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.1.15...v3.1.17 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-05-09 13:45:19 -07:00
dependabot[bot]
c1bcc98668
build(deps): bump image from 0.24.1 to 0.24.2
...
Bumps [image](https://github.com/image-rs/image ) from 0.24.1 to 0.24.2.
- [Release notes](https://github.com/image-rs/image/releases )
- [Changelog](https://github.com/image-rs/image/blob/master/CHANGES.md )
- [Commits](https://github.com/image-rs/image/commits/v0.24.2 )
---
updated-dependencies:
- dependency-name: image
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 14:48:00 -07:00
dependabot[bot]
7ab8c340fa
build(deps): bump clap from 3.1.12 to 3.1.15
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.1.12 to 3.1.15.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.1.12...v3.1.15 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-05-02 14:47:37 -07:00
dependabot[bot]
1aafd5c62b
build(deps): bump clap from 3.1.9 to 3.1.12
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.1.9 to 3.1.12.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.1.9...v3.1.12 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 13:41:09 -07:00
dependabot[bot]
e6576df298
build(deps): bump clap from 3.1.8 to 3.1.9
...
Bumps [clap](https://github.com/clap-rs/clap ) from 3.1.8 to 3.1.9.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/v3.1.8...v3.1.9 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
2022-04-18 14:59:23 -07:00