Commit graph

479 commits

Author SHA1 Message Date
Carter Anderson
ca4726ea7d render to second window in multiple_windows example 2020-06-25 16:02:21 -07:00
Carter Anderson
8a8d01aa88 render: add ClearColor resource 2020-06-25 15:24:27 -07:00
Carter Anderson
4a0f8b8869 add root ui node to example 2020-06-25 13:19:48 -07:00
Carter Anderson
92c44320ee ecs: rename EntityArchetype to ComponentSet 2020-06-25 11:21:56 -07:00
Carter Anderson
1ef4fbf005 ui: rework so Nodes now use transforms and z-sort happens 2020-06-25 10:13:00 -07:00
Carter Anderson
75429f4639 render: use left-handed coordinate system and y-up 2020-06-24 15:29:10 -07:00
Carter Anderson
4ba2f72572 render: is_transparent flag. draw transparent object back-to-front and opaque objects front-to-back 2020-06-24 11:35:01 -07:00
Carter Anderson
2c74560283 render: draw in back-to-front mode to be safe (until we can do both at the same time). expand texture example 2020-06-23 19:29:12 -07:00
Carter Anderson
3ee8aa8b0f camera: make camera transform in world coordinates instead of the inverse 2020-06-23 19:18:32 -07:00
Carter Anderson
41dc8a5967 render: add front-to-back drawing
MainPassNodes now have assigned cameras and draw using those camera's VisibleEntities
2020-06-23 16:52:50 -07:00
Carter Anderson
b6dbbf04db render: visualize depth in z_sort_debug 2020-06-23 13:42:37 -07:00
Carter Anderson
2f5f6e017a render: intitial VisibleEntities component and sort system 2020-06-22 17:55:48 -07:00
Carter Anderson
ec11a6a5f6 ecs: make build_children closure FnMut to allow mutation of closue values 2020-06-22 17:37:44 -07:00
Carter Anderson
e921ae0199 sprite: use bevy_transform types in sprite sheet entities 2020-06-22 12:35:33 -07:00
Carter Anderson
f1786ec20a sprite: use bevy_transform types in sprite entities 2020-06-22 12:14:40 -07:00
Carter Anderson
faacd2778d sprite: add color to TextureAtlasSprite and make Vec3 16 bytes again to account for glsl UBO layout 2020-06-21 17:43:36 -07:00
Carter Anderson
ecea30cadb text: new atlased rendering finally works!
removed old render-to-texture rendering
2020-06-20 12:40:37 -07:00
Carter Anderson
da3d6983a7 text: immediate-mode atlased text rendering works, but theres no character positioning/layout yet 2020-06-19 13:45:26 -07:00
Carter Anderson
4246d47fec render: move pipeline compilation and bind group creation into draw stage. impl ResourceSet for DrawContext. progress on text drawing. general cleanup 2020-06-18 17:27:20 -07:00
Carter Anderson
74d0055a3d render: move dynamic_bindings to PipelineSpecialization
This is a temporary step back in ergonomics as we are no longer automatically inferring dynamic bindings from RenderResourceBindings
2020-06-17 18:10:29 -07:00
Carter Anderson
0931fd0266 fix a few things in shader examples 2020-06-17 17:44:26 -07:00
Carter Anderson
e89c693c4d render: add SpecializedPipeline and SpecializedShader types 2020-06-17 13:27:10 -07:00
Carter Anderson
e57fdca1bc render: more progress on immediate mode rendering and DrawableText 2020-06-17 13:10:33 -07:00
Carter Anderson
e855995145 cargo fmt 2020-06-15 12:47:35 -07:00
Carter Anderson
f799d3ac93 render: add RenderPipeline and begin moving logic there 2020-06-15 00:08:50 -07:00
Carter Anderson
0f608fc90f render: add "specific" ids for buffers, textures, and samplers. Use them instead of RenderResourceIds wherever possible 2020-06-14 11:41:42 -07:00
Carter Anderson
516cf9ddf0 text: font atlas generation. initial Drawable boilerplate. temporary font atlas debug example 2020-06-13 18:53:31 -07:00
Carter Anderson
fc4160ea41 AssetRenderResourceNodes now consume asset change events. Remove EntitiesWaitingForAssets in favor of DrawState. 2020-06-10 18:54:17 -07:00
Carter Anderson
3d07fbdc81 render: "Immediate Mode" draw api
This replaces Renderable with Draw/RenderPipelines components and makes various aspects of the renderer much simpler and legible
2020-06-09 23:16:48 -07:00
Carter Anderson
1426208e2f remove DrawTargets in favor of PassNodes and in preparation for "immediate mode" drawing api 2020-06-08 14:35:13 -07:00
Carter Anderson
4568f5dae3 remove specialization. bevy now builds on stable rust! 2020-06-07 23:36:39 -07:00
Carter Anderson
62c434274f shader_defs: new leaner shader defs. they are now separate from uniforms 2020-06-07 22:24:53 -07:00
Carter Anderson
fd8f87400d add RenderResources/RenderResource traits to replace Uniforms/Uniform 2020-06-07 19:12:41 -07:00
Carter Anderson
5add29f8cf rename LocalToWorld -> Transform and LocalToParent -> LocalTransform 2020-06-07 13:39:50 -07:00
Carter Anderson
c1dcc74e0f asset: make asset folder loading permissive of non-assets 2020-06-07 11:45:18 -07:00
Carter Anderson
f2b3b909b4 sprite: use rectangle_pack crate for texture atlases. rename guillotiere implementation to DynamicTextureAtlasBuilder 2020-06-07 11:30:04 -07:00
Carter Anderson
6164ea6ecc sprite: dynamically resize atlas during build 2020-06-06 16:16:58 -07:00
Carter Anderson
2705e5cbb4 add texture atlases 2020-06-06 00:12:38 -07:00
Carter Anderson
9d80b5965e example: add rpg assets for use in examples (maybe pair this down in the future) 2020-06-05 17:26:41 -07:00
Carter Anderson
5ea979dd0e move shaders in examples into consts 2020-06-05 00:13:18 -07:00
Carter Anderson
5aeb3b937b add "pressed" example to mouse_input 2020-06-04 23:57:39 -07:00
Carter Anderson
aa2928739c simplify keyboard_input example 2020-06-04 23:55:12 -07:00
Carter Anderson
ed561d7f70 break up input examples 2020-06-04 23:49:36 -07:00
Carter Anderson
5b6f24d6a2 input: make new Input resource generic and add Input<MouseButton> 2020-06-04 23:34:21 -07:00
Carter Anderson
fcecf78609 make input_keyboard example speed a normal variable 2020-06-04 23:01:02 -07:00
Carter Anderson
b3a57c21a7 input: simpler input interface via an Input resource 2020-06-04 22:48:53 -07:00
Carter Anderson
fde8292a04 simplify input_keyboard example 2020-06-04 19:47:27 -07:00
Carter Anderson
c4600dbad8 increase ui example label size 2020-06-04 17:13:58 -07:00
Carter Anderson
db6a365b13 saner orthographic projection 2020-06-04 17:09:24 -07:00
Carter Anderson
ab31bf9d9e impl Default for EventReader 2020-06-03 23:53:00 -07:00
Carter Anderson
4979a06e90 input: fix input example and add cursor move events 2020-06-03 23:22:32 -07:00
Carter Anderson
6eea96366d cargo fmt 2020-06-03 20:08:20 -07:00
Carter Anderson
a4c15f96de Timer Resource/Component 2020-06-03 19:53:41 -07:00
Carter Anderson
5927bad382 sprite sheets are fully operational 2020-06-03 19:00:19 -07:00
Carter Anderson
5bcd594cb4 bytes: AsBytes trait, remove zerocopy, remove glam fork 2020-06-01 19:38:05 -07:00
Carter Anderson
e68ae995f8 rename rect to quad 2020-05-31 23:39:20 -07:00
Carter Anderson
4d8a567b36 text: migrate to ab_glyph. this should give rendering consistency across platforms 2020-05-31 15:59:11 -07:00
Carter Anderson
21a79c56a7 camera: add position and rotation components to Perspective camera. add "sync" toggle to LocalToWorld transform. 2020-05-31 10:31:18 -07:00
Carter Anderson
6e76296ce0 sprite: create sprite crate. center 2d camera (split from ui camera). add 2d camera movement 2020-05-30 12:31:04 -07:00
Carter Anderson
71b3755633 camera: split 2d and ui camera. remove resource_name mod 2020-05-29 22:30:07 -07:00
Carter Anderson
51d41b2302 camera: remove active camera components in favor of camera names 2020-05-29 22:07:55 -07:00
Carter Anderson
fec9034644 camera: break out projection components 2020-05-29 17:25:14 -07:00
Carter Anderson
db27d63b91 upgrade ron 2020-05-29 16:06:23 -07:00
Carter Anderson
651f213570 scene: spawning 2020-05-29 15:51:36 -07:00
Carter Anderson
065a94aca8 scene: hot scene reloading. update load_scene example 2020-05-29 12:56:32 -07:00
Carter Anderson
ec0c0c7562 tweak the ecs guide 2020-05-28 22:37:28 -07:00
Carter Anderson
83d5275e10 add "query system functions" 2020-05-28 13:36:48 -07:00
Carter Anderson
830565ae2b scene: type registry refactor. use short type names when possible 2020-05-27 19:27:55 -07:00
Carter Anderson
3ee5a67cdb scenes: polish scene example. prop->property attribute. derive(Resources) to derive(FromResources) 2020-05-27 15:57:12 -07:00
Carter Anderson
cb3a863366 component_registry: use FromResources trait instead of Default 2020-05-27 00:23:31 -07:00
Carter Anderson
da52b1b034 props: properties no longer directly implement the Serialize trait 2020-05-27 00:14:57 -07:00
Carter Anderson
d2d02f63f6 props: "Seq" properties 2020-05-26 19:47:33 -07:00
Carter Anderson
a837741c64 props: move AsProperties into Property 2020-05-25 18:20:36 -07:00
Carter Anderson
f0cbe8cd86 prop: impl prop macro. add impls for glam, legion, smallvec 2020-05-25 17:50:17 -07:00
Carter Anderson
cb6638ba06 props: add support for tuple structs 2020-05-25 16:35:46 -07:00
Carter Anderson
f0f0e3c1a8 move component registry to its own crate. automatically register asset handles 2020-05-25 14:51:38 -07:00
Carter Anderson
0826d74163 props: remove specialization, ignore fields, impl for Handle, fix world round tripping 2020-05-25 12:03:50 -07:00
Carter Anderson
1cd3b4c987 props: add type peeking to ron, support arbitrary property types 2020-05-24 19:36:01 -07:00
Carter Anderson
b7305046cf remove SerializableProperties wrapper struct 2020-05-23 22:39:23 -07:00
Carter Anderson
4c306e6d48 props: migrate scenes to props. loading / saving worlds from / to props. 2020-05-23 22:07:17 -07:00
Carter Anderson
f36a67ee96 props: support nesting 2020-05-23 12:26:13 -07:00
Carter Anderson
284afd4f94 props: deserialize (no nesting yet) 2020-05-22 19:01:48 -07:00
Carter Anderson
6e31b90ec3 upgrade ron and use decimal fork 2020-05-22 18:07:26 -07:00
Carter Anderson
f1d58609d5 add text label to ui example. fix 0x0 label textures 2020-05-22 17:07:14 -07:00
Carter Anderson
159acf52af props: rename prop/props to property/properties
its longer but a bit clearer
2020-05-22 15:36:48 -07:00
Carter Anderson
e514bd14fe props: dynamic casting. reorganize 2020-05-22 15:25:31 -07:00
Carter Anderson
da8daa051b props: derive, get/set, example 2020-05-21 23:58:11 -07:00
Carter Anderson
9368242013 scene: require clone for registered components 2020-05-21 18:51:03 -07:00
Carter Anderson
38669107c9 upgrade legion 2020-05-21 17:59:33 -07:00
Carter Anderson
d920100d35 scenes: deserialization and refactor 2020-05-21 17:21:33 -07:00
Carter Anderson
553b754492 scenes: datatype and serialization 2020-05-20 10:40:23 -07:00
Carter Anderson
fb140ce4b0 remove tag serialization. round trip ron example 2020-05-19 13:22:14 -07:00
Carter Anderson
3710196fdb remove type_uuid from serialization 2020-05-19 12:55:58 -07:00
Carter Anderson
dcdd552365 pull in ron. use static strings for types 2020-05-19 12:20:37 -07:00
Carter Anderson
8bc0eb45ee print average fps and smooth out average a little bit 2020-05-18 14:53:57 -07:00
Carter Anderson
33d4d5f562 Add asset removal. Clean up old/removed meshes 2020-05-17 18:48:14 -07:00
Carter Anderson
86c18edbfd Label component 2020-05-17 18:09:29 -07:00
Carter Anderson
e093a3243b phrasing tweaks 2020-05-17 10:30:52 -07:00
Carter Anderson
870f715df3 Hot asset reloading 2020-05-16 20:18:30 -07:00
Carter Anderson
b1f07e3749 cargo fmt 2020-05-16 00:27:30 -07:00
Carter Anderson
fcc0a6303b update mesh on gpu when it changes 2020-05-16 00:21:04 -07:00
Carter Anderson
5d0d3d28c7 TextPlugin + FontLoader 2020-05-15 19:46:09 -07:00
Carter Anderson
bf7f222318 Support async texture loading 2020-05-15 19:30:02 -07:00
Carter Anderson
35adad6556 Async mesh loading works 2020-05-15 17:22:45 -07:00
Carter Anderson
4e1abea161 AssetServer: multithreaded sync/async asset loading 2020-05-15 16:55:44 -07:00
Carter Anderson
8a61ef48d3 use relative paths for assets 2020-05-14 15:25:43 -07:00
Carter Anderson
2bcb8a2a41 cargo fmt 2020-05-13 18:05:18 -07:00
Carter Anderson
6381611e89 Resource -> Res, Ref->Com 2020-05-13 17:57:08 -07:00
Carter Anderson
fb8f9e8636 RenderGraph::add_node now requires a name 2020-05-13 17:35:48 -07:00
Carter Anderson
06f3a4efb9 Use system fns for all setup code 2020-05-13 17:31:56 -07:00
Carter Anderson
70f122b92a Rename AssetStorage to Assets 2020-05-13 16:45:18 -07:00
Carter Anderson
b58db0749e use init_resource everywhere 2020-05-13 16:35:38 -07:00
Carter Anderson
16b568e00e Asset events and AddAsset builder 2020-05-13 16:17:44 -07:00
Carter Anderson
c18ecf2a55 initial text rendering 2020-05-13 13:22:12 -07:00
Carter Anderson
73cc20768c remove pathfinder code
its not ready yet so it shouldnt be on master :)
2020-05-12 16:35:49 -07:00
Carter Anderson
35e1d8b498 pathfinder: more backend work. it now renders the clear color without crashing 2020-05-11 09:01:31 -07:00
Carter Anderson
75614f5084 Ui depth from parent (falls back to insertion order for orphans), do ui rect size offsets before rendering, 2020-05-06 13:49:07 -07:00
Carter Anderson
c5ca59dc4d cargo fmt 2020-05-05 18:44:32 -07:00
Carter Anderson
7560ecf9d8 correct "its" 2020-05-04 14:18:46 -07:00
Carter Anderson
4735c68ab4 add diagnostic examples 2020-05-04 14:14:49 -07:00
Carter Anderson
704a742661 Print diagnostics plugin 2020-05-04 13:42:49 -07:00
Carter Anderson
ea16f6fc56 frame time diagnostic plugin 2020-05-04 13:21:14 -07:00
Carter Anderson
6f32d18dc5 diagnostic filtering 2020-05-04 11:43:21 -07:00
Carter Anderson
ba795fdfb5 "fix" ui_bench 2020-05-04 11:06:02 -07:00
Carter Anderson
916978307b fix anchor descriptions 2020-05-04 11:03:52 -07:00
Carter Anderson
076fef873a Anchor constants 2020-05-04 11:02:04 -07:00
Carter Anderson
dcc34473e5 sprites 2020-05-04 01:23:40 -07:00
Carter Anderson
1056b79abf ui textures 2020-05-03 23:49:45 -07:00
Carter Anderson
291b948b61 fix "ui_bench" 2020-05-03 19:32:27 -07:00
Carter Anderson
d50313c285 ui is back! 2020-05-03 19:30:31 -07:00
Carter Anderson
a4fe37add1 add plugin example 2020-05-03 01:30:10 -07:00
Carter Anderson
ff0db0df14 quality pass on ecs_guide 2020-05-03 00:48:36 -07:00
Carter Anderson
2fb9e115ff Make ecs_guide a "real game" 2020-05-03 00:21:32 -07:00
Carter Anderson
71a4503df1 Move ecs_guide main function to the end of the file 2020-05-02 18:32:23 -07:00
Carter Anderson
355e219608 begin porting ui to new render graph 2020-05-02 17:56:30 -07:00
Carter Anderson
fd97bb7bc7 fix showcase script 2020-05-01 13:55:07 -07:00
Carter Anderson
7b79b3de8d organize examples and add ecs guide 2020-05-01 13:12:47 -07:00
Carter Anderson
5458c6daf4 port a few more systems to functions and add some name clarity 2020-05-01 01:37:20 -07:00
Carter Anderson
3e3ab92ff5 cargo fmt 2020-04-30 22:30:51 -07:00
Carter Anderson
2447672c63 adapt examples to use system functions and state pattern 2020-04-30 13:52:11 -07:00
Carter Anderson
98f9639050 FromResource and derive macro 2020-04-30 13:26:01 -07:00
Carter Anderson
4923ac02de remove entity builder example 2020-04-30 12:28:41 -07:00
Carter Anderson
3cdee1b8ad system_fn named/id/anon. add "more-system-fn" cargo feature 2020-04-30 12:22:35 -07:00
Carter Anderson
2047f9c0d9 Add command encoder system variants 2020-04-30 10:42:22 -07:00
Carter Anderson
03e8c1caf7 flat system functions w/ arbitary resource inputs 2020-04-29 20:05:13 -07:00
Carter Anderson
45a710fe6a cargo fmt 2020-04-29 01:37:54 -07:00
Carter Anderson
9230c370ba Implement IntoSystem trait for flat functions using macros 2020-04-28 23:02:21 -07:00
Carter Anderson
f1a03a7a3a some system_fn renaming and add system examples 2020-04-28 13:46:07 -07:00
Carter Anderson
713c4a6056 move system function constructors to System 2020-04-28 11:25:24 -07:00
Carter Anderson
9a3700d8f1 Change events.iter(&mut reader) to reader.iter(&events) 2020-04-28 10:59:42 -07:00
Carter Anderson
92182060a9 add app builder shorthand for system function 2020-04-28 02:52:26 -07:00
Carter Anderson
092f3888ca Resource system functions 2020-04-28 02:31:01 -07:00
Carter Anderson
d5dcc96c39 "functions as systems" 2020-04-28 01:00:30 -07:00
Carter Anderson
57109f8726 remove broken instancing example 2020-04-24 18:58:54 -07:00
Carter Anderson
115a009c16 cargo fmt 2020-04-24 18:55:15 -07:00
Carter Anderson
057ad97a46 fix dynamic plugin example 2020-04-24 18:23:37 -07:00
Carter Anderson
791c475354 RenderGraph2: Finish porting, refactor, cleanup 2020-04-24 17:46:54 -07:00
Carter Anderson
3c83e34cc1 re-enable opt=3 for debug 2020-04-19 22:31:14 -07:00
Carter Anderson
1143f16743 model loading works! 2020-04-19 19:29:33 -07:00
Carter Anderson
7fe2288814 pipeline specialization (support different primitive topologies within the same pipeline) 2020-04-19 19:06:41 -07:00
Carter Anderson
e59693fe67 exit events and systems 2020-04-19 12:13:04 -07:00
Carter Anderson
649ffebb7f New Mesh implementation (adapts to arbitrary vertex descriptors). Initial gltf model loading. 2020-04-19 10:08:47 -07:00
Carter Anderson
dcd71d1b72 Rework AppBuilder system interfaces. Remove setup() in favor of startup_system 2020-04-15 19:42:17 -07:00
Carter Anderson
837e1dc139 Port remaining functionality to RenderContext and remove Renderer 2020-04-12 14:47:41 -07:00
Carter Anderson
1d44b4034f asset handle batcher system 2020-04-12 00:54:51 -07:00
Carter Anderson
b9f4c0a53b move shader defs updates to their own systems. make UniformResourceProvider::update World read-only 2020-04-11 20:27:46 -07:00
Carter Anderson
394b7ce940 RenderContext, RenderResourceContext and wgpu implementations 2020-04-11 18:40:30 -07:00
Carter Anderson
f2b2065fbe make CommandBufferBuilder non-consuming 2020-04-07 13:29:11 -07:00
Carter Anderson
2565a69230 make WorldBuilder non-consuming 2020-04-07 13:25:01 -07:00
Carter Anderson
bd97da3a51 Add comments to examples and fix example_showcase script timing 2020-04-06 21:33:18 -07:00
Carter Anderson
574bc93e4f expand top level crate docs slightly and add hello world example 2020-04-06 17:39:06 -07:00
Carter Anderson
0af36cfaed make every bevy dependency optional in bevy crate 2020-04-06 17:03:21 -07:00
Carter Anderson
b5d78477cf cargo fmt 2020-04-06 16:15:59 -07:00
Carter Anderson
683a70d8e7 add SchedulePlans 2020-04-06 01:57:00 -07:00
Carter Anderson
686e1422db Crate-ify (almost) everything 2020-04-05 20:19:02 -07:00
Carter Anderson
0202dcb009 Use type_name as plugin name default 2020-04-05 14:12:14 -07:00
Carter Anderson
6d53100ff3 mouse motion 2020-04-05 00:32:53 -07:00
Carter Anderson
ec65cfef4a Add mouse input 2020-04-04 23:42:39 -07:00
Carter Anderson
f089df3a49 keyboard input events 2020-04-04 14:59:49 -07:00
Carter Anderson
4c3af427e9 dont force static lifetime on appplugin string 2020-04-04 13:00:52 -07:00
Carter Anderson
ef8c85f0c7 cargo fmt 2020-04-04 12:43:16 -07:00
Carter Anderson
5cbf606ef7 make window its own plugin and rename add_defaults to add_default_plugins 2020-04-04 12:40:32 -07:00
Carter Anderson
f6f8ba2cb6 Document and test Events. Rename EventHandle to EventReader. Fix buffer indexing. Customizable bevy path for proc macros 2020-03-31 18:04:54 -07:00
Carter Anderson
70b4100132 using consistent system naming conventions 2020-03-30 15:51:41 -07:00
Carter Anderson
dcb292e00a quad uses size. polish examples 2020-03-30 15:44:29 -07:00
Carter Anderson
29bbc05eae add support for multiple windows 2020-03-30 14:53:32 -07:00
Carter Anderson
7c121563db headless apps 2020-03-30 11:52:33 -07:00
Carter Anderson
13da707aee add event example 2020-03-29 23:51:13 -07:00
Carter Anderson
d8e7a3dcca fix material shader example 2020-03-29 01:34:08 -07:00
Carter Anderson
3d261f72de move plugin to app module 2020-03-29 01:15:47 -07:00
Carter Anderson
ec84a33b43 everything is a plugin
... well almost everything
2020-03-28 23:18:33 -07:00
Carter Anderson
ed9eb88835 only create wgpu swap chain when surface is ready 2020-03-28 13:57:41 -07:00
Carter Anderson
26ff878469 add default diagnostics wait time 2020-03-28 13:55:55 -07:00
Carter Anderson
92c421b5e1 add empty_defaults example 2020-03-27 18:00:21 -07:00
Carter Anderson
93bf728475 new Diagnostics system 2020-03-27 15:03:47 -07:00
Carter Anderson
e523dc92d8 shader_def: use to_upper instead of to_screaming_snake 2020-03-25 13:24:17 -07:00
Carter Anderson
a0fa4d2d79 cargo fmt 2020-03-22 11:06:08 -07:00
Carter Anderson
eaff311a80 simplify render graph builder interface 2020-03-22 03:06:08 -07:00
Carter Anderson
c6d7402318 add bevy_derive to prelude 2020-03-22 01:33:53 -07:00
Carter Anderson
5d893a83f2 remove unneeded light rotation 2020-03-22 01:16:29 -07:00