Add layer observer based on raw-window-metal
#7026
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
After #6107, resizing is still broken, and the right way to fix it is to create a sublayer that resizes itself based on the superlayer using key-value observing (see this for an introduction).
I have written a crate for this already, called
raw-window-metal
and filed #6210, but that crate depends onobjc2
, which is still under review by Firefox/Mozilla. So in the meantime, let's fix this directly in Wgpu.Fixes #7011 and a few other issues, and should be fairly cleanly backport-able to v23 or v24 if desired.
I didn't write all that much documentation and safety comments here, and was kinda sloppy in some places, because the hope is that this fix will be temporary.
Testing
Tested by cherry-picking onto v23.1.0, and running Bevy's mobile example in the iOS simulator.
Checklist
cargo fmt
.taplo format
.cargo clippy
.cargo xtask test
to run tests.CHANGELOG.md
. See simple instructions inside file.