Commit graph

394 commits

Author SHA1 Message Date
Carter Anderson
2d3903299b Resource and ResourceMut pointers 2020-04-29 16:32:19 -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
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
c2c543e0ba move batch to its own module 2020-04-27 17:41:02 -07:00
Carter Anderson
115a009c16 cargo fmt 2020-04-24 18:55:15 -07:00
Carter Anderson
791c475354 RenderGraph2: Finish porting, refactor, cleanup 2020-04-24 17:46:54 -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
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
8c4815b56e rename WgpuPlugin 2020-04-06 21:44:32 -07:00
Carter Anderson
67b9d182ed expand lib docs a little bit 2020-04-06 21:04:09 -07:00
Carter Anderson
9aae341a2c add bevy logo to api docs 2020-04-06 17:56:17 -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
ecf89a5ba7 Add some top level bevy crate docs 2020-04-06 17:21:15 -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
b1c583f500 crate-ify serialization. crate-ification is now complete! 2020-04-06 16:09:58 -07:00
Carter Anderson
398c89d307 use "min_specialization" feature 2020-04-06 15:54:17 -07:00
Carter Anderson
b19e3004b8 rework marco modules, crate-ify ui 2020-04-06 14:20:53 -07:00
Carter Anderson
1471cc84c5 crate-ify bevy_diagnostic 2020-04-06 00:12:54 -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
7bb889bada refactor renderer to avoid resource access collisions. this fixes the legion errors in debug builds.
NOTE: these "random resource access" issues are a pretty compelling reason to remove Resources from the render api
2020-04-05 13:22:27 -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
5b83698738 add move roadmap, readme, and faq to the bevy website 2020-04-04 21:48:44 -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
8a759d3b18 begin work on supporting multiple swap chains 2020-03-30 22:23:48 -07:00
Carter Anderson
bfa8afbc97 some cleanup wgpu_renderer cleanup 2020-03-30 19:34:48 -07:00
Carter Anderson
17d4bec08c rework surface and swap chain creation to support arbitrary number of surfaces/windows 2020-03-30 19:21:12 -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
c7ee4bc133 upgrade wgpu 2020-03-30 00:56:15 -07:00
Carter Anderson
13da707aee add event example 2020-03-29 23:51:13 -07:00
Carter Anderson
5eb789ff77 Add Events. add WindowResize event to WgpuRenderer. remove Renderer from App 2020-03-29 22:44:38 -07:00
Carter Anderson
4435d536e8 change clear color 2020-03-29 01:52:06 -07:00
Carter Anderson
f814695b00 everything is a plugin! 2020-03-29 01:49:35 -07:00
Carter Anderson
3d261f72de move plugin to app module 2020-03-29 01:15:47 -07:00
Carter Anderson
e2393de97c move plugin to core 2020-03-29 01:04:27 -07:00
Carter Anderson
45d4f25a93 WinitPlugin 2020-03-29 00:53:47 -07:00
Carter Anderson
ec84a33b43 everything is a plugin
... well almost everything
2020-03-28 23:18:33 -07:00
Carter Anderson
5db5f6de9c batched draw target works! embrace the "log" crate 2020-03-28 20:33:11 -07:00
Carter Anderson
2d0bff97a8 Handle::from_untyped 2020-03-28 14:51:24 -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
38a808db84 change diagnostics formatting 2020-03-28 13:42:16 -07:00
Carter Anderson
78de2fe2a1 fix dynamic uniforms and unit tests 2020-03-27 22:41:45 -07:00
Carter Anderson
a7704fda31 make winit optional and vsync configurable 2020-03-27 17:43:03 -07:00
Carter Anderson
93bf728475 new Diagnostics system 2020-03-27 15:03:47 -07:00
Carter Anderson
0073f4a58b refactor pipeline compilation into PipelineCompiler 2020-03-26 23:40:25 -07:00
Carter Anderson
d1db46ef54 begin bind group rework
global and local bind groups are set up the same way (RenderResourceAssignments).  bind groups are reused whenever possible
2020-03-26 01:57:36 -07:00
Carter Anderson
0316efc909 add core Window resource 2020-03-25 21:27:32 -07:00
Carter Anderson
c2545fd161 RenderResourceSetId 2020-03-25 19:20:52 -07:00
Carter Anderson
aec817c533 Rename BindGroup to BindGroupDescriptor. Add BindGroupDescriptorId 2020-03-25 18:17:48 -07:00
Carter Anderson
47ef339e7b remove BindGroupInfo 2020-03-25 17:40:14 -07:00
Carter Anderson
64cd924413 refactor render resource assignments 2020-03-25 17:31:59 -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
4d17763c85 finish new uniform resource provider staging buffer. dynamic uniforms work again. both dynamic and non-dynamic uniforms perform better than the previous implementation. 2020-03-24 19:17:41 -07:00
Carter Anderson
c71b886165 begin rewrite of UniformResourceProvider (no instancing or dynamic uniform support yet) 2020-03-24 13:50:40 -07:00
Carter Anderson
55745b0812 renderable owns render resource assignments. refactor shader assignment logic. renderers are responsible for intializing during updates. 2020-03-22 18:22:35 -07:00
Carter Anderson
55130bbe1c remove field_infos from UniformInfoIter 2020-03-22 13:14:34 -07:00
Carter Anderson
08cd5964a4 get_field_info is now static 2020-03-22 13:08:20 -07:00
Carter Anderson
0e18c4b70b fix render graph lifetimes 2020-03-22 13:05:50 -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
8c201dcbc5 fix LocalToWorld vertex buffer attribute names 2020-03-22 01:13:45 -07:00
Carter Anderson
cfc7aae413 better batch iteration (no allocations + abstracted out) 2020-03-22 01:06:38 -07:00
Carter Anderson
c9aec26f88 CommandBufferBuilder and setup systems 2020-03-21 22:35:57 -07:00
Carter Anderson
d2e160d44a refactor cameras. add defaults 2020-03-21 21:55:33 -07:00
Carter Anderson
fb496a6172 validate VertexBufferDescriptors and fill in blanks when possible 2020-03-21 21:10:58 -07:00
Carter Anderson
a4eed18800 RenderGraph is now a Resource. RenderGraph owns vertex buffer descriptors. Assorted cleanup 2020-03-21 19:57:59 -07:00
Carter Anderson
7660b8bf3f batched resource creation, vertex buffer macro 2020-03-21 18:12:30 -07:00
Carter Anderson
a55053cf14 Refactor / cleanup buffer metadata. Fix dynamic uniforms 2020-03-20 19:32:59 -07:00
Carter Anderson
ae0d5abf45 use RenderResourceAssignments in place of Entity 2020-03-20 17:49:29 -07:00
Carter Anderson
f90205a40d RenderResourceAssignmentsProvider / unique ids 2020-03-20 17:15:56 -07:00
Carter Anderson
71d091e10c entities with renderable.is_instanced are now removed from normal rendering 2020-03-20 16:58:21 -07:00
Carter Anderson
cbba656f16 replace appbuilder::new() with app::build() 2020-03-20 16:35:19 -07:00
Carter Anderson
43e69484ba migrate entity render resources to RenderResourceAssignments 2020-03-20 14:17:50 -07:00
Carter Anderson
9881f64715 cargo fmt 2020-03-20 12:47:33 -07:00
Carter Anderson
ae72c2cdb0 Refactor and integrate AssetBatcher. Add AssignedBatchesDrawTarget shim 2020-03-19 17:57:07 -07:00
Carter Anderson
99983b40a5 AssetBatcher 2020-03-19 13:21:55 -07:00
Carter Anderson
1e1980bf4d support tags in entity archetypes 2020-03-18 16:06:33 -07:00
Carter Anderson
04590de678 separate albedo color and make it required
I worked really hard to make ColorSource work, but sadly we need color to be instanceable and making it optional would add too much complexity. Maybe at some point in the future we can add it back. On the plus side, albedo color now modulates the albedo texture
2020-03-17 22:02:01 -07:00
Carter Anderson
d9663d740b AsUniforms provide VertexBufferDescriptor. Initial macro work 2020-03-17 18:25:27 -07:00
Carter Anderson
28fb0fdfc8 Reflect Vertex Buffer Attributes
Must follow VertexBufferDescriptorName_AttributeName format

