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
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
b30c522f9c
wgpu: Implement glow filter
2023-07-12 18:51:11 +02:00
Aaron Hill
6e1f00edf2
render: Implement more PixelBender features ( #11800 )
2023-07-01 13:50:43 -04:00
Nathan Adams
97ad60e66a
wgpu: Pad out the BlurUniforms
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
e37958351e
wgpu: Removed most uniforms from filters, they're not used or needed
2023-06-26 22:07:52 +02:00
Lord-McSweeney
08dfbc96be
wgpu: Slight changes to blur filter
2023-06-24 16:55:40 +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
Mike Welsh
549a06d00f
wgpu: Slight optimization to color shader
...
The color doesn't change per pixel, so calculate the color in the
vertex stage instead of the fragment stage.
2023-04-03 14:33:37 -07:00
Aaron Hill
b140029e95
render: Fix BitmapData.applyFilter with non-full sourceRect
...
Previously, we were scaling down the source image to fit into
the smaller sourceRect, instead of cropping at the original scale.
This broke the background textures in Fancy Pants World 4 Part 2,
as the scaled-down output image resulted in a smaller rectangle
being returned from 'getColorBoundsRect'
We now crop the image by properly constructing the UV-coordinate
transformation matrix. We were also using the wrong value for the
'destPoint' y coordinate, which I fixed.
This slightly changes the image output of two tests - the new images
now more closely match the Flash output.
2023-03-25 18:44:01 -07:00
Aaron Hill
8425eab1f0
render: Compile a different version of 'bitmap.wgsl' for Stage3D
...
When using the bitmap.wgsl shader for normal rendering, we need
to saturate immediately after applying the color transformation
to reproduce Flash Player's behavior. This makes the (possibly
transformed) alpha value get multiplied by a in-range color,
instead of a potentially out-of-range color.
However, Stage3D just applies a no-op color transformation,
and should only saturate at the very end
(not after the intermediate division by the original alpha value).
To support both of these requirements, I've added in a new
`early_saturate` ifdef that controls when we apply 'saturate'.
We then compile the shader twice (once with early_saturate=true
and once with early_saturate=false), and use the two versions
in the right pipelines.
We could use a simpler shader for Stage3D - however, it can't just
be a plain copy, as we need to apply the viewport transformation.
For now, I'm re-using the shader code to keep things simple. If
this becomes a performance issue in stage3d, we could revisit this.
2023-03-19 02:15:26 -05:00
Aaron Hill
de8448e00a
avm2: Implement Stage3D depth test, blend factors, and fix bugs ( #9845 )
2023-03-12 23:43:58 +00:00
TÖRÖK Attila
7d3a2d14b7
render/wgpu: Delete the now unused buffer bug detection shader
2023-03-12 15:53:16 -05:00
Nathan Adams
0cca4983e4
wgpu: Merge gradient shaders together
2023-03-06 23:22:09 +01:00
Nathan Adams
622abe60d1
wgpu: Extract T->Color lookup from gradient shader to Mesh construction
2023-03-06 23:22:09 +01:00
Nathan Adams
edd7f80341
wgpu: Fix blown out colors when transforming them above 100% - fixes #9698
2023-02-24 19:01:41 +01:00
Nathan Adams
e73389aa71
wgpu: Implement blur filter
2023-02-05 18:41:43 +01:00
Nathan Adams
284a58c817
avm2: Implement BitmapData.apply_filter for ColorMatrixFilter
2023-02-05 18:41:43 +01:00
Nathan Adams
013a2424ef
wgpu: Only use uniform buffers for gradients, we don't need storage buffers now that we squeeze the ratios into alignment
2023-02-05 18:02:19 +01:00
Nathan Adams
f9b378b29a
wgpu: Changed most pipelines & shaders to only use Pos, not Pos and Color, as vertex attribs
2023-02-05 18:02:19 +01:00
Nathan Adams
7b1c101c81
wgpu: Fix repeat & reflect gradients
2023-01-29 17:17:44 +01:00
Nathan Adams
1bfa69ade2
wgpu: Guard against infinite loops in gradient shader - fixes #9260
2023-01-23 23:25:30 +01:00
Aaron Hill
ffc393e3e8
render: Work around naga_oil duplicate definition bug
2023-01-23 11:31:04 +01:00
Aaron Hill
0fe8ef6c2d
Get naga_oil shaders working
2023-01-23 11:31:04 +01:00
Nathan Adams
2e7201334d
wgpu: Detect if buffers are unusable on web and fail to create wgpu renderer if so
2023-01-12 18:37:28 +01:00
Nathan Adams
8db8e4669a
wgpu: Implement Multiply blend mode as a trivial blend
2023-01-12 10:54:03 -05:00
Nathan Adams
09608c2abc
wgpu: Implement Screen blend mode as a trivial blend
2023-01-12 10:54:03 -05:00
Nathan Adams
62f9b11417
wgpu: Fixed color shader working in correct color space
2023-01-10 09:39:28 +01:00
Nathan Adams
ae75a3c166
wgpu: Use push constants for both Transforms and ColorAdjustments, when available
2023-01-10 09:39:28 +01:00
Nathan Adams
fb78a39125
wgpu: Switch to experimental crate naga_oil for combining shaders
2023-01-10 09:39:28 +01:00
Nathan Adams
4e5749a7e4
wgpu: When push constants are available, use those for Transforms
2023-01-10 09:39:28 +01:00
Nathan Adams
3dd9c4daa3
wgpu: Moved ColorAdjustments into its own bind group, and reuse ColorAdjustments::IDENTITY where we can
2023-01-03 03:39:13 +01:00
Nathan Adams
cb6d72b49b
wgpu: Split up gradient shader based on type and repeat
2023-01-03 03:39:13 +01:00
Nathan Adams
a79e73fb12
wgpu: Clean up gradient shaders by bringing out common shared source into a same file
2023-01-03 03:39:13 +01:00
Nathan Adams
91561e8c35
wgpu: Reduce gradient.ratios uniform memory by 4x
2023-01-03 03:39:13 +01:00
Nathan Adams
312e72451f
wgpu: Reduce gradient.colors uniform memory by 4x
2023-01-03 03:39:13 +01:00
Nathan Adams
c0ec5c5010
wgpu: Split up blend modes into their own shaders for performance
2023-01-03 03:39:13 +01:00
Nathan Adams
c6045a4f24
wgpu: Multiply can't be trivial blend mode because of 0 alpha
2023-01-03 03:39:13 +01:00
Nathan Adams
f253abdbd1
wgpu: Made Multiply, Add and Subtract blend modes use bitmap+blend
2023-01-03 03:39:13 +01:00
Nathan Adams
7e564185b5
wgpu: Handle alpha correctly for add or subtract blendmodes
2023-01-03 03:39:13 +01:00
Nathan Adams
b0e345335f
wgpu: Workaround naga-vulkan bug with default position in switch statement
2023-01-03 03:39:13 +01:00
Nathan Adams
8311ddb0da
wgpu: Allow for different sized subcommand list targets, but don't use them yet
2023-01-03 03:39:13 +01:00
Nathan Adams
7904c3d4f0
wgpu: Implement all blend modes
2023-01-03 03:39:13 +01:00
Nathan Adams
f9333e2626
wgpu: Perform command rendering recursively and chunk up blends. Blends are still not implemented, it just copies to parent.
2023-01-03 03:39:13 +01:00
Nathan Adams
92044c9c02
wgpu: Merge bitmap bind groups 2 and 3
2022-09-11 09:07:53 +02:00