Tags: aluetz/ruffle
Tags
core: Store just abcd fields of Matrix inside BitmapCache, as we don'… …t use tx/ty
avm2: Optimize coerce_to_primitive for boxed primitives
avm1: Correct `matrix::object_to_matrix_or_default`
web: Disabling `allowScriptAccess` also prevents opening URLs in the … …same tab
wpgu: Initial implementation of PixelBender shader execution (ruffle-… …rs#11441) * wpgu: Initial implementation of PixelBender shader execution The implementation is split across four crates: * `ruffle_render` now holds the main PixelBender bytecode parsing implementation (previously, this was in `ruffle_core`). * `ruffle_core` holds some helper functions for converting between AVM2 `Value`s and the PixelBender vector types. * `naga-pixelbender` (newly created) constructs a Naga `Module` from parsed PixelBender bytecode * `ruffle_render_wgpu` sets up the render pipeline for the shader constructed by `naga-pixelbender`, and actually executes the shader. The Actionscript-side shader parameters are passed in through uniforms. This allows us to cache the compiled `naga::Module` and associated wgpu types inside `ShaderData`, when it's first created. Each invocation of a `ShaderJob` only needs to create a bind group and render pass. Limitations: * Only a few of the PixelBender opcodes are implemented - however, this is enough to get Stemlands cannon rotation working, as well as a cool "donut" shader that I found and included as a test. * PixelBender matrix types are not supported. * Only BitmapData is supported as an input/output type - Flash Player also supports using Vector and ByteArray * ShaderJob execution is always synchronous. * Adjust comments * Address review comments
tests: Enable tracing_subscriber in tests Previously, we weren't displaying any Ruffle logs when running tests.
PreviousNext