I_VertexBufferDescriptorName_AttributeName indicates that an attribute is instanced

Currently all attributes must be defined in shaders or offsets will be incorrect.
2020-03-17 13:20:54 -07:00
Carter Anderson
62d1e710a5 rename vertex_buffer to instanceable 2020-03-16 12:15:51 -07:00
Carter Anderson
0ba48ed83a use dynamic uniforms by default for Handle<T> 2020-03-16 01:49:31 -07:00
Carter Anderson
5d99f3a7e8 Add Handle<T> support to uniform resource provider. Use Handle<StandardMaterial> instead of StandardMaterial 2020-03-16 00:45:28 -07:00
Carter Anderson
1332630fa3 tweaks 2020-03-15 01:12:56 -07:00
Carter Anderson
4d92ef0119 zero copy uniform bytes 2020-03-14 18:32:33 -07:00
Carter Anderson
63f40589e3 begin instancing work 2020-03-14 12:58:22 -07:00
Carter Anderson
56e79d5225 reorganize texture and mesh 2020-03-14 12:56:37 -07:00
Carter Anderson
0c3e83452d remove empty buffer warning because its too noisey 2020-03-11 18:19:02 -07:00
Carter Anderson
ad654a3c25 add fps printer system to diagnostics mod 2020-03-11 01:44:46 -07:00
Carter Anderson
41e15a2d90 make wgpu renderer optional 2020-03-10 22:20:49 -07:00
Carter Anderson
64b897016c swap out remaining wgpu references 2020-03-10 21:57:57 -07:00
Carter Anderson
7342f96174 named pipelines (makes custom shaders easier) 2020-03-10 02:46:27 -07:00
Carter Anderson
fb4752532b rename pipelinebuilder.build() to finish() 2020-03-10 02:16:01 -07:00
Carter Anderson
cfaee577e7 move bind type 2020-03-10 02:10:44 -07:00
Carter Anderson
d08b243317 cargo fmt 2020-03-10 01:52:28 -07:00
Carter Anderson
4eaf730b8a add default draw target impl 2020-03-10 01:51:59 -07:00
Carter Anderson
1ac33b1477 add default resource provider impls 2020-03-10 01:51:06 -07:00
Carter Anderson
aca17f15b7 start moving away from wgpu types 2020-03-10 00:53:07 -07:00
Carter Anderson
99cdf56e7d add Color type 2020-03-09 23:43:40 -07:00
Carter Anderson
aa09e93980 reorganize render modules 2020-03-09 23:08:09 -07:00
Carter Anderson
440d883322 use static dispatch in add_resource_provider 2020-03-09 12:07:16 -07:00
Carter Anderson
7d3f271cfa fix resources name 2020-03-09 11:56:45 -07:00
Carter Anderson
fc5d8061d5 cargo fmt 2020-03-09 02:08:44 -07:00
Carter Anderson
e4550aaab2 tweak add_children 2020-03-09 02:08:27 -07:00
Carter Anderson
8eec5653b6 rename add_archetype to add_entity 2020-03-09 02:02:17 -07:00
Carter Anderson
a790332505 better parenting ergonomics in world builder 2020-03-09 02:00:59 -07:00
Carter Anderson
f6dd6a5ca9 fix parenting example, add missing transform components, add parenting to world builder 2020-03-09 01:31:15 -07:00
Carter Anderson
6ef1c099ff upgrade bevy_legion / re-apply fork 2020-03-09 00:47:58 -07:00
Carter Anderson
9355a53980 upgrade legion (breaks plugins) 2020-03-08 23:19:07 -07:00
Carter Anderson
c5f781b4e5 fix ui draw target 2020-03-08 20:27:07 -07:00
Carter Anderson
e0a1a83bc9 create entities as a separate step before starting a render pass 2020-03-08 20:06:59 -07:00
Carter Anderson
cadea8deb0 Break up wgpu renderer 2020-03-08 19:26:50 -07:00
Carter Anderson
85c880e754 upgrade wgpu. work around new wgpu lifetimes (this was painful) 2020-03-05 00:55:34 -08:00
Carter Anderson
8beed27c0e wgpu resources are separated 2020-03-05 00:55:34 -08:00
Carter Anderson
b64f51d10b try breaking out wgpu resources 2020-03-05 00:55:34 -08:00
Carter Anderson
baac7ff296 add png image loading and enable transparency 2020-03-02 20:33:46 -08:00
Carter Anderson
22be0b3366 reset uniform count on each update (oops) 2020-03-02 08:32:15 -08:00
Carter Anderson
ca563ea1b3 fix uniform providers with different field sets 2020-03-02 00:19:28 -08:00
Carter Anderson
5154320f70 textures work! 2020-03-01 17:48:37 -08:00
Carter Anderson
8d3026899d more texture work 2020-03-01 10:22:58 -08:00
Carter Anderson
9e5f4aeefc implement Copy for Handle 2020-02-23 23:50:44 -08:00
Carter Anderson
1a4bd98434 more texture work 2020-02-23 23:41:48 -08:00
Carter Anderson
79c900bc2d RenderResource ids 2020-02-23 21:13:03 -08:00
Carter Anderson
f84e71d051 cargo fmt 2020-02-22 15:02:01 -08:00
Carter Anderson
7eb99f3eb5 finish uniform names refactor 2020-02-22 15:01:11 -08:00
Carter Anderson
ba1f48f743 start working out field bind type info 2020-02-22 12:42:40 -08:00
Carter Anderson
65284fcacb more work on texture bindings 2020-02-21 00:15:24 -08:00
Carter Anderson
fb61204d53 start working out how AsUNiforms works with textures 2020-02-20 21:52:45 -08:00
Carter Anderson
4eaae0f815 add texture and sampler shader reflection 2020-02-19 00:24:59 -08:00
Carter Anderson
2f1a0cb4a4 macros are now fully screaming snake 2020-02-18 22:59:33 -08:00
Carter Anderson
8a10c06ad5 add texture to frag shader. fix weird macro name collision bug 2020-02-18 20:26:02 -08:00
Carter Anderson
a1b9e3a7a5 add shader_def to albedo ColorSource and auto import trait in macro 2020-02-18 19:08:17 -08:00