Since `TextFormat.color` should preserve the alpha value, and the AVM1
getter/setter no longer reset it, we need to reset it in other places:
* `TextField.textColor` setter.
* `EditText` SWF tag handling.
* HTML parsing.
And to set it explicitly to 255 in `LayoutBox::as_renderable_text`.
`TextFormat` objects differ from regular objects in that
`TextField.setTextFormat` and `TextField.setNewTextFormat` accept
only the former, and ignore the latter.
Also, `TextFormat.prototype` has native accessors that coerce the
values on get/set.
For example, `tellTarget("bogus!!!") { var n = 2; gotoAndPlay(n); }`
should cause the _root clip to go to frame 2.
Fixes the character freezing in Steppenwolf 3-1 mentioned in #4585.
`tellTarget` to other clips should fail if the current base clip
has been removed. All properties of the clip return `undefined`
at this point, so traversing the target path should fail.
Fixes soft-lock in Steppenwolf 2-1 as mentioned in #4452.
naga is currently lenient about some things which are invalid by
the WGSL spec. The Tint WGSL compiler disagreed, so these shaders
failed to compile in Chrome.
ruffle.rs should be part of the Chrome WebGPU origin trial, so we
can enable wgpu feature to try it out.
It should gracefully fall back to WebGL when WebGPU is not
available.
Enable web_sys_unstable_apis RUSTFLAGS in .cargo/config.toml.
These are necessary to use WebGPU in the browser, as well as other
features such as clipboard.
Rust 1.56 introduced a bad interaction between env_logger and
`#[windows_subsytem]` that caused Ruffle to panic immediately on run.
See:
https://github.com/rust-lang/rust/issues/88576
Disabling the atty and termcolor features of env_logger avoids
the problem. Can re-enable when the above issue is fixed on Rust
stable.
Fixes#5534.
Use prototype depths instead. Most calls passed `base_proto = None`,
which is equivalent to `depth = 0`, and is now the default.
The few other cases were adapted to use `Executable::exec` directly,
where `depth` can be specified manually.