Aaron Hill
7289a8bd95
naga-agal: Zero-extend input vectors for cross-product
...
This matches the behavior of Flash Player
2023-11-30 01:15:21 +01:00
Aaron Hill
78c34c1be9
naga-agal: Fix using matrix opcodes with indirect source register
...
In indirect mode, We need to increment the indirect_offset value
to load subsequent matrix rows.
2023-11-30 00:59:47 +01:00
TÖRÖK Attila
ca25f82900
chore: Bump wasm-bindgen to 0.2.89 (0.2.88 got yanked)
2023-11-28 21:43:41 -05:00
renovate[bot]
6da223a875
fix(deps): update rust dependencies
2023-11-27 09:44:47 +01:00
renovate[bot]
2a83274c7f
fix(deps): update rust dependencies
2023-11-19 21:09:42 -05:00
Nathan Adams
f2b02acf44
chore: Appease clippy-beta
2023-11-13 20:26:50 +01:00
renovate[bot]
32c65e6460
fix(deps): update rust dependencies
2023-11-13 09:10:26 +01:00
Nathan Adams
f03b6307a8
core: Don't invalidate when setting filters to the same value
2023-11-10 22:24:45 +01:00
Aaron Hill
7110be920c
Suport uploading ATFTextureData::CompressedRawAlpha
...
Fortunately, this is very simple - we can just take
the DXT5 data and upload it directly to the wgpu texture.
2023-11-10 02:00:40 +01:00
Lord-McSweeney
249454885b
render: In `ShapeTessellator`, set `mask_index_count` to `None` in `flush_draw` before aborting
2023-11-09 20:22:25 +01:00
renovate[bot]
acadb2b2d3
fix(deps): update wasm-bindgen
2023-11-07 12:18:50 +01:00
renovate[bot]
1377a5b07b
fix(deps): update rust dependencies
2023-11-01 00:45:43 +01:00
Aaron Hill
46320c6238
wgpu: Round down Context3D sample count to nearest power of 2 ( #13762 )
2023-10-29 00:18:52 +00:00
Aaron Hill
b5097445e6
render: Add support for Context3DTextureFormat.COMPRESSED_ALPHA
...
This is our first non-rgba texture format (it uses Bc3RgbaUnorm).
ATF files store these textures in a very convoluted way - fortunately,
the 'dds2atf' tool is open-source, which allowed me to figure out
how to decode the texture back to a DXT5/DXT1 texture.
2023-10-23 11:18:27 -04:00
renovate[bot]
cd01bfe7d6
fix(deps): update rust dependencies
2023-10-23 02:55:11 +02:00
renovate[bot]
b427940431
fix(deps): update rust dependencies
2023-10-16 09:51:22 +02:00
TÖRÖK Attila
9506a66803
nit: Clean up Cargo.toml files slightly (remove unnecessary `version =` maps)
2023-10-15 22:39:18 +02:00
renovate[bot]
18796a67fe
fix(deps): update rust dependencies
2023-10-10 02:15:59 +02:00
Aaron Hill
2fd6cd4147
naga-agal: Stub anisotropic filters in opcodes
...
We had already stubbed these when set from ActionScript, but were
were panicking when they were selected directly in the AGAL bytecode.
2023-10-05 15:38:21 +02:00
Aaron Hill
c93020e729
wgpu: Correctly set format when rendering to Stage3D texture
...
This fixes a panic when trying to render a texture with a type
other than `TextureFormat::Rgba8Unorm`
2023-10-04 22:47:17 -04:00
Aaron Hill
6394b29962
nagal-agal: Fix detection of writing a scalar to a destination
...
We weren't covering all cases, which resulted in an attempt to
AccessIndex on a scalar, or write a scalar directly to a vector
local.
2023-10-05 02:12:28 +02:00
renovate[bot]
428e89af73
fix(deps): update rust dependencies
2023-10-04 19:19:51 -04:00
Aaron Hill
d32b19e350
render: Implement Context3DTextureFormat::RgbaHalfFloat
2023-10-03 18:05:46 -04:00
Aaron Hill
d76306d5ae
render: Fix incorrectly reading U24 in ATF parsing
...
We should be reading a big-endian U24.
2023-09-30 20:29:49 -04:00
Aaron Hill
d2f0787c2c
naga-agal: Fix Opcode::Rcp implementation
...
MathFunction::Inverse doesn't work on vectors.
2023-09-30 19:59:21 -04:00
Aaron Hill
2dcd783261
render: Disable wgpu unused shader output check when possible
...
Since wgpu hasn't yet released a version with this feature, I manually
backported it to the 0.17 branch.
This doesn't work on Windows (HLSL), but works on all other platforms.
2023-09-30 17:59:36 -04:00
Aaron Hill
742ee4052d
naga-pixelbender: Implement Opcode::LogicalAnd
2023-09-30 15:58:06 -04:00
Aaron Hill
ec7a8ac645
avm2: Add support for Stage3D bytearray/compressed textures ( #13180 )
2023-09-28 03:03:30 +00:00
renovate[bot]
7e4e4d4c5b
fix(deps): update rust dependencies
2023-09-25 11:14:39 +02:00
Aaron Hill
01b1e36ef5
wgpu: Rename DepthBuffer to StencilBuffer and stop providing depth_ops ( #13302 )
2023-09-24 20:19:14 +00:00
renovate[bot]
37e2c06034
fix(deps): update rust dependencies
2023-09-18 00:00:45 +02:00
Aaron Hill
1c0ae0b6d8
render: Bump wgpu to 0.17 and naga to 0.13
2023-09-07 18:49:59 -04:00
renovate[bot]
dabc2d56b9
fix(deps): update rust dependencies
2023-09-04 10:25:24 +02:00
Aaron Hill
ccf42c3614
naga-pixelbender: Stub out Opcode::Loop
...
Some experimentation with Pixel Bender Studio shows
that Opcode::Loop has a 23-byte payload. I haven't tried to
figure out how to interpet the payload yet, but we can now
skip over the opcode instead of bailing out entirely.
2023-08-30 17:36:31 -04:00
Aaron Hill
520045de46
wgpu: Disable Context3D.setRenderToTexture MSAA on WebGL
...
This is not supported under webgl, and results in a panic
"Tex storage 2D multisample is not supported" if we try to
do it.
2023-08-28 13:33:32 +02:00
renovate[bot]
4e75c3890a
fix(deps): update rust dependencies
2023-08-28 07:39:35 +02:00
Nathan Adams
19ad492eaa
avm2: Implement Graphics.cubicCurveTo and CUBIC_CURVE_TO
2023-08-27 20:17:43 +02:00
Nathan Adams
eb2afb19c4
render: Add DrawCommand::CubicCurveTo
2023-08-27 20:17:43 +02:00
Nathan Adams
076977cc75
render: Rename DrawCommand::CurveTo to DrawCommand::QuadraticCurveTo
2023-08-27 20:17:43 +02:00
Aaron Hill
158beaffa5
wgpu: Bail out early when trying to set empty program constants
...
There's nothing to do in this case, and we want to avoid trying
to construct a `NonZeroU64` for the size.
2023-08-27 13:53:40 -04:00
TÖRÖK Attila
96505a7bde
video,chore: Bump h263-rs git refs (and update Cargo.lock fully while there)
2023-08-26 22:18:14 +02:00
renovate[bot]
2f4c7d2fe3
fix(deps): update rust dependencies
2023-08-21 08:59:07 +02:00
renovate[bot]
1f4bfcf10d
fix(deps): update rust dependencies
2023-08-18 23:32:15 +02:00
renovate[bot]
93f08d7738
chore(deps): lock file maintenance rust dependencies
2023-08-14 23:58:45 +02:00
Nathan Adams
1a4a808c23
render: Make Filter::calculate_dest_rect work in Twips
2023-08-12 13:00:27 +02:00
Nathan Adams
da090f0bd7
render: Move filter size calculation from wgpu to render/swf
2023-08-12 13:00:27 +02:00
renovate[bot]
a4b179e1e0
chore(deps): lock file maintenance rust dependencies
2023-08-08 23:19:16 +02:00
SuchAFuriousDeath
11a472d40b
render: fix jpeg cmyk to rgb ( #12592 )
...
Co-authored-by: tompro <tomas.prochazka@apertia.cz>
2023-08-06 20:47:07 +03:00
relrelb
8031f9dd3a
webgl: Apply color transform on gradient records
...
As described in #10517 , Flash Player applies color transforms on
each gradient record, and then blends between those transformed colors.
2023-08-05 10:28:40 +03:00
TÖRÖK Attila
6a975cdc5b
render/wgpu: Add WgpuRenderBackend<SwapChainTarget>::recreate_surface().
2023-08-04 21:04:29 +02:00
Nathan Adams
ab27c8b4ee
render: Calculate correct bounds for shapes containing curves
2023-08-02 18:43:33 +02:00
renovate[bot]
477ff400a7
chore(deps): lock file maintenance rust dependencies
2023-08-02 13:36:13 +02:00
relrelb
006393c581
chore: Appease nightly clippy
2023-08-01 22:44:00 +03:00
TÖRÖK Attila
6d6d665332
wgpu: Use correct (shifted) zero value in DisplacementMapFilter shader
2023-08-01 12:54:56 +02:00
Aaron Hill
583caa3389
avm2: Implement DisplayObject.blendShader ( #12238 )
2023-07-26 23:25:26 +00:00
TÖRÖK Attila
1c1a4aee18
wgpu: Don't use blur pass scaling (it was observed to not be needed)
2023-07-26 13:03:11 +02:00
renovate[bot]
3e63a88c34
chore(deps): lock file maintenance rust dependencies
2023-07-25 08:23:28 +03:00
relrelb
5f6d8d72ea
render: Skip unreasonably large bitmaps
...
Some SWFs report unreasonable bitmap dimensions, and trying to reserve
enough capacity for them always fails. To avoid panics, skip those bitmaps.
Fixes #1191
Fixes #2759
Fixes #10701
2023-07-24 09:37:37 +03:00
TÖRÖK Attila
0cf6a68d05
wgpu: Make the blur filter support fractional sizes fairly accurately
2023-07-24 04:44:22 +02:00
Aaron Hill
cd9efb2dfa
wgpu: Ignore zero width/height Stage3D scissor rect
...
This matches Flash's behavior, and prevents wgpu from panicking.
2023-07-23 17:05:27 -04:00
Aaron Hill
b8562bdb91
naga-pixelbender: Implement Opcode::Fract
2023-07-23 16:34:38 -04:00
Aaron Hill
5a5206c8df
wgpu: Correctly pass PixelBender int params to shader
...
The shader expects an array of i32s, but we were writing
bitcasted f32s to the array.
2023-07-23 13:22:40 -04:00
Nathan Adams
77c0dac64b
webgl: Implement pixel snapping
2023-07-22 00:34:17 +02:00
Nathan Adams
4410d666ed
avm2: Implement Bitmap.pixelSnapping
2023-07-22 00:34:17 +02:00
Nathan Adams
289f73c85f
core: Add pixel snapping (default auto) to Bitmaps, and force it for cacheAsBitmap
2023-07-22 00:34:17 +02:00
Aaron Hill
3607a5fb23
naga-pixelbender: Implement Opcode::LessThanEqual
2023-07-20 20:09:07 -04:00
Nathan Adams
b201e19cc7
wgpu: Don't create an extra fresh texture for applying filters to a CAB
2023-07-20 23:19:20 +02:00
Nathan Adams
400ff32723
wgpu: Implement a naive DisplacementMap filter
2023-07-20 12:41:30 +02:00
Aaron Hill
715abd8985
avm2: Use invisible mask descendants for mouse picking and rendering
...
The 'DisplayObject.visible' flag seems to be ignored for mask objects
(and their descendants) - mouse picking still takes them into account,
and they get rendered as part of the mask.
This commit changes display object rendering and AVM2 mouse picking
to ignore DisplayObject.visibility when dealing with mask objects/
descendants.
2023-07-19 23:18:28 +02:00
Nathan Adams
b1ba144166
wgpu: Implement Bevel filter
2023-07-19 22:59:33 +02:00
Nathan Adams
5597535471
wgpu: Store wgpu::Instance in Descriptors
2023-07-19 21:36:30 +02:00
Nathan Adams
030c3c50e8
wgpu: Make `request_adapter_and_device` take in wgpu::Instance by ref
2023-07-19 21:36:30 +02:00
Nathan Adams
a35ea3d9f2
wgpu: Sum up all center blur pixels before multiplying
2023-07-17 23:33:30 +02:00
Nathan Adams
18e343c6ad
wgpu: Shift blur uvs over to the left of the kernel
2023-07-17 23:33:30 +02:00
Nathan Adams
8ecd9d0181
wgpu: Precompute left_weight in blur shader
2023-07-17 23:33:30 +02:00
Nathan Adams
13eda1361a
wgpu: Use push constants for blur buffer, when supported
2023-07-17 23:33:30 +02:00
Nathan Adams
0076d65865
wgpu: Speed up blur filter by about 50%
2023-07-17 23:33:30 +02:00
renovate[bot]
268403faad
chore(deps): lock file maintenance rust dependencies
2023-07-17 09:55:56 +03:00
Nathan Adams
cd2d01bf6f
wgpu: Fix crash when not using push constants
2023-07-16 00:31:50 +02:00
Nathan Adams
ee7412d733
wgpu: Fix off-by-one in blur size calculation
2023-07-15 01:49:57 +02:00
Moulins
3ea67668c0
render: make Context3D renderers fully GC-agnostic
...
The 'gc_arena' dependency was only used to manipulate the `GcCell`s
containing the vertex and fragment shaders; replacing these by a
reference to a plain old `Cell` means tha the Context3D traits and
types do not need to interact with GC'd object anymore.
As a knock-on effect, we can also remove the `Activation` parameter
from most of the `Context3DObject` methods.
2023-07-14 16:06:36 -06:00
TÖRÖK Attila
765ceb70a0
chore: Bump h263-rs git ref to latest master
2023-07-14 14:44:23 +02:00
Nathan Adams
5c13d323b3
wgpu: Implement the undocumented ability to disable compositeSource for glow/shadow
2023-07-12 18:51:11 +02:00
Nathan Adams
c9a241f12b
wgpu: When sampling outside of blur texture, use 0
2023-07-12 18:51:11 +02:00
Nathan Adams
6f98b3d596
wgpu: Saturate alpha in glow shader
2023-07-12 18:51:11 +02:00
Nathan Adams
8cb6e5bdf0
wgpu: Implement drop shadow filter
2023-07-12 18:51:11 +02:00
Nathan Adams
aab03290be
wgpu: Add extra set of UVs to glow filter, to support separate blur rects
2023-07-12 18:51:11 +02:00
Nathan Adams
aba2394732
wgpu: Respect alpha for glows
2023-07-12 18:51:11 +02:00
Nathan Adams
1aa2ac28c2
wgpu: Slight opimitsation to blur filter by not needing to calculate full_width per fragment
2023-07-12 18:51:11 +02:00
Nathan Adams
30e7a1eac6
core: Account for filter size changes when drawing cacheAsBitmaps
2023-07-12 18:51:11 +02:00
Nathan Adams
b30c522f9c
wgpu: Implement glow filter
2023-07-12 18:51:11 +02:00
renovate[bot]
f0607d6a1f
chore(deps): lock file maintenance rust dependencies
2023-07-11 22:42:51 +02:00
moulins
f5b4fbce77
Upgrade to new `gc-arena` API ( #11182 )
...
* core: add temporary, ruffle-internal copy of `gc-arena` crate
This will allow bumping the upstream `gc-arena` version while
reexporting our own version of the old `GcCell` API, so that
Ruffle's code can be gradually migrated.
Once the migration is done, this crate should be removed.
* core: bump `gc-arena` to kyren/gc-arena#56
Add back the removed `GcCell` to our internal facade crate
* core: bump `gc-arena` to current master
This bump renames `Gc::allocate` to `Gc::new`
* core: rename `GcCell::allocate` to `GcCell::new`, to match `Gc`
* core: bump gc-arena to (slighly after) v0.3.1
Add typedefs for old `*Context` names in the gc-arena facade crate
* core: replace uses of `CollectionContext<'_>` by `&Collection`
* core: Add `gc()` convenience method for `*Context` and `Activation` types
This allows shortening most instances of `[activation.]context.gc_context`
to `activation.gc()` or `context.gc()` (but not all instances, because of
borrowck) Note that this doesn't actually do these shortenings to avoid
major code churn.
2023-07-09 17:04:25 -04:00
Aaron Hill
9d3e96e3a4
render: Implement more Pixelbender opcodes, and fix matrices ( #11896 )
2023-07-09 16:54:26 +00:00
Aaron Hill
b6fae8e214
wgpu: Cache Program3D bind group layout
...
The bind group layout only depends on the texture registers
(and 2D/cubemap type) accessed by the fragment shader, not on
the runtime texture bound with Context3D. This means that we can
build and cache it when we compile the AGAL program to a Naga
module.
Since the bind group layout is used for the overall pipeline, I've
refactored the shader caching code into `ShaderPairAgal`, which
holds both the vertex and fragment shader bytecode, and compiles
both in the `compile` function.
2023-07-09 12:39:10 -04:00
Aaron Hill
e9f4a92073
wgpu: Only log 'unsupported' warning once per filter type
...
This eliminates the console spam produced when an object with
an unsupported filter was onscreen.
2023-07-07 22:38:35 +02:00
Aaron Hill
90dbcfca5d
render: Fix writing to varying register in vertex shader
2023-07-06 11:18:39 -04:00
Aaron Hill
852367b09b
wgpu: Use a vec4f for pixelbender ZEROED_OUT_OF_RANGE_MODE_INDEX
...
This could really be a single f32 (or even a boolean), but wgpu
on web requires a minimum size of 16 bytes for uniforms.
2023-07-05 21:23:22 +02:00
Aaron Hill
3006356410
render: Suppress clippy::arc_with_non_send_sync for now
2023-07-04 20:50:46 +02:00
Aaron Hill
f22bef99b4
core: Fix some Clippy lints on the latest nightly
2023-07-04 20:50:46 +02:00
Nathan Adams
146d565c02
render: Add Filter::scale() and use it to scale filter values (currently just blur_)
2023-07-03 20:13:40 +02:00
Nathan Adams
4ac13de2f3
wgpu: Switch PASS_SCALES to be accumulative scales, for better calculation of size upfront
2023-07-03 20:13:40 +02:00
renovate[bot]
13b1078142
chore(deps): lock file maintenance rust dependencies
2023-07-03 08:28:13 +03:00
Aaron Hill
26101ae979
render: Add 'renderdoc' feature/module for manual frame capture
...
This feature is disabled by default. When enabled, you can use
`ruffle_render::renderdoc::begin_frame_capture` and
`ruffle_render::renderdoc::end_frame_capture` to manually trigger
a RenderDoc frame capture (if Ruffle wasn't launched by RenderDoc,
this logs an error).
This is very useful when debugging Stage3D/PixelBender bugs, as you
can produce a capture containing only the relevant graphics calls.
2023-07-02 13:59:19 -04:00
Aaron Hill
6e1f00edf2
render: Implement more PixelBender features ( #11800 )
2023-07-01 13:50:43 -04:00
Nathan Adams
a5915a9bdb
swf: Make Color Copy
2023-06-29 20:32:36 +02:00
Nathan Adams
97ad60e66a
wgpu: Pad out the BlurUniforms
2023-06-28 22:42:31 +02:00
Nathan Adams
7e96a2fdad
wgpu: Blur size is whole kernel width, minus one and half it for the shader
2023-06-28 22:42:31 +02:00
Nathan Adams
b90bebc65d
wgpu: Blur filter is fallible, if nothing happened then just blit
2023-06-28 22:42:31 +02:00
Nathan Adams
c0e932422f
wgpu: Change blur to 2-pass separable box blur, multiplied by quality
2023-06-28 22:42:31 +02:00
Nathan Adams
447cd2a5f6
wgpu: Move create_filter_vertices to FilterSource::vertices
2023-06-28 22:42:31 +02:00
Nathan Adams
fd0d414d02
wgpu: Add FilterSource::for_entire_texture convenience method
2023-06-28 22:42:31 +02:00
Nathan Adams
1096d7d35e
wgpu: Create a FilterSource for common arg set, and removed need for #[allow(clippy::too_many_arguments)]
2023-06-28 22:42:31 +02:00
Nathan Adams
7f4d855de9
wgpu: Move Surface::apply_filter to Filters::apply, removing need for a surface at all
2023-06-28 22:42:31 +02:00
Nathan Adams
7c751d6be8
wgpu: Implement Default for TexturePool
2023-06-28 22:42:31 +02:00
Nathan Adams
4f6bac7840
wgpu: Refactor out filters into their own files
2023-06-28 22:42:31 +02:00
Aaron Hill
ad8457b54d
wgpu: Remove 'TextureWrapper.format' field
...
We can already get the foramt from the wgpu::Texture
2023-06-28 16:26:19 -04:00
Aaron Hill
54dd160897
wgpu: Remove 'width' and 'height' fields from Texture
...
This is already stored in wgpu::Texture
2023-06-28 13:00:49 -04:00
Nathan Adams
96e3d36a6e
wgpu: Don't mark the filters as needing push constants
2023-06-26 23:18:45 +02:00
Nathan Adams
e37958351e
wgpu: Removed most uniforms from filters, they're not used or needed
2023-06-26 22:07:52 +02:00
renovate[bot]
3057aa59dd
chore(deps): lock file maintenance rust dependencies
2023-06-25 21:53:00 -04:00
renovate[bot]
f62dd17284
fix(deps): update rust crate indexmap to v2
2023-06-25 20:27:33 -04:00
Lord-McSweeney
8c40e97ab5
wgpu: nit: Fix incorrect label in blur filter
2023-06-26 00:00:03 +02:00
Nathan Adams
fd4eaef2b6
wgpu: Don't create cacheAsBitmap for textures that are too large
2023-06-25 22:58:22 +02:00
Nathan Adams
628d8f66ad
render: Add filters to BitmapCacheEntry
2023-06-25 21:58:46 +02:00
Nathan Adams
44c870ba91
wgpu: Move run_copy_pipeline to utils
2023-06-25 21:58:46 +02:00
Nathan Adams
4dde126e64
wgpu: Take in a &wgpu::Texture not our own texture as we don't need omore than that
2023-06-25 21:58:46 +02:00
Nathan Adams
0c71b83e36
wgpu: Don't perform copy inside Surface::apply_filter
2023-06-25 21:58:46 +02:00
Lord-McSweeney
08dfbc96be
wgpu: Slight changes to blur filter
2023-06-24 16:55:40 +02:00
Nathan Adams
f43560ab88
render: Switch to providing cacheAsBitmap entries all at once on submit frame
2023-06-24 01:42:04 +02:00
Nathan Adams
36aee1efcf
wgpu: Specialise render_offscreen_for_cache to render directly to the texture
2023-06-24 01:42:04 +02:00
Nathan Adams
2594453831
render: Add render_offscreen_for_cache for more optimised CacheAsBitmap
2023-06-24 01:42:04 +02:00
Nathan Adams
fe742194b1
core: Implement cacheAsBitmap behaviour
2023-06-24 01:42:04 +02:00
Nathan Adams
97c36b442a
wgpu: Switch Multiply back to a complex shader, with dst.a==0 fix
2023-06-22 14:23:15 +02:00
TÖRÖK Attila
7bbaeb2a61
chore: Bump ouroboros to 0.17.0.
2023-06-17 18:49:05 -05:00
Nathan Adams
2427daf05c
webgl: Don't hold onto an old copy of bitmap data for each image
2023-06-18 00:47:51 +02:00
Nathan Adams
e9af73126f
canvas: Refactor how BitmapData is made, to allow for empty bitmaps to be made later
2023-06-18 00:47:51 +02:00
Nathan Adams
c374aaa19a
canvas: Don't hold onto an old copy of bitmap data for each image
2023-06-18 00:47:51 +02:00
renovate[bot]
7a21756ddb
chore(deps): lock file maintenance rust dependencies
2023-06-17 11:00:52 -05:00
Aaron Hill
69fce3f7f8
wpgu: Initial implementation of PixelBender shader execution ( #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
2023-06-15 22:50:24 +00:00
renovate[bot]
fc933f485f
fix(deps): update wasm-bindgen
2023-06-15 20:50:04 +02:00
Aaron Hill
cd2c7f6f2f
tests: Enable tracing_subscriber in tests
...
Previously, we weren't displaying any Ruffle logs when running tests.
2023-06-14 17:15:31 -05:00
renovate[bot]
438e6f36ff
chore(deps): lock file maintenance rust dependencies
2023-06-12 08:50:07 +03:00
renovate[bot]
a621472336
chore(deps): lock file maintenance rust dependencies
2023-06-09 20:17:25 +03:00
Aaron Hill
d44c9cceb1
wgpu: Cache compiled naga-agal shader module
...
We use an `lru::LruCache` inside `ShaderModuleAgal`. This automatically
gives us the proper garbage-collection behavior (when the Flash
Program3D instance is garbage collected, we'll drop the
`ShaderModuleAgal` and the cache).
The cache is keyed on the data needed to compile the shader (vertex
attributes and sampler overrides). This lets us avoid shader
recompilations when a Stage3D program repeatedly uses the same
Program3D with different sampler overrides / vertex attribute formats.
2023-06-08 02:57:47 -05:00
renovate[bot]
f1fe998869
chore(deps): lock file maintenance rust dependencies
2023-06-04 22:53:18 -05:00
Nathan Adams
eb70a4f361
core: Update gc_arena to 63dab12871321e0e5ada10ff1f1de8f4cf1764f9
2023-06-03 09:11:06 +02:00
Aaron Hill
2cd518013c
wgpu: Don't skip alpha/erase blend modes for BitmapData.draw ( #11323 )
...
We can skip these when we're drawing to a fresh buffer, but not when we're blending over an existing BitmapData texture.
2023-06-02 21:16:05 +00:00
Aaron Hill
999e2f5b71
wgpu: Implement Context3D.setScissorRectangle
2023-06-02 14:56:14 -05:00
relrelb
abb0e33431
chore: Use Rust's `OnceCell`/`OnceLock`
...
They were stabilized in Rust 1.70.0, which was released yesterday.
This removes the `once_cell` dependency.
2023-06-02 22:21:38 +03:00