Move `Msaa` to component
Switches Msaa from being a globally configured resource to a per camera view component.
Closes #7194
Objective
Allow individual views to describe their own MSAA settings. For example, when rendering to different windows or to different parts of the same view.
Solution
Make Msaa a component that is required on all camera bundles.
Testing
Ran a variety of examples to ensure that nothing broke.
TODO:
- [ ] Make sure android still works per previous comment in
extract_windows.
Migration Guide
Msaa is no longer configured as a global resource, and should be specified on each spawned camera if a non-default setting is desired.
Did you test this with multiple cameras with different MSAA modes? Iirc there are some pipeline properties that depend on it, so things might break if multiple levels are enabled at once.
Yes! Here are some foxes:
Here's a simple patch that might help alleviate the problem of having the proliferation of main textures be confusing to users who want to run split screen setups: https://github.com/bevyengine/bevy/pull/14287.
the mobile example needs to be updated, or this will fail merging on android compilation
the mobile example needs to be updated, or this will fail merging on android compilation
Should be fixed now. This PR also removes the more advanced per-window feature detection. I'd be happy to add that back in but wasn't sure where exactly it should go.
I think some things were missed here. Iirc in TAA plugin docs and meshlet plugin docs, it mentions that it automatically disabled MSAA, which is no longer true.