Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Further bloom improvements #4

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
221 commits
Select commit Hold shift + click to select a range
51aab03
Bump gilrs version to 0.10 (#6558)
james7132 Nov 15, 2022
11c544c
Remove redundant table and sparse set component IDs from Archetype (#…
james7132 Nov 15, 2022
6763b31
Immutable sparse sets for metadata storage (#4928)
james7132 Nov 15, 2022
00684d9
Fix FilteredAccessSet get_conflicts inconsistency (#5105)
nicopap Nov 16, 2022
9f51651
Replace BlobVec's swap_scratch with a swap_nonoverlapping (#4853)
james7132 Nov 16, 2022
a02e44c
Don't kill contributors on window squish (#6675)
Dorumin Nov 18, 2022
63c0cca
Update old docs from Timer (#6646)
edgarssilva Nov 18, 2022
0a853f1
wasm: pad globals uniform also in 2d (#6643)
mockersf Nov 18, 2022
4209fca
Make spawn_dynamic return InstanceId (#6663)
DasLixou Nov 18, 2022
5972879
Remove ImageMode (#6674)
ickshonpe Nov 18, 2022
2cd0bd7
improve compile time by type-erasing wgpu structs (#5950)
robtfm Nov 18, 2022
cb8fe5b
Removed Mobile Touch event y-axis flip (#6597)
slyedoc Nov 18, 2022
e0c3c6d
Make Core Pipeline Graph Nodes Public (#6605)
cryscan Nov 18, 2022
15ea93a
Fix size_hint for partially consumed QueryIter and QueryCombinationIt…
nicopap Nov 21, 2022
210979f
Fix panicking on another scope (#6524)
james7132 Nov 21, 2022
55ca7fc
Split Component Ticks (#6547)
james7132 Nov 21, 2022
b3e45b7
Expose set_cursor_hittest() from winit (#6664)
alphastrata Nov 21, 2022
bdd5cee
Add Box::from_corners method (#6672)
komadori Nov 21, 2022
ed2ea0d
The `update_frame_count` system should be placed in CorePlugin (#6676)
phuocthanhdo Nov 21, 2022
30070a9
Add `Transform::look_to` (#6692)
tim-blackbird Nov 21, 2022
174819b
ExtractComponent output optional associated type (#6699)
torsteingrindvik Nov 21, 2022
96e09f0
Fix PipeSystem panicking with exclusive systems (#6698)
inodentry Nov 21, 2022
585dac0
Remove auto-margin properties from the examples (#6535)
garychia Nov 21, 2022
eaeba08
Parallelized transform propagation (#4775)
james7132 Nov 21, 2022
e2d1d9d
Update dead links in DefaultPlugins docs (#6695)
chrisjuchem Nov 21, 2022
daa57fe
Add try_* to add_slot_edge, add_node_edge (#6720)
torsteingrindvik Nov 21, 2022
d44e865
Shader defs can now have a value (#5900)
mockersf Nov 21, 2022
d6b642a
Change example colors to more saturated ones
StarLederer Nov 22, 2022
3f4ecb8
Make example colors brighter
StarLederer Nov 22, 2022
4398515
Switch to energy conserving blending
StarLederer Nov 22, 2022
d172215
Revert default intensity to 0.3
StarLederer Nov 22, 2022
5fbdc01
Fix possible crash
StarLederer Nov 22, 2022
4b63ea3
Fix outdated comment
StarLederer Nov 22, 2022
cf46dd2
fix mutable aliases for a very short time if `WorldCell` is already b…
jakobhellermann Nov 22, 2022
c069c54
Fix missing sRGB conversion for dithering non-HDR pipelines (#6707)
aevyrie Nov 22, 2022
a1607b8
Rename `EntityId` to `EntityIndex` (#6732)
tim-blackbird Nov 22, 2022
4e23743
bevy_reflect: Fix binary deserialization not working for unit structs…
MrGVSV Nov 23, 2022
7d57d7a
Remove `BuildWorldChildren` impl from `WorldChildBuilder` (#6727)
tim-blackbird Nov 23, 2022
3433a7b
Remove warning about missed events due to false positives (#6730)
alice-i-cecile Nov 23, 2022
8eb8ad5
await tasks to cancel (#6696)
hymm Nov 23, 2022
3827316
bevy_reflect: Register missing reflected types for `bevy_render` (#6725)
MrGVSV Nov 23, 2022
0562724
Move Android example to its own package (#6759)
mockersf Nov 25, 2022
c8c6aba
bevy_reflect: Remove `ReflectSerialize` and `ReflectDeserialize` regi…
MrGVSV Nov 25, 2022
d1528df
Warn instead of erroring when max_font_atlases is exceeded (#6673)
rparrett Nov 25, 2022
03bde74
impl `Reflect` for `&'static Path` (#6755)
JoJoJet Nov 25, 2022
17b7025
Fix set_cursor_grab_mode to try an alternative mode before giving an …
IceSentry Nov 26, 2022
ca74271
Fix docs typo (#6771)
devmitch Nov 27, 2022
5230729
Fix reflection for PathBuf and OsString (#6776)
Shatur Nov 27, 2022
64642fb
Remove unnecessary struct in Material AsBindGroup example (#6701)
IceSentry Nov 28, 2022
2364a30
Clarify duplicate logger error (#6757)
SpecificProtagonist Nov 28, 2022
416a33e
Add const `Entity::PLACEHOLDER` (#6761)
JoJoJet Nov 28, 2022
70d7f80
Make adding children idempotent (#6763)
JoJoJet Nov 28, 2022
1615834
Fix an incorrect safety comment in `World::get_resource` (#6764)
JoJoJet Nov 28, 2022
bbb652a
Fix documentation on spawining an entity (#6775)
mareq Nov 28, 2022
d79888b
Document and lock down types in bevy_ecs::archetype (#6742)
james7132 Nov 28, 2022
f119d9d
Add DrawFunctionsInternals::id() (#6745)
IceSentry Nov 28, 2022
7963bb9
Docs: amdgpu-pro-vulkan on Gentoo. (#6749)
R2Boyo25 Nov 28, 2022
295faa0
Add support for Rgb9e5Ufloat textures (#6781)
DGriffin91 Nov 28, 2022
0d833a3
Register Hash for glam types (#6786)
lewiszlw Nov 28, 2022
9c79b39
set AVAILABLE_STORAGE_BUFFER_BINDINGS to the actual number of buffers…
mockersf Nov 28, 2022
e954b85
Lock down access to Entities (#6740)
nakedible Nov 28, 2022
aea919a
Fix unnecessary conversions
StarLederer Nov 29, 2022
b91356b
Add note about global `.gitignore` to `CONTRIBUTING.md` — Instead of …
coreh Nov 30, 2022
0e9c6dd
try to fix run-examples (#6810)
hymm Dec 1, 2022
8faa12c
pin nightly to 2022-11-28 to fix miri (#6808)
hymm Dec 1, 2022
e89b043
Fix material alpha_mode in example global_vs_local_translation (#6658)
holyfight6 Dec 1, 2022
9b72780
Provide public `EntityRef::get_change_ticks_by_id` that takes `Compon…
sQu1rr Dec 2, 2022
c7d2cb1
Add methods `intersect_plane` and `get_point` to `Ray` (#6179)
tim-blackbird Dec 2, 2022
0e481ff
Remove the use of view_target.post_process_write()
StarLederer Dec 2, 2022
47f2e3d
Clean redundant parts of "upsample final" up
StarLederer Dec 2, 2022
d4f491c
Add comments for future generations
StarLederer Dec 2, 2022
e64900e
Use WGPU native blending constants to control bloom intensity (instea…
StarLederer Dec 2, 2022
193932f
Add a comment about blend factors
StarLederer Dec 2, 2022
8972fd3
Remove unused uniform value
StarLederer Dec 2, 2022
ec53b37
Clean an unnecessary bind group up
StarLederer Dec 2, 2022
4daff1b
Remove rouge line
StarLederer Dec 2, 2022
5fb4806
Mark unideal code with TODOs
StarLederer Dec 2, 2022
2ab6225
Move BloomSettings to its own module
StarLederer Dec 2, 2022
9191880
Mention search filters in CONTRIBUTING.md (#6804)
Ptipiak Dec 2, 2022
6ada356
bevy_reflect: Fix misplaced impls (#6829)
MrGVSV Dec 3, 2022
8945122
Intepret glTF colors as linear instead of sRGB (#6828)
BigWingBeat Dec 4, 2022
c55d553
Update tracing-chrome requirement from 0.6.0 to 0.7.0 (#6709)
dependabot[bot] Dec 4, 2022
05b498a
Make the `SystemParam` derive macro more flexible (#6694)
JoJoJet Dec 5, 2022
e8c0df9
Allow iterating over with EntityRef over the entire World (#6843)
james7132 Dec 5, 2022
17480b2
Remove APIs deprecated in 0.9 (#6801)
james7132 Dec 5, 2022
eff632d
Replace `World::read_change_ticks` with `World::change_ticks` within …
mnmaita Dec 5, 2022
77c59c2
Improve code/comments for `Ray::intersect_plane` and its tests (#6823)
tim-blackbird Dec 5, 2022
b337ed6
Borrow instead of consuming in `EventReader::clear` (#6851)
mvlabat Dec 5, 2022
83e8224
Add missing docs to `World::change_tick` and `World::read_change_tick…
JoJoJet Dec 5, 2022
e621acd
Remove `TextError::ExceedMaxTextAtlases(usize)` variant (#6796)
JayPavlina Dec 5, 2022
f9ad051
Remove unnecessary alternate create_texture path in prepare_asset for…
DGriffin91 Dec 5, 2022
9f0c41f
Adapt path type of dynamically_load_plugin (#6734)
polygon Dec 5, 2022
f9c52f9
Make proc macros hygienic in bevy_reflect_derive (#6752)
elbertronnie Dec 5, 2022
a3f203b
Use T::Storage::STORAGE_TYPE to optimize out unused branches (#6800)
james7132 Dec 5, 2022
530be10
Newtype ArchetypeRow and TableRow (#4878)
james7132 Dec 6, 2022
176d7df
docs: Use correct cargo-flamegraph upstream repo URL (#6873)
oliviacrain Dec 7, 2022
10898d1
Docs: Show how to compare two different traces in Tracy (#6869)
james7132 Dec 7, 2022
e087013
Updated docs for ``List`` Trait in ``bevy_reflect`` (#6872)
LinusKall Dec 7, 2022
bac0d89
remove a `doc(hidden)` on read only version of `derive(WorldQuery)` (…
BoxyUwU Dec 7, 2022
8eedc8f
ShaderDefVal: add an `UInt` option (#6881)
mockersf Dec 7, 2022
b58ca87
ci: Use Ubuntu 22.04 runner for run-examples, run-examples-on-wasm jo…
oliviacrain Dec 8, 2022
a5d70b8
Derive `Reflect` + `FromReflect` for window event types (#6235)
TehPers Dec 9, 2022
6308041
Fix Sparse Change Detection (#6896)
james7132 Dec 10, 2022
63f1a9d
bevy_reflect: Add `ReflectFromReflect` (v2) (#6245)
MrGVSV Dec 11, 2022
344a653
Make `AudioOutput` a Resource (#6436)
harudagondi Dec 11, 2022
07e7fa5
Document `World::clear_trackers()` (#6520)
djeedai Dec 11, 2022
81153a8
document file formats for `bytes` field of `AudioSource` (#6619)
dis-da-moe Dec 11, 2022
aea4c5b
[Fixes #6224] Add logging variants of system piping (#6751)
Edwox Dec 11, 2022
2e7925d
Add cylinder shape (#6809)
JayPavlina Dec 11, 2022
6903a94
get pixel size from wgpu (#6820)
hymm Dec 11, 2022
b37a6ca
Add reflection support for VecDeque (#6831)
ItsDoot Dec 11, 2022
0d67c32
Avoid triggering change detection for inputs (#6847)
james7132 Dec 11, 2022
95c0d99
Sprite sheet example: specify animation indices (#6861)
Pascualex Dec 11, 2022
ea80aca
unpin miri (#6863)
hymm Dec 11, 2022
c16791c
Document options for !Sync types for Component and Resources (#6864)
james7132 Dec 11, 2022
1af7362
Simplify trait hierarchy for `SystemParam` (#6865)
JoJoJet Dec 11, 2022
75880a0
run clear trackers on render world (#6878)
hymm Dec 11, 2022
ea8f746
Add `with_a` and friends to `Color` (#6899)
tim-blackbird Dec 11, 2022
f4818bc
scene viewer: can select a scene from the asset path (#6859)
mockersf Dec 11, 2022
26d6145
Document remaining members of bevy_utils (#6897)
james7132 Dec 11, 2022
87bf0e2
Remove unnecessary branching from bundle insertion (#6902)
james7132 Dec 11, 2022
3669176
Document undocumented features of AsBindGroup derive (#6910)
IceSentry Dec 11, 2022
5447768
Remove `render` feature group (#6912)
Shatur Dec 11, 2022
b1a634c
Fix alpha channel in RGB32F image texture format conversion (#6914)
SuperSodaSea Dec 11, 2022
68a7127
Update linux_dependencies.md (#6915)
zxygentoo Dec 11, 2022
aeb2c4b
Update linux_dependencies.md for Arch - Vulkan API not only for Intel…
DasLixou Dec 11, 2022
4820917
Add `set_if_neq` method to `DetectChanges` trait (Rebased) (#6853)
alice-i-cecile Dec 11, 2022
79b9231
Move system_commands spans into apply_buffers (#6900)
james7132 Dec 11, 2022
b7d6ee8
Update concurrent-queue to 2.0 (#6538)
tim-blackbird Dec 13, 2022
bad3d57
update cargo deny config with latest list of duplicate crates in depe…
mockersf Dec 13, 2022
bf8e301
Implement parametric bloom blending curve
StarLederer Dec 14, 2022
ec0478d
Fix clippy lints and failed test with Rust 1.66 (#6945)
rparrett Dec 15, 2022
38d567d
Make `AsBindGroup` unsized (#6937)
JonahPlusPlus Dec 16, 2022
a574388
Convert builder functions to constants
StarLederer Dec 16, 2022
85af8f9
Implement additive bloom mode
StarLederer Dec 16, 2022
1dc0d41
Clean up bloom blending
StarLederer Dec 16, 2022
774f008
Add a sugestion for future improvement
StarLederer Dec 16, 2022
0d60603
Remove `EntityCommands::add_children` (#6942)
tim-blackbird Dec 16, 2022
00fa0d8
Apply `WindowDescriptor` settings in all modes (#6934)
tim-blackbird Dec 16, 2022
f8e4b75
Add `EntityMap::iter()` (#6935)
Zeenobit Dec 16, 2022
bd615cb
Shrink DrawFunctionId (#6944)
james7132 Dec 20, 2022
5b8b7dc
Add a stress test profile (#6901)
james7132 Dec 20, 2022
e8b2854
Cleanup dynamic scene before building (#6254)
mockersf Dec 20, 2022
53a5bbe
Add thread create/destroy callbacks to TaskPool (#6561)
james7132 Dec 20, 2022
1523c38
Directly extract joints into SkinnedMeshJoints (#6833)
james7132 Dec 20, 2022
0761594
Use `World` helper methods for sending `HierarchyEvent`s (#6921)
tim-blackbird Dec 20, 2022
15b19b9
Move 'startup' Resource `WgpuSettings` into the `RenderPlugin` (#6946)
tim-blackbird Dec 20, 2022
a5106c8
Remove needless manual default impl of ButtonBundle (#6970)
nicopap Dec 20, 2022
8545580
text aspect ratio bug fix (#6825)
ickshonpe Dec 20, 2022
c38659d
Add fmt::Pointer impl for bevy_ptr::{Ptr, PtrMut, OwnedPtr} (#6980)
MrGunflame Dec 20, 2022
150a357
Fix UiCameraConfig doc (link to the Camera page) (#6969)
redwarp Dec 20, 2022
cf480d9
Fix suppression of all console logs when `trace_tracy` is enabled (#6…
nfagerlund Dec 20, 2022
0363e0b
Support tuple structs with `#[derive(SystemParam)]` (#6957)
JoJoJet Dec 20, 2022
025996b
Lift the 16-field limit from the `SystemParam` derive (#6867)
JoJoJet Dec 21, 2022
2938792
Upgrade to Taffy 0.2 (#6743)
rparrett Dec 21, 2022
2f35c92
Revamp bloom blend function
StarLederer Dec 22, 2022
896ee46
Change order to BloomSettings -> PrefilterSettings -> BloomMode
StarLederer Dec 22, 2022
9f1c6cc
Rename BloomMode to BloomCompositeMode
StarLederer Dec 22, 2022
79bc5b9
Fix outdated names
StarLederer Dec 22, 2022
ec3c569
Rename OLDSCHOOL to OLD_SCHOOL
StarLederer Dec 22, 2022
9bef787
Change decate format in comment
StarLederer Dec 22, 2022
f849c4e
Update doc comment
StarLederer Dec 22, 2022
9298bc6
Rename PrefilterSettings to BloomPrefilterSettings
StarLederer Dec 22, 2022
3452b32
Register new Reflect types with the app
StarLederer Dec 22, 2022
c74f301
Remove unused use
StarLederer Dec 22, 2022
1aeaafa
Add "how to adopt pull requests" section (#6895)
oCaioOliveira Dec 22, 2022
ca87830
#4231: panic when App::run() is called from Plugin::build() (#4241)
Vrixyz Dec 24, 2022
fa2b5f2
Add documentation to `ParamSet` (#6998)
Nanox19435 Dec 25, 2022
0d98327
Support `SystemParam` types with const generics (#7001)
JoJoJet Dec 25, 2022
b39817a
Add `add_child`, `set_parent` and `remove_parent` to `EntityMut` (#6926)
tim-blackbird Dec 25, 2022
c7791ad
Organized scene_viewer into plugins for reuse and organization (#6936)
zardini123 Dec 25, 2022
d3d635b
Constify SpritePipelineKey implementation. (#6976)
Dec 25, 2022
965ebef
Replace UUID based IDs with a atomic-counted ones (#6988)
kurtkuehnert Dec 25, 2022
9717204
Rework manual event iterator so we can actually name the type (#5735)
Aceeri Dec 25, 2022
a0448ec
enum `Visibility` component (#6320)
ickk Dec 25, 2022
8ad9a7c
Rename camera "priority" to "order" (#6908)
Aceeri Dec 25, 2022
b3d5906
Fix unsoundness for `propagate_recursive` (#7003)
JoJoJet Dec 25, 2022
83b602a
Relax `Sync` bound on anonymous `Command`s (#7014)
JoJoJet Dec 25, 2022
65d3901
Add a trait for commands that run for a given `Entity` (#7015)
JoJoJet Dec 25, 2022
a91f89d
Add a basic example for system ordering (#7017)
JoJoJet Dec 25, 2022
48b4a45
Add a const `PipeSystem` constructor (#7019)
JoJoJet Dec 25, 2022
b8a9933
Add a reparented_to method to `GlobalTransform` (#7020)
nicopap Dec 25, 2022
b6066c3
Fix ndk-macro link (#7027)
jinleili Dec 25, 2022
7763b5e
log system info on startup (#5454)
IceSentry Dec 26, 2022
f1a21db
don't error when sending HierarchyEvents when Event type not register…
mockersf Dec 26, 2022
4ca19ac
Update linux_dependencies.md (#7021)
aktaboot Dec 26, 2022
741a91e
Replace `WgpuAdapterInfo` with `RenderAdapterInfo` in the documentati…
jinleili Dec 26, 2022
5566d73
Nicer usage for scene viewer (#7035)
Aceeri Dec 27, 2022
ca85f6c
Extract common RenderPhase code into render method (#7013)
kurtkuehnert Dec 27, 2022
0ddaa7e
Round out the untyped api s (#7009)
TheRawMeatball Dec 27, 2022
09c64ff
Remove redundant bitwise OR `TEXTURE_ADAPTER_SPECIFIC_FORMAT_FEATURES…
jinleili Dec 27, 2022
3d0a912
Add a doc comment to compute_blend_factor and move it higher
StarLederer Dec 28, 2022
9d5c544
Add a link to desmos
StarLederer Dec 28, 2022
dc257d4
Fix an outdated comment
StarLederer Dec 28, 2022
df53631
Update example comments
StarLederer Dec 28, 2022
ad1f11c
Fix bad/outdated comments
StarLederer Dec 28, 2022
2665299
Use ```bevy``` with default features in iOS example (#7042)
silvestrpredko Dec 28, 2022
3f51432
Implement SDR bloom
StarLederer Dec 28, 2022
61e027e
Shadow render phase - pass the correct view entity (#7048)
mockersf Dec 28, 2022
d296326
improve nix docs (#7044)
figsoda Dec 29, 2022
b027d40
Update Box vertices comment (#7055)
foxzool Dec 29, 2022
8971a88
Remove unused uniforms from upsampling stage
StarLederer Jan 2, 2023
290d636
add system information plugin and update relevant examples (#5911)
l1npengtul Jan 2, 2023
f8a229b
bevy_reflect: Add compile fail tests for bevy_reflect (#7041)
MrGVSV Jan 2, 2023
8a0d1d1
Specialize downsampling pipeline
StarLederer Jan 2, 2023
dac7680
Remove outdated line
StarLederer Jan 2, 2023
82a553d
Update example
StarLederer Jan 2, 2023
a5b1c46
Extend EntityLocation with TableId and TableRow (#6681)
james7132 Jan 2, 2023
b833bda
Allow to reuse the same RenderPass for multiple RenderPhases (#7043)
kurtkuehnert Jan 2, 2023
4ff46bf
Fix incorrect operator
StarLederer Jan 2, 2023
0214e39
Speed up threshold controls
StarLederer Jan 2, 2023
b44b606
bevy_pbr: Avoid copying structs and using registers in shaders (#7069)
superdump Jan 2, 2023
1cbe98a
Add descriptions to bloom parameters
StarLederer Jan 2, 2023
ebe2cff
Improve bloom calculation in additive mode
StarLederer Jan 2, 2023
3e8d9fa
Link to my parametric curve visualizer
StarLederer Jan 2, 2023
c0a7f2f
Partly implement the fix from #6802
StarLederer Jan 3, 2023
cc57711
Merge remote-tracking branch 'upstream/main' into bloom-transparent-f…
StarLederer Jan 3, 2023
9377e14
Remove error print
StarLederer Jan 3, 2023
12e4b10
Slighly limit bloom texture count
StarLederer Jan 3, 2023
75f59f8
Implement fix from #6802
StarLederer Jan 3, 2023
a495344
Fix transparency
StarLederer Jan 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 29 additions & 15 deletions .github/start-wasm-example/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .github/start-wasm-example/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
"author": "",
"license": "ISC",
"devDependencies": {
"@playwright/test": "^1.22.1"
"@playwright/test": "^1.28.1"
},
"dependencies": {
"dotenv": "^16.0.1"
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ jobs:
~/.cargo/git/db/
target/
crates/bevy_ecs_compile_fail_tests/target/
crates/bevy_reflect_compile_fail_tests/target/
key: ${{ runner.os }}-cargo-check-compiles-${{ hashFiles('**/Cargo.toml') }}
- uses: dtolnay/rust-toolchain@stable
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/validation-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ jobs:
run: cargo install --force cargo-apk

- name: Build APK
run: ANDROID_NDK_ROOT=$ANDROID_NDK_LATEST_HOME cargo apk build --example android_example
run: ANDROID_NDK_ROOT=$ANDROID_NDK_LATEST_HOME cargo apk build --package bevy-android-example

run-examples-on-windows-dx12:
runs-on: windows-latest
Expand Down
37 changes: 34 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -262,10 +262,11 @@ When in doubt about a matter of architectural philosophy, refer back to [*What w
Once you're happy with the work and feel you're reasonably qualified to assess quality in this particular area, leave your `Approved` review on the PR.
If you're new to GitHub, check out the [Pull Request Review documentation](https://docs.github.com/en/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/about-pull-request-reviews). Anyone can leave reviews ... no special permissions are required!

There are a two main places you can check for things to review:
There are three main places you can check for things to review:

1. Pull requests on [bevy](https://github.com/bevyengine/bevy/pulls) and the [bevy-website](https://github.com/bevyengine/bevy-website/pulls) repos.
2. [RFCs](https://github.com/bevyengine/rfcs), which need extensive thoughtful community input on their design.
1. Pull request which are ready and in need of more reviews on [bevy](https://github.com/bevyengine/bevy/pulls?q=is%3Aopen+is%3Apr+-label%3AS-Ready-For-Final-Review+-draft%3A%3Atrue+-label%3AS-Needs-RFC+-reviewed-by%3A%40me+-author%3A%40me)
2. Pull requests on [bevy](https://github.com/bevyengine/bevy/pulls) and the [bevy-website](https://github.com/bevyengine/bevy-website/pulls) repos.
3. [RFCs](https://github.com/bevyengine/rfcs), which need extensive thoughtful community input on their design.

Official focus areas and work done by @cart go through this review process as well.
Not even our project lead is exempt from reviews and RFCs!
Expand All @@ -274,6 +275,35 @@ By giving feedback on this work (and related supporting work), you can help us m
Finally, if nothing brings you more satisfaction than seeing every last issue labeled and all resolved issues closed, feel free to message @cart for a Bevy org role to help us keep things tidy.
As discussed in [*How we're organized*](#how-were-organized), this role only requires good faith and a basic understanding of our development process.

### How to adopt pull requests

Occasionally authors of pull requests get busy or become unresponsive, or project members fail to reply in a timely manner.
This is a natural part of any open source project.
To avoid blocking these efforts, these pull requests may be *adopted*, where another contributor creates a new pull request with the same content.
If there is an old pull request that is without updates, comment to the organization whether it is appropriate to add the
*[S-Adopt-Me](https://github.com/bevyengine/bevy/labels/S-Adopt-Me)* label, to indicate that it can be *adopted*.
If you plan on adopting a PR yourself, you can also leave a comment on the PR asking the author if they plan on returning.
If the author gives permission or simply doesn't respond after a few days, then it can be adopted.
This may sometimes even skip the labeling process since at that point the PR has been adopted by you.

With this label added, it's best practice to fork the original author's branch.
This ensures that they still get credit for working on it and that the commit history is retained.
When the new pull request is ready, it should reference the original PR in the description.
Then notify org members to close the original.

* For example, you can reference the original PR by adding the following to your PR description:

`Adopted #number-original-pull-request`

### Maintaining code

Maintainers can merge uncontroversial pull requests that have at least two approvals (or at least one for trivial changes).

These search filters show the requests that can be merged by maintainers, and those which need a final approval from @cart.

1. Pulls requests which are ready for maintainers to merge without consultation: [requests to pull](https://github.com/bevyengine/bevy/pulls?q=is%3Aopen+is%3Apr+label%3AS-Ready-For-Final-Review+-label%3AS-Controversial+-label%3AS-Blocked+-label%3AS-Adopt-Me+)
2. Pull requests which need final input from @cart: [requests to verify](https://github.com/bevyengine/bevy/pulls?q=is%3Aopen+is%3Apr+label%3AS-Ready-For-Final-Review+label%3AS-Controversial+)

### Contributing code

Bevy is actively open to code contributions from community members.
Expand All @@ -282,6 +312,7 @@ If you're new to Bevy, here's the workflow we use:
1. Fork the `bevyengine/bevy` repository on GitHub. You'll need to create a GitHub account if you don't have one already.
2. Make your changes in a local clone of your fork, typically in its own new branch.
1. Try to split your work into separate commits, each with a distinct purpose. Be particularly mindful of this when responding to reviews so it's easy to see what's changed.
2. Tip: [You can set up a global `.gitignore` file](https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files#configuring-ignored-files-for-all-repositories-on-your-computer) to exclude your operating system/text editor's special/temporary files. (e.g. `.DS_Store`, `thumbs.db`, `*~`, `*.swp` or `*.swo`) This allows us to keep the `.gitignore` file in the repo uncluttered.
3. To test CI validations locally, run the `cargo run -p ci` command. This will run most checks that happen in CI, but can take some time. You can also run sub-commands to iterate faster depending on what you're contributing:
* `cargo run -p ci -- lints` - to run formatting and clippy
* `cargo run -p ci -- test` - to run tests
Expand Down
62 changes: 25 additions & 37 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@ readme = "README.md"
repository = "https://github.com/bevyengine/bevy"

[workspace]
exclude = ["benches", "crates/bevy_ecs_compile_fail_tests"]
exclude = ["benches", "crates/bevy_ecs_compile_fail_tests", "crates/bevy_reflect_compile_fail_tests"]
members = [
"crates/*",
"examples/android",
"examples/ios",
"tools/ci",
"tools/spancmp",
Expand All @@ -31,7 +32,13 @@ default = [
"bevy_gilrs",
"bevy_scene",
"bevy_winit",
"render",
"bevy_core_pipeline",
"bevy_pbr",
"bevy_gltf",
"bevy_render",
"bevy_sprite",
"bevy_text",
"bevy_ui",
"png",
"hdr",
"vorbis",
Expand All @@ -42,17 +49,6 @@ default = [
# Force dynamic linking, which improves iterative compile times
dynamic = ["bevy_dylib"]

# Rendering support
render = [
"bevy_internal/bevy_core_pipeline",
"bevy_internal/bevy_pbr",
"bevy_internal/bevy_gltf",
"bevy_internal/bevy_render",
"bevy_internal/bevy_sprite",
"bevy_internal/bevy_text",
"bevy_internal/bevy_ui",
]

# Optional bevy crates
bevy_animation = ["bevy_internal/bevy_animation"]
bevy_asset = ["bevy_internal/bevy_asset"]
Expand Down Expand Up @@ -1362,7 +1358,7 @@ wasm = true
# Tools
[[example]]
name = "scene_viewer"
path = "examples/tools/scene_viewer.rs"
path = "examples/tools/scene_viewer/main.rs"

[package.metadata.example.scene_viewer]
name = "Scene Viewer"
Expand Down Expand Up @@ -1442,6 +1438,16 @@ description = "Illustrates creating and updating a button"
category = "UI (User Interface)"
wasm = true

[[example]]
name = "window_fallthrough"
path = "examples/ui/window_fallthrough.rs"

[package.metadata.example.window_fallthrough]
name = "Window Fallthrough"
description = "Illustrates how to access `winit::window::Window`'s `hittest` functionality."
category = "UI (User Interface)"
wasm = false

[[example]]
name = "font_atlas_debug"
path = "examples/ui/font_atlas_debug.rs"
Expand Down Expand Up @@ -1597,31 +1603,13 @@ description = "Demonstrates resizing and responding to resizing a window"
category = "Window"
wasm = true

# Android
[[example]]
crate-type = ["cdylib"]
name = "android_example"
path = "examples/android/android.rs"

[package.metadata.example.android_example]
hidden = true

[package.metadata.android]
package = "org.bevyengine.example"
apk_name = "bevyexample"
assets = "assets"
resources = "assets/android-res"
build_targets = ["aarch64-linux-android", "armv7-linux-androideabi"]

[package.metadata.android.sdk]
target_sdk_version = 31

[package.metadata.android.application]
icon = "@mipmap/ic_launcher"
label = "Bevy Example"

[profile.wasm-release]
inherits = "release"
opt-level = "z"
lto = "fat"
codegen-units = 1

[profile.stress-test]
inherits = "release"
lto = "fat"
panic = "abort"
32 changes: 29 additions & 3 deletions crates/bevy_app/src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ pub struct App {
sub_apps: HashMap<AppLabelId, SubApp>,
plugin_registry: Vec<Box<dyn Plugin>>,
plugin_name_added: HashSet<String>,
/// A private marker to prevent incorrect calls to `App::run()` from `Plugin::build()`
is_building_plugin: bool,
}

impl Debug for App {
Expand Down Expand Up @@ -107,9 +109,7 @@ impl Default for App {
#[cfg(feature = "bevy_reflect")]
app.init_resource::<AppTypeRegistry>();

app.add_default_stages()
.add_event::<AppExit>()
.add_system_to_stage(CoreStage::Last, World::clear_trackers);
app.add_default_stages().add_event::<AppExit>();

#[cfg(feature = "bevy_ci_testing")]
{
Expand Down Expand Up @@ -138,6 +138,7 @@ impl App {
sub_apps: HashMap::default(),
plugin_registry: Vec::default(),
plugin_name_added: Default::default(),
is_building_plugin: false,
}
}

Expand All @@ -150,20 +151,31 @@ impl App {
#[cfg(feature = "trace")]
let _bevy_frame_update_span = info_span!("frame").entered();
self.schedule.run(&mut self.world);

for sub_app in self.sub_apps.values_mut() {
(sub_app.runner)(&mut self.world, &mut sub_app.app);
sub_app.app.world.clear_trackers();
}

self.world.clear_trackers();
}

/// Starts the application by calling the app's [runner function](Self::set_runner).
///
/// Finalizes the [`App`] configuration. For general usage, see the example on the item
/// level documentation.
///
/// # Panics
///
/// Panics if called from `Plugin::build()`, because it would prevent other plugins to properly build.
pub fn run(&mut self) {
#[cfg(feature = "trace")]
let _bevy_app_run_span = info_span!("bevy_app").entered();

let mut app = std::mem::replace(self, App::empty());
if app.is_building_plugin {
panic!("App::run() was called from within Plugin::Build(), which is not allowed.");
}
let runner = std::mem::replace(&mut app.runner, Box::new(run_once));
(runner)(app);
}
Expand Down Expand Up @@ -856,7 +868,9 @@ impl App {
plugin_name: plugin.name().to_string(),
})?;
}
self.is_building_plugin = true;
plugin.build(self);
self.is_building_plugin = false;
self.plugin_registry.push(plugin);
Ok(self)
}
Expand Down Expand Up @@ -1103,4 +1117,16 @@ mod tests {
fn can_add_twice_the_same_plugin_not_unique() {
App::new().add_plugin(PluginD).add_plugin(PluginD);
}

#[test]
#[should_panic]
fn cant_call_app_run_from_plugin_build() {
struct PluginRun;
impl Plugin for PluginRun {
fn build(&self, app: &mut crate::App) {
app.run();
}
}
App::new().add_plugin(PluginRun);
}
}
Loading