Commit Graph

169 Commits

Author SHA1 Message Date
Nathan Adams 1a9bec3062 core: Don't use cacheAsBitmap when bitmapdata.draw() as it'll keep reinvalidating it 2023-06-24 01:42:04 +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 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 647006b8d0 core: Add more avm2 debug info 2023-06-21 18:27:12 +02:00
Mike Welsh c4e4eba63f avm2: Implement BitmapData.setVector 2023-06-12 18:34:51 -05: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 2ae15b05e8 core: Store Color as an u32 instead of a i32
This is a packed ARGB value, so it doesn't make sense for it to be
signed.
2023-05-28 16:52:09 -05:00
relrelb ee30646745 avm1: Migrate `DisplacementMapFilter` to `NativeObject` 2023-05-27 23:08:42 +03:00
relrelb c230dcf0f8 avm1: Migrate `BitmapData` to `NativeObject` 2023-05-21 21:02:14 +03:00
iwannabethedev 0f30b378b0 core: Re-arrange internal implementation of 'pixelDissolve()'. 2023-05-21 01:47:06 +02:00
iwannabethedev deae231176 core: Clean up TODOs in 'pixelDissolve()'. 2023-05-21 01:47:06 +02:00
iwannabethedev 6f98d39c25 core: Implement 'pixelDissolve()' for AVM1. 2023-05-21 01:47:06 +02:00
iwannabethedev 40c40f278c core: 'pixelDissolve()' bug fix and clean-up. 2023-05-21 01:47:06 +02:00
iwannabethedev 1bd9f82496 core: Implements `BitmapData.pixelDissolve()` for AVM2.
The changes have automated tests for them.

The implementation has not been implemented or tested for AVM1 yet.
2023-05-21 01:47:06 +02:00
iwannabethedev d0f8061c85 core: documentation changes. 2023-05-15 00:51:54 +02:00
iwannabethedev 8c92cecb60 core: Add documentation to Color. 2023-05-15 00:51:54 +02:00
iwannabethedev 9de2abe8b8 core: Fix wrong color form used. 2023-05-15 00:51:54 +02:00
iwannabethedev 476ff4aeef core: Fix drawing on cpu with color transform.
Taken directly from this commit, credits to Dinnerbone:
9b76090e1f
2023-05-12 22:42:44 +02:00
Nathan Adams dc44c1c797 core: Use MutationContext instead of UpdateContext for copy_on_cpu 2023-05-03 21:15:48 +02:00
Nathan Adams 243d82770d core: Use copy_from_slice for whole-BMD-replacement 2023-05-03 21:15:48 +02:00
Nathan Adams 53c6927b6f core: Clarify comment when we can skip alpha premultiplication 2023-05-03 21:15:48 +02:00
Nathan Adams c5293bd981 core: Don't actually apply a filter if it's unsupported, just copy 2023-05-03 21:15:48 +02:00
Nathan Adams 5ff804f5c2 core: Add a method for BitmapData.draw() with color transform on cpu 2023-05-03 21:15:48 +02:00
Nathan Adams 7b20003c6a core: Treat copy_pixels_with_alpha_source as copy_pixels if alpha source is same as source 2023-05-03 21:15:48 +02:00
Nathan Adams fe3d8c10b1 core: Added an efficient copy method that does cpu or gpu copy depending on what's best situationally 2023-05-03 21:15:48 +02:00
Nathan Adams adabb81804 core: Introduce PixelRegion::clamp_with_intersection and made most operations with two overlapping regions use it 2023-05-03 21:15:48 +02:00
relrelb 808a0fd26e core: Clamp various `BitmapData` thresholds to `u8` 2023-04-24 08:35:59 +03:00
Nathan Adams 35f3a21110 core: Fix bitmapdata.floodFill() replacing X with X + test. Fixes #10642 2023-04-11 10:40:57 -04:00
Mike Welsh 37bf6b39e6 core: Remove `RenderContext::allow_mask`
This is now handled by `CommandList::maskers_in_progress`, so core
code does not have to worry about whether or not it can draw a
mask.
2023-04-04 13:10:45 -07:00
TÖRÖK Attila 493971ab8a render: Make RenderBackend::update_texture() take a Bitmap (like register_bitmap()) 2023-04-04 00:15:07 -07:00
Nathan Adams 3a297f8adc core: Iterate y then x in bitmapdata operations 2023-04-03 18:25:20 +02:00
Nathan Adams 2a9288870a core: Made operations take in MutationContext instead of &mut UpdateContext where possible 2023-04-03 18:25:20 +02:00
Nathan Adams 4477d65331 core: Made overwrite_cpu_pixels_from_gpu take in MutationContext instead of &mut UpdateContext 2023-04-03 18:25:20 +02:00
Nathan Adams e62e2a94e8 core: Move dummy() from BitmapData to BitmapDataWrapper 2023-04-03 18:25:20 +02:00
Nathan Adams e1e4a01f13 avm2: Make BitmapDataObject::from_bitmap_data take BitmapDataWrapper 2023-04-03 18:25:20 +02:00
Nathan Adams 1c6aaba57a core: Use actual clone() method when cloning bitmap 2023-03-31 21:56:41 -07:00
Nathan Adams 62d30251f2 core: Move clone to bitmapdata operations 2023-03-31 21:56:41 -07:00
Nathan Adams b07bf84da5 core: Skip a gpu->cpu sync in set_pixels_from_byte_array if we're filling the whole bmd 2023-03-31 21:32:15 -07:00
Nathan Adams fcaf462423 core: Fix set_pixels_from_byte_array respecting the bytearray position + tests 2023-03-31 21:32:15 -07:00
Nathan Adams 445912e760 core: Move set_pixels_from_byte_array out from avm2 to bmd operations 2023-03-31 21:32:15 -07:00
Nathan Adams c51ba098f6 render: Rename PixelRegion's (min|max)_(x|y) to (x|y)_(min|max) 2023-03-31 16:57:52 +02:00
Nathan Adams cfb18718a1 core: Remove debug output 2023-03-31 16:57:52 +02:00
Nathan Adams fd702dabcc core: Remove disposed checks from operations, it's responsibility of avm1 and avm2 to handle it their own way 2023-03-31 16:57:52 +02:00
Nathan Adams 66e2eb77e5 core: Rename bitmap_data_operations to just operations 2023-03-31 16:57:52 +02:00
Nathan Adams 94e5aa8f34 core: Fix calculating dirty area of BitmapData.draw() with rotation 2023-03-31 16:57:52 +02:00
Nathan Adams c85910b46d wgpu: Fixed panic when rendering texture to itself, by always rendering to an intermediary 2023-03-31 16:57:52 +02:00
Nathan Adams 68343369a3 core: Don't sync cpu->gpu in overwrite_cpu_pixels_from_gpu 2023-03-31 16:57:52 +02:00
Nathan Adams cae8f89c9b core: Remove clone from copy_pixels_with_alpha_source and don't sync if copying outside dirty region 2023-03-31 16:57:52 +02:00
Nathan Adams d7b0a6f611 core: Remove clone from copy_pixels and don't sync if copying outside dirty region 2023-03-31 16:57:52 +02:00