Commit graph

1548 commits

Author SHA1 Message Date
Carter Anderson
c32e637384
Asset system rework and GLTF scene loading (#693) 2020-10-18 13:48:15 -07:00
Mat Hostetter
871790c6e0
Adjust how ArchetypeAccess tracks mutable & immutable deps (#660)
`ArchetypeAccess` was tracking `immutable` and `mutable` separately.
This means that checking is_compatible requires three checks:
m+m, m+i, i+m.

Instead, continue tracking `mutable` accesses, but instead of
`immutable` track `immutable | mutable` as another `accessed` bit mask.
This drops the comparisons to two (m+a, a+m) and turns out to be
what the rest of the code base wants too, unifying various duplicated
checks and loops.
2020-10-15 13:39:01 -07:00
Nathan Jeffords
7e23e132ef
add version of the ecs's write_world method that takes a pre-boxed world writer (#661)
Co-authored-by: Nathan Jeffords <njeffords@comtechefdata.com>
2020-10-14 14:01:08 -07:00
Carter Anderson
930eba4ccd
add thread local resources (#671) 2020-10-12 15:09:44 -07:00
Nathan Stocks
bf501b77cc
Don't panic when despawning entity multiple times (#649)
Emit a debug log message instead of a panic when despawning an entity which has already been despawned.
2020-10-08 16:58:19 -07:00
memoryruins
ebce1f9c4a
Remove outdated ecs docs (#646) 2020-10-08 15:32:25 -07:00
Grayson Burton
354d71cc1f
The Great Debuggening (#632)
The Great Debuggening
2020-10-08 11:43:01 -07:00
Boutillier
1bdb9d3b00
Fix Added behaviour for QueryOne get. (#543)
Query unchanged as impacts performances.
Added tests in bevy_ecs/hecs
2020-10-05 10:38:12 -07:00
Jonas Matser
3a4eacbdee
Adds derive for missing debug implementations (#597) 2020-10-01 10:58:21 -07:00
Raymond
74ad1c3752
Add remove bundle to bevy_ecs commands (#579)
add remove bundle to bevy_ecs commands
2020-09-26 14:27:56 -07:00
Alexander Sepity
85a7f883d1
Fix typo in #569. (#582) 2020-09-26 10:26:19 -07:00
Alexander Sepity
3abfcad7ab
Patch memory leak in Archetype::grow(). (#569) 2020-09-25 12:33:27 -07:00
Carter Anderson
028a22b129
asset: use bevy_tasks in AssetServer (#550) 2020-09-21 20:23:09 -07:00
HyperLightKitsune
295e1f0a18
use FnOnce in Commands and ChildBuilder where possible (#535)
use FnOnce in Commands and ChildBuilder
2020-09-21 13:51:38 -07:00
Carter Anderson
74dba5f36b
release: 0.2.1 (#533) 2020-09-20 15:58:32 -07:00
Carter Anderson
ba5af4dd56
release: 0.2.0 (#520) 2020-09-19 15:29:08 -07:00
Carter Anderson
70ad6671db
ecs: use generational entity ids and other optimizations (#504)
ecs: use generational entity ids and other optimizations
2020-09-17 17:16:38 -07:00
Jonas Matser
3b3b0195bc
Adds profiler_start/stop to parallel_executor (#474) 2020-09-11 12:14:36 -07:00
BimDav
4ef18e2608
Resource change tracking (#388)
* Add mutated tracker on resources and ChangedRes query for added or mutated resources.

* ResMut:::new() now takes a reference to a 'mutated' flag in its archetype.

* Change FetchResource so that get() returns an Option. Systems using Resources will only be called if all fetched Resources are Some(). This is done to implement ChangedRes, which is Some iff the Resource has been changed.

* Add OrRes for a logical or in tuples of Resource queries.

* Separate resource query get() in is_some() and get() methods for clarity

* Remove unneeded unsafe

* Change ResMut::new()
2020-09-10 13:15:02 -07:00
Smite Rust
a9ce7f4e82
update dependencies (#470) 2020-09-10 12:54:24 -07:00
Carter Anderson
ac117019e2 resolve unused variable warning in release builds 2020-09-08 13:29:55 -07:00
Grant Moyer
586303fd53
Parallel queries (#292)
Add support for Parallel Queries
2020-09-08 12:18:32 -07:00
Carter Anderson
413caae7bb resolve errors from latest clippy version 2020-09-07 15:00:03 -07:00
Boxy
d86fae8147
Update docs for Updated, Changed and Mutated (#451)
Update docs for Updated, Changed and Mutated
2020-09-07 13:52:03 -07:00
Tristan Pemble
43463a7a06
Optimize transform systems to only run on change (#417)
Optimize transform systems to only run on change
2020-09-06 12:53:14 -07:00
Philip Degarmo
9eba19c8f0
Fix for bug #449 (#450)
Fix for a bug (#449) in scheduler that could result in systems running concurrently when they shouldn't.
2020-09-06 12:07:34 -07:00
Philip Degarmo
8b3553002d
Reworked parallel executor to not block (#437)
Reworked parallel executor to not block
2020-09-05 22:05:33 -07:00
BimDav
25f62f7250
Add support for 'or' in ECS querying for tuple queries (#358)
Add Or query to do a logical or on a set of queries
2020-09-01 18:12:54 -07:00
Boxy
57177c9e98
Bump entities to u128 to avoid collisions (#117) (#393) 2020-08-31 11:51:28 -07:00
Boxy
3efbaca104
Fix archetypes_generation being incorrectly updated for systems (#294) (#383) 2020-08-29 18:38:05 -07:00
Lachlan Sneff
17e7642611
Task System for Bevy (#384)
Add bevy_tasks crate to replace rayon
2020-08-29 12:35:41 -07:00
Robbie Davenport
4aabe983ec
Switch usage of std HashMap/HashSet default hasher, to aHash algo (#258)
switch to ahash for HashMaps and HashSets via a new bevy_utils crate
2020-08-28 17:08:51 -07:00
Xavientois
0ae74a4a4d
Some examples of documentation (#338) 2020-08-24 17:57:10 -07:00
Carter Anderson
b925e22949 0.1.3 upgrade 2020-08-22 10:16:52 -07:00
Lachlan Sneff
1eca55e571
Replace std synchronization primitives with parking_lot (#210)
* Replace std::sync::Mutex with parking_lot::Mutex
* Replace std::sync::RwLock with parking_lot::RwLock
2020-08-21 14:55:16 -07:00
Victor "multun" Collod
c38420f1e9 enforce clippy for all target and features 2020-08-16 07:20:06 -07:00
Victor "multun" Collod
d138647818 enforce cargo fmt --check 2020-08-16 05:02:06 -07:00
Victor "multun" Collod
1ec7183494 profiling: fix build 2020-08-16 02:06:59 -07:00
Carter Anderson
f85867139b
Merge pull request #199 from multun/query-mut-debug
ecs: impl Debug for Mut<...>
2020-08-15 17:57:37 -07:00
Victor "multun" Collod
8472789bbb ecs: impl Debug for Mut<...> 2020-08-15 17:46:36 -07:00
Fabian Würfl
458a169ad2 Add possibility to control num_threads and stack_size of rayon::ThreadPool 2020-08-14 19:15:53 +02:00
Carter Anderson
938d381d45
Merge pull request #178 from JohnDoneth/master
Add Command::remove_one
2020-08-13 17:26:22 -07:00
John Doneth
589af3dc51 Add Command::remove_one 2020-08-13 19:38:38 -04:00
Halfwhit
14bfd698c5 Update lib.rs 2020-08-13 17:39:33 +01:00
Victor "multun" Collod
8662ab3622 ecs: remove unused Entities::current 2020-08-12 21:16:20 -07:00
Carter Anderson
423c5e3e0f ecs: prepare for publishing 2020-08-09 18:16:12 -07:00
Carter Anderson
9aee5323e1 add crate metadata 2020-08-09 17:24:27 -07:00
Carter Anderson
3d09459813 add more doc comments and clean up some public exports 2020-08-09 16:13:04 -07:00
Carter Anderson
f85ec04a48 ecs: prepare system ranges based on stage and thread locals 2020-07-30 13:19:55 -07:00
Carter Anderson
2929197d9b render: add RenderPass queries. move ui to its own pass 2020-07-28 20:11:27 -07:00
Carter Anderson
bd8e979de8 ecs: only borrow/iterate archetypes currently used by a given query 2020-07-28 16:37:37 -07:00
Carter Anderson
64cc382477 ecs: move copy of QueryBorrow into bevy_ecs and fix perf regressions 2020-07-28 16:17:21 -07:00
Carter Anderson
7212b70478 rustfmt changes 2020-07-28 14:24:03 -07:00
Moxinilian
311f04f858 transform: implement hierarchical entity despawn 2020-07-28 00:10:32 +02:00
Thomas Herzog
b4c185eb0c cargo fmt 2020-07-26 21:10:18 +02:00
Carter Anderson
93bb1d5b8e ui: initial flexbox support 2020-07-24 23:04:45 -07:00
Carter Anderson
6cad80d572 transform|ui: fix transform update lag 2020-07-23 18:26:08 -07:00
Carter Anderson
d79339ea62 transform: add more control parent/child ordering and make parent/children insertion atomic 2020-07-23 17:32:53 -07:00
Carter Anderson
89af5ea4e0 fix some doc tests 2020-07-23 13:40:07 -07:00
Carter Anderson
85bd0342d4 ecs: add write_world and write_resources to Commands
this allows for custom commands
2020-07-23 13:12:38 -07:00
Carter Anderson
f82af10a69 ecs: component removal tracking 2020-07-22 17:57:13 -07:00
Carter Anderson
141044aae7 ecs: publicly expose Added/Changed and inline some things 2020-07-22 16:19:27 -07:00
Carter Anderson
2d829f5a06 ecs: add Changed<T> (added or modified) 2020-07-22 13:20:22 -07:00
Carter Anderson
e673faab7c ecs: rename Changed<T> to Mutated<T> 2020-07-22 12:42:12 -07:00
Carter Anderson
19d24e92aa transform: immediately set localltransform value 2020-07-21 22:02:18 -07:00
Carter Anderson
ae30175e18 ecs: fix query.get::<T>() access 2020-07-21 22:00:55 -07:00
Carter Anderson
a6953049fb ecs: Added<T> queries 2020-07-21 22:00:11 -07:00
Carter Anderson
21cdaaf7eb ecs: inline a few things 2020-07-21 20:15:16 -07:00
Carter Anderson
0c2e26ddde Revert "ecs: remove &mut requirement on query iterators"
This reverts commit 6dc1d07cbc.
2020-07-21 20:12:15 -07:00
Carter Anderson
6dc1d07cbc ecs: remove &mut requirement on query iterators 2020-07-20 13:59:51 -07:00
Carter Anderson
b1162f0c29 ecs: fix resource scheduler test 2020-07-20 01:51:06 -07:00
Carter Anderson
9a236f4923 ui: remove translation/rotation/scale components (Node serves the same role) 2020-07-19 20:33:55 -07:00
Carter Anderson
946d5d1024 ecs: refactor resources
fixes unintialized global resource memory
2020-07-19 14:23:06 -07:00
Carter Anderson
fe1adb6cf6 ui: focus/click/hover system. initial buttons 2020-07-18 14:08:46 -07:00
Carter Anderson
19fe299f5a ecs: use Mut<T> tracking pointer everywhere 2020-07-18 02:09:55 -07:00
Carter Anderson
bf164a5936 ecs: fix tuple query item skipping 2020-07-18 01:14:16 -07:00
Carter Anderson
fbcf3f89d0 ecs: rename ComMut<T> to Track<T> and fix nested change queries 2020-07-18 01:05:06 -07:00
Carter Anderson
23b96a48a6 ecs: make RefMut a tracking pointer 2020-07-18 01:03:47 -07:00
Carter Anderson
85ec31bb65 ecs: change state now moves when an entity moves to a different archetype 2020-07-17 19:13:56 -07:00
Carter Anderson
31d00ad861 ecs: initial component change tracking
(changing entity archetypes currently breaks tracking)
2020-07-17 17:50:17 -07:00
Carter Anderson
9f26a453c6 ecs: simplify imports 2020-07-16 19:20:51 -07:00
Carter Anderson
b12c4d0a48 render: simplify imports and cleanup prelude 2020-07-16 18:26:21 -07:00
Carter Anderson
196bde64e3 cargo fmt 2020-07-16 17:23:50 -07:00
Carter Anderson
362fb92cf8 ecs: only prepare executor on changes. use parallel executor in App 2020-07-15 17:59:13 -07:00
Carter Anderson
4712e96aa8 ecs: make parallel executor resource-aware 2020-07-15 17:20:36 -07:00
Carter Anderson
88781007b0 ecs: slightly improve perf with inlining changes 2020-07-14 23:56:49 -07:00
Carter Anderson
a7bab755ee ecs: add query get safety checks 2020-07-14 19:05:39 -07:00
Carter Anderson
1f6c9ece1d ecs: call prepare() inside ParallelExecutor::run()
also moved some things around
2020-07-14 16:23:25 -07:00
Carter Anderson
0dc810a37a ecs: add thread local system support to parallel executor 2020-07-14 14:19:17 -07:00
Carter Anderson
98ed29aacc ecs: fix local resource indexing 2020-07-14 11:08:02 -07:00
Carter Anderson
8d3a5ae0f1 ecs: initial parallel schedule executor
currently only considers component archetypes. still missing proper handling of thread local systems and resources
2020-07-13 19:36:41 -07:00
Carter Anderson
67f1bd66ce ecs: fix resource borrow safety 2020-07-12 12:27:11 -07:00
Carter Anderson
17f3860d12 remove unsafe Clone implementation on Res/ResMut in favor of UnsafeClone 2020-07-12 12:06:43 -07:00
Carter Anderson
86f41ae0a4 add more informative "resource does not exist" errors 2020-07-11 20:12:34 -07:00
Carter Anderson
a656588788 slim down gltf and winit features and remove unused dependencies 2020-07-10 12:08:51 -07:00
Carter Anderson
2508a59f68 remove darling 2020-07-10 02:53:31 -07:00
Carter Anderson
c81ab99dac cargo fmt 2020-07-10 01:37:06 -07:00
Carter Anderson
950e50bbb1 Bevy ECS migration 2020-07-10 01:06:21 -07:00