Commit Graph

613 Commits

Author SHA1 Message Date
Mike Welsh 9cd6849772 core: Append EOI marker to JPEG data when missing
Fixes #4209.
2023-01-16 03:03:28 +01:00
Mike Welsh cceb18910b core: Fix handling of invalid EOI+SOI marker in JPEG data (fix #8775)
Previously we were removing the first occurrence of the invalid
0xFFD9FFD8 byte sequence in JPEG data, but this would break the
JPEG if it happened to contain this byte sequence elsewhere (for
example, EXIF data). Instead, properly parse the JPEG markers
searching for the invalid marker sequence.

Fixes #8775.
2023-01-16 03:03:28 +01:00
Nathan Adams 3279a920b4 wgpu: Use a temporary wgpu fork that increases push constants limit on webgl & speeds up start time 2023-01-15 18:19:11 +01:00
Nathan Adams 1b42ad0ab4 wgpu: Keep globals cache across the buffer pool 2023-01-14 19:35:16 +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 9cd850d30e render: Make render_offscreen return a sync handle which can be used to get the texture at a later time 2023-01-11 16:53:33 -05:00
renovate[bot] 630558a936 fix(deps): update rust dependencies 2023-01-10 16:37:40 +01:00
Nathan Adams f5a587ce61 render: Better error message when points is empty 2023-01-10 11:10:46 +01:00
Nathan Adams e7dd3cc0f8 render: Add better expect messages for as_bitmap_data impls 2023-01-10 11:10:46 +01:00
Nathan Adams 3ead9aede9 webgl: Disallow unwrap() and unwrap_err() in webgl crate 2023-01-10 11:10:46 +01:00
Nathan Adams 0f5765d5cc webgl: Removed all unwraps and replaced with actual errors or expects 2023-01-10 11:10:46 +01:00
Nathan Adams 052ac06d85 canvas: Disallow unwrap() and unwrap_err() in canvas crate 2023-01-10 11:10:46 +01:00
Nathan Adams 312c23c4eb canvas: Removed unwraps and replaced with either warns, ignores or expects 2023-01-10 11:10:46 +01:00
Nathan Adams 5ae569983b render: Disallow unwrap() and unwrap_err() in render crate 2023-01-10 11:10:46 +01:00
Nathan Adams 85f0c9dde9 render: Replaced unwrap with expect in shape_utils 2023-01-10 11:10:46 +01:00
Nathan Adams 8f684d6943 render: Removed unwrap/panic when working with empty shapes 2023-01-10 11:10:46 +01: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 fa9db9145d wgpu: Removed double references 2023-01-10 09:39:28 +01:00
Nathan Adams ad3060e70c wgpu: Specialcase draw_rect with white as that's just identity color transform 2023-01-10 09:39:28 +01:00
Nathan Adams 53d6fa4d8b render: Make render commands take in an actual value, not ref for immediate cloning 2023-01-10 09:39:28 +01:00
Nathan Adams b07a01da57 wgpu: Cache texture views along side their owned textures in texture pool 2023-01-09 20:40:45 +01:00
Nathan Adams 4d85b6a75b wgpu: Hook up wgpu renderer, and wgpu's profiling, to tracy 2023-01-08 20:02:26 +01:00
Moulins d332a174c3 Bump `gc-arena` to current master revision
This required small changes to some Debug impls that were missed in #8964
2023-01-06 18:22:43 -05:00
Nathan Adams b7bc835def wgpu: Use Stencil8 2023-01-06 06:29:43 +01:00
Nathan Adams 69e98d23ad wgpu: Update to wgpu 630c12fe47a7bc0dc9ec6217f3903ec6fd6e3fac 2023-01-06 06:29:43 +01:00
Nathan Adams d6b8d6e488 webgl: Added debug info to webgl renderer 2023-01-05 05:51:32 +01:00
Nathan Adams a69d30bb67 render: Add debug info method to renderer backends 2023-01-05 05:51:32 +01:00
Aaron Hill 10491a1be9 core: Store data in `BitmapData` instead of `Bitmap`
This makes `Bitmap` delegate to `BitmapData` for
all of the bitmap-related information (handle, width, and height).
As a result, we now unconditionally store a `BitmapData` in `Bitmap`.

As a result, swapping the underling `BitmapData` instance will
automatically change the properties (and rendered image) of a `Bitmap`.

This required some refactoring in the render backends in order to
get access to a `BitmapHandle` through `BitmapData`.
2023-01-03 18:01:41 -07:00
dependabot[bot] b15c1bbfa3 build(deps): bump once_cell from 1.16.0 to 1.17.0
Bumps [once_cell](https://github.com/matklad/once_cell) from 1.16.0 to 1.17.0.
- [Release notes](https://github.com/matklad/once_cell/releases)
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md)
- [Commits](https://github.com/matklad/once_cell/compare/v1.16.0...v1.17.0)

---
updated-dependencies:
- dependency-name: once_cell
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-03 10:11:05 +02:00
Aaron Hill 172326005b Remove lifetime parameter from CommandHandler
The wgpu backend no longer needs this.
2023-01-03 04:37:28 +01:00
Nathan Adams 3b209bd6aa wgpu: Use frame-temporary buffer for offscreen rendering 2023-01-03 03:39:13 +01:00
Nathan Adams 533d104337 wgpu: Don't load or store the depth side of the depth buffer, we only care for stencil 2023-01-03 03:39:13 +01:00
Nathan Adams eaff82ea7e wgpu: Cleaned up some buffer binding api 2023-01-03 03:39:13 +01:00
Nathan Adams 28768f2ad8 render: Make CommandList a struct instead of a tuple 2023-01-03 03:39:13 +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 353a3116a4 wgpu: Define the sizes of uniforms upfront instead of at each call 2023-01-03 03:39:13 +01:00
Nathan Adams ae5d92693f wgpu: Moved DrawCommand handling to CommandRenderer::execute 2023-01-03 03:39:13 +01:00
Nathan Adams 7944b6dd9e wgpu: Inlined CommandRenderer::execute into Surface::draw_commands 2023-01-03 03:39:13 +01:00
Nathan Adams a71b5b4570 wgpu: Move command renderer to surface/commands.rs 2023-01-03 03:39:13 +01:00
Nathan Adams 0272eda121 wgpu: Refactor surface command target to its own file 2023-01-03 03:39:13 +01:00
Nathan Adams a657feadae wgpu: Clear out texture pool when resized 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 b4c2030af8 wgpu: Appease beta clippy. again. 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