remove .system from pipelined code (#2538)
Now that we have main features, lets use them!
This commit is contained in:
parent
955c79f299
commit
2e99d84cdc
5
.github/bors.toml
vendored
5
.github/bors.toml
vendored
@ -3,8 +3,9 @@ status = [
|
|||||||
"build (stable, ubuntu-latest)",
|
"build (stable, ubuntu-latest)",
|
||||||
"build (stable, macos-latest)",
|
"build (stable, macos-latest)",
|
||||||
"build (nightly, ubuntu-latest)",
|
"build (nightly, ubuntu-latest)",
|
||||||
"build-wasm (stable, ubuntu-latest)",
|
# TODO: re-enable after wasm works on pipelined-rendering
|
||||||
"build-wasm (nightly, ubuntu-latest)",
|
# "build-wasm (stable, ubuntu-latest)",
|
||||||
|
# "build-wasm (nightly, ubuntu-latest)",
|
||||||
"markdownlint",
|
"markdownlint",
|
||||||
"check-markdown-links",
|
"check-markdown-links",
|
||||||
"run-examples",
|
"run-examples",
|
||||||
|
|||||||
38
.github/workflows/ci.yml
vendored
38
.github/workflows/ci.yml
vendored
@ -45,27 +45,27 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
CARGO_INCREMENTAL: 0
|
CARGO_INCREMENTAL: 0
|
||||||
RUSTFLAGS: "-C debuginfo=0 -D warnings"
|
RUSTFLAGS: "-C debuginfo=0 -D warnings"
|
||||||
|
# NOTE: temporarily disabled while we sort out pipelined-rendering support
|
||||||
|
# build-wasm:
|
||||||
|
# strategy:
|
||||||
|
# matrix:
|
||||||
|
# toolchain: [stable, nightly]
|
||||||
|
# os: [ubuntu-latest]
|
||||||
|
# runs-on: ${{ matrix.os }}
|
||||||
|
# steps:
|
||||||
|
# - uses: actions/checkout@v2
|
||||||
|
|
||||||
build-wasm:
|
# - uses: actions-rs/toolchain@v1
|
||||||
strategy:
|
# with:
|
||||||
matrix:
|
# toolchain: ${{ matrix.toolchain }}
|
||||||
toolchain: [stable, nightly]
|
# target: wasm32-unknown-unknown
|
||||||
os: [ubuntu-latest]
|
# override: true
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
|
|
||||||
- uses: actions-rs/toolchain@v1
|
# - name: Check wasm
|
||||||
with:
|
# uses: actions-rs/cargo@v1
|
||||||
toolchain: ${{ matrix.toolchain }}
|
# with:
|
||||||
target: wasm32-unknown-unknown
|
# command: check
|
||||||
override: true
|
# args: --target wasm32-unknown-unknown --no-default-features --features bevy_winit,x11,hdr,bevy_gltf
|
||||||
|
|
||||||
- name: Check wasm
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: check
|
|
||||||
args: --target wasm32-unknown-unknown --no-default-features --features bevy_winit,x11,hdr,bevy_gltf
|
|
||||||
|
|
||||||
build-android:
|
build-android:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
@ -544,7 +544,7 @@ impl App {
|
|||||||
/// #
|
/// #
|
||||||
/// # struct MyOwnPlugin;
|
/// # struct MyOwnPlugin;
|
||||||
/// # impl Plugin for MyOwnPlugin {
|
/// # impl Plugin for MyOwnPlugin {
|
||||||
/// # fn build(&self, app: &mut AppBuilder){;}
|
/// # fn build(&self, app: &mut App) { }
|
||||||
/// # }
|
/// # }
|
||||||
/// #
|
/// #
|
||||||
/// App::new()
|
/// App::new()
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
archetype::ArchetypeGeneration,
|
archetype::ArchetypeGeneration,
|
||||||
system::{check_system_change_tick, BoxedSystem, IntoSystem, System, SystemId},
|
system::{check_system_change_tick, BoxedSystem, IntoSystem, SystemId},
|
||||||
world::World,
|
world::World,
|
||||||
};
|
};
|
||||||
use std::borrow::Cow;
|
use std::borrow::Cow;
|
||||||
|
|||||||
@ -27,11 +27,15 @@ use std::{
|
|||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bevy_ecs::prelude::*;
|
/// # use bevy_ecs::prelude::*;
|
||||||
|
/// # use std::marker::PhantomData;
|
||||||
/// use bevy_ecs::system::SystemParam;
|
/// use bevy_ecs::system::SystemParam;
|
||||||
///
|
///
|
||||||
/// #[derive(SystemParam)]
|
/// #[derive(SystemParam)]
|
||||||
/// struct MyParam<'a> {
|
/// struct MyParam<'s, 'w> {
|
||||||
/// foo: Res<'a, usize>,
|
/// foo: Res<'w, usize>,
|
||||||
|
/// // TODO: this isn't ideal ... maybe the SystemParam derive can be smarter about world and state lifetimes?
|
||||||
|
/// #[system_param(ignore)]
|
||||||
|
/// marker: PhantomData<&'s usize>,
|
||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// fn my_system(param: MyParam) {
|
/// fn my_system(param: MyParam) {
|
||||||
|
|||||||
@ -1,39 +0,0 @@
|
|||||||
# Crevice Changelog
|
|
||||||
|
|
||||||
## Unreleased Changes
|
|
||||||
|
|
||||||
## [0.6.0][0.6.0] (2021-02-24)
|
|
||||||
* Added `std430` support. Most APIs between `std140` and `std430` are the same!
|
|
||||||
* Added the `WriteStd140` trait. This trait is more general than `AsStd140` and is automatically implemented for all existing `AsStd140` implementers.
|
|
||||||
* Added `Writer::write_std140` to write a type that implements `Std140`.
|
|
||||||
* Added `AsStd140::std140_size_static`. This is similar to the old size method, `std140_size`, but no longer requires a value to be passed. For size measurements that depend on a value, use `WriteStd140::std140_size` instead.
|
|
||||||
* Deprecated `Writer::write_slice`, as `Writer::write` now accepts slices.
|
|
||||||
* Changed bounds of some functions, like `Writer::write` to use `WriteStd140` instead of `AsStd140`. This should affect no existing consumers.
|
|
||||||
* Moved `std140_size` from `AsStd140` to `WriteStd140`. Some existing consumers may need to import the other trait to access this m ethod.
|
|
||||||
|
|
||||||
[0.6.0]: https://github.com/LPGhatguy/crevice/releases/tag/v0.6.0
|
|
||||||
|
|
||||||
## 0.5.0 (2020-10-18)
|
|
||||||
* Added f64-based std140 types: `DVec2`, `DVec3`, `DVec4`, `DMat2`, `DMat3`, and `DMat4`.
|
|
||||||
* Added support for std140 structs with alignment greater than 16.
|
|
||||||
* Fixed padding for std140 matrices; they were previously missing trailing padding.
|
|
||||||
|
|
||||||
## 0.4.0 (2020-10-01)
|
|
||||||
* Added `AsStd140::std140_size` for easily pre-sizing buffers.
|
|
||||||
* `Writer::write` and `Sizer::add` now return the offset the value is or would be written to.
|
|
||||||
* Added `std140::DynamicUniform` for aligning dynamic uniform members.
|
|
||||||
* Added `Writer::write_slice` for writing multiple values in a row.
|
|
||||||
|
|
||||||
## 0.3.0 (2020-09-22)
|
|
||||||
* Added `Std140::as_bytes`, reducing the need to work with bytemuck directly.
|
|
||||||
* Removed public re-export of bytemuck.
|
|
||||||
|
|
||||||
## 0.2.0 (2020-09-22)
|
|
||||||
* Added documentation for everything in the crate.
|
|
||||||
* Removed `type_layout` being exposed except for internal tests.
|
|
||||||
* Fixed alignment offset not taking into account previously added alignment.
|
|
||||||
* Added `std140::Writer`, for writing dynamically laid out types to buffers.
|
|
||||||
* Added `std140::Sizer`, for pre-calculating buffer sizes.
|
|
||||||
|
|
||||||
## 0.1.0 (2020-09-18)
|
|
||||||
* Initial MVP release
|
|
||||||
@ -25,7 +25,4 @@ mint = "0.5.5"
|
|||||||
glam = "0.15.1"
|
glam = "0.15.1"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
cgmath = { version = "0.17.0", features = ["mint"] }
|
|
||||||
insta = "0.16.1"
|
|
||||||
type-layout = { version = "0.2.0", features = ["serde1"] }
|
|
||||||
crevice-derive = { version = "0.6.0", path = "crevice-derive" }
|
crevice-derive = { version = "0.6.0", path = "crevice-derive" }
|
||||||
|
|||||||
@ -18,9 +18,9 @@ Examples in this crate use cgmath, but any math crate that works with the mint
|
|||||||
crate will also work. Some other crates include nalgebra, ultraviolet, glam, and
|
crate will also work. Some other crates include nalgebra, ultraviolet, glam, and
|
||||||
vek.
|
vek.
|
||||||
|
|
||||||
### Examples
|
## Examples
|
||||||
|
|
||||||
#### Single Value
|
### Single Value
|
||||||
|
|
||||||
Uploading many types can be done by deriving `AsStd140` and using
|
Uploading many types can be done by deriving `AsStd140` and using
|
||||||
[`as_std140`][std140::AsStd140::as_std140] and
|
[`as_std140`][std140::AsStd140::as_std140] and
|
||||||
@ -126,10 +126,11 @@ Crevice supports Rust 1.46.0 and newer due to use of new `const fn` features.
|
|||||||
|
|
||||||
Licensed under either of
|
Licensed under either of
|
||||||
|
|
||||||
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0))
|
||||||
* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
* MIT license ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT))
|
||||||
|
|
||||||
at your option.
|
at your option.
|
||||||
|
|
||||||
### Contribution
|
### Contribution
|
||||||
|
|
||||||
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
|
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
|
||||||
|
|||||||
@ -9,11 +9,6 @@ homepage = "https://github.com/LPGhatguy/crevice"
|
|||||||
repository = "https://github.com/LPGhatguy/crevice"
|
repository = "https://github.com/LPGhatguy/crevice"
|
||||||
license = "MIT OR Apache-2.0"
|
license = "MIT OR Apache-2.0"
|
||||||
|
|
||||||
[features]
|
|
||||||
# Feature used for testing; enables type_layout derive on types.
|
|
||||||
# Requires crate using derive to depend on type_layout as well.
|
|
||||||
test_type_layout = []
|
|
||||||
|
|
||||||
[lib]
|
[lib]
|
||||||
proc-macro = true
|
proc-macro = true
|
||||||
|
|
||||||
|
|||||||
@ -244,10 +244,6 @@ impl EmitOptions {
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
// For testing purposes, we can optionally generate type layout
|
|
||||||
// information using the type-layout crate.
|
|
||||||
let type_layout_derive = quote!();
|
|
||||||
|
|
||||||
quote! {
|
quote! {
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
mod #alignment_mod_name {
|
mod #alignment_mod_name {
|
||||||
@ -257,7 +253,6 @@ impl EmitOptions {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy)]
|
#[derive(Debug, Clone, Copy)]
|
||||||
#type_layout_derive
|
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
#visibility struct #generated_name #ty_generics #where_clause {
|
#visibility struct #generated_name #ty_generics #where_clause {
|
||||||
#( #generated_fields )*
|
#( #generated_fields )*
|
||||||
|
|||||||
@ -35,7 +35,7 @@ uniform MAIN {
|
|||||||
} main;
|
} main;
|
||||||
```
|
```
|
||||||
|
|
||||||
```rust
|
```skip
|
||||||
use crevice::std140::{AsStd140, Std140};
|
use crevice::std140::{AsStd140, Std140};
|
||||||
use cgmath::prelude::*;
|
use cgmath::prelude::*;
|
||||||
use cgmath::{Matrix3, Vector3};
|
use cgmath::{Matrix3, Vector3};
|
||||||
@ -76,7 +76,7 @@ buffer POINT_LIGHTS {
|
|||||||
} point_lights;
|
} point_lights;
|
||||||
```
|
```
|
||||||
|
|
||||||
```rust
|
```skip
|
||||||
use crevice::std140::{self, AsStd140};
|
use crevice::std140::{self, AsStd140};
|
||||||
|
|
||||||
#[derive(AsStd140)]
|
#[derive(AsStd140)]
|
||||||
|
|||||||
@ -87,7 +87,7 @@ uniform CAMERA {
|
|||||||
} camera;
|
} camera;
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```skip
|
||||||
use cgmath::prelude::*;
|
use cgmath::prelude::*;
|
||||||
use cgmath::{Matrix4, Deg, perspective};
|
use cgmath::{Matrix4, Deg, perspective};
|
||||||
use crevice::std140::{AsStd140, Std140};
|
use crevice::std140::{AsStd140, Std140};
|
||||||
|
|||||||
@ -22,9 +22,9 @@ fn main() {
|
|||||||
.add_plugins(PipelinedDefaultPlugins)
|
.add_plugins(PipelinedDefaultPlugins)
|
||||||
.add_plugin(FrameTimeDiagnosticsPlugin::default())
|
.add_plugin(FrameTimeDiagnosticsPlugin::default())
|
||||||
.add_plugin(LogDiagnosticsPlugin::default())
|
.add_plugin(LogDiagnosticsPlugin::default())
|
||||||
.add_startup_system(setup.system())
|
.add_startup_system(setup)
|
||||||
.add_system(movement.system())
|
.add_system(movement)
|
||||||
.add_system(animate_light_direction.system())
|
.add_system(animate_light_direction)
|
||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -20,7 +20,7 @@ fn main() {
|
|||||||
.add_plugins(PipelinedDefaultPlugins)
|
.add_plugins(PipelinedDefaultPlugins)
|
||||||
.add_plugin(FrameTimeDiagnosticsPlugin::default())
|
.add_plugin(FrameTimeDiagnosticsPlugin::default())
|
||||||
.add_plugin(LogDiagnosticsPlugin::default())
|
.add_plugin(LogDiagnosticsPlugin::default())
|
||||||
.add_startup_system(setup.system())
|
.add_startup_system(setup)
|
||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -31,11 +31,11 @@ fn main() {
|
|||||||
);
|
);
|
||||||
App::new()
|
App::new()
|
||||||
.add_plugins(PipelinedDefaultPlugins)
|
.add_plugins(PipelinedDefaultPlugins)
|
||||||
.add_startup_system(setup.system())
|
.add_startup_system(setup)
|
||||||
.add_system(adjust_point_light_biases.system())
|
.add_system(adjust_point_light_biases)
|
||||||
.add_system(toggle_light.system())
|
.add_system(toggle_light)
|
||||||
.add_system(adjust_directional_light_biases.system())
|
.add_system(adjust_directional_light_biases)
|
||||||
.add_system(camera_controller.system())
|
.add_system(camera_controller)
|
||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -119,7 +119,7 @@ fn setup(
|
|||||||
mesh: meshes.add(Mesh::from(shape::Plane {
|
mesh: meshes.add(Mesh::from(shape::Plane {
|
||||||
size: 2.0 * spawn_plane_depth,
|
size: 2.0 * spawn_plane_depth,
|
||||||
})),
|
})),
|
||||||
material: white_handle.clone(),
|
material: white_handle,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,7 +15,7 @@ use bevy::{
|
|||||||
fn main() {
|
fn main() {
|
||||||
App::new()
|
App::new()
|
||||||
.add_plugins(PipelinedDefaultPlugins)
|
.add_plugins(PipelinedDefaultPlugins)
|
||||||
.add_startup_system(setup.system())
|
.add_startup_system(setup)
|
||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -96,14 +96,19 @@ Example | File | Description
|
|||||||
Example | File | Description
|
Example | File | Description
|
||||||
--- | --- | ---
|
--- | --- | ---
|
||||||
`3d_scene` | [`3d/3d_scene.rs`](./3d/3d_scene.rs) | Simple 3D scene with basic shapes and lighting
|
`3d_scene` | [`3d/3d_scene.rs`](./3d/3d_scene.rs) | Simple 3D scene with basic shapes and lighting
|
||||||
|
`3d_scene_pipelined` | [`3d/3d_scene_pipelined.rs`](./3d/3d_scene_pipelined.rs) | Simple 3D scene with basic shapes and lighting
|
||||||
|
`cornell_box_pipelined` | [`3d/cornell_box_pipelined.rs`](./3d/cornell_box_pipelined.rs) | Re-production of the cornell box
|
||||||
`load_gltf` | [`3d/load_gltf.rs`](./3d/load_gltf.rs) | Loads and renders a gltf file as a scene
|
`load_gltf` | [`3d/load_gltf.rs`](./3d/load_gltf.rs) | Loads and renders a gltf file as a scene
|
||||||
`msaa` | [`3d/msaa.rs`](./3d/msaa.rs) | Configures MSAA (Multi-Sample Anti-Aliasing) for smoother edges
|
`msaa` | [`3d/msaa.rs`](./3d/msaa.rs) | Configures MSAA (Multi-Sample Anti-Aliasing) for smoother edges
|
||||||
`orthographic` | [`3d/orthographic.rs`](./3d/orthographic.rs) | Shows how to create a 3D orthographic view (for isometric-look games or CAD applications)
|
`orthographic` | [`3d/orthographic.rs`](./3d/orthographic.rs) | Shows how to create a 3D orthographic view (for isometric-look games or CAD applications)
|
||||||
`parenting` | [`3d/parenting.rs`](./3d/parenting.rs) | Demonstrates parent->child relationships and relative transformations
|
`parenting` | [`3d/parenting.rs`](./3d/parenting.rs) | Demonstrates parent->child relationships and relative transformations
|
||||||
`pbr` | [`3d/pbr.rs`](./3d/pbr.rs) | Demonstrates use of Physically Based Rendering (PBR) properties
|
`pbr` | [`3d/pbr.rs`](./3d/pbr.rs) | Demonstrates use of Physically Based Rendering (PBR) properties
|
||||||
|
`pbr_pipelined` | [`3d/pbr_pipelined.rs`](./3d/pbr_pipelined.rs) | Demonstrates use of Physically Based Rendering (PBR) properties
|
||||||
`render_to_texture` | [`3d/render_to_texture.rs`](./3d/render_to_texture.rs) | Shows how to render to texture
|
`render_to_texture` | [`3d/render_to_texture.rs`](./3d/render_to_texture.rs) | Shows how to render to texture
|
||||||
|
`shadow_biases_pipelined` | [`3d/shadow_biases_pipelined.rs`](./3d/shadow_biases_pipelined.rs) | Demonstrates how shadow biases affect shadows in a 3d scene
|
||||||
`spawner` | [`3d/spawner.rs`](./3d/spawner.rs) | Renders a large number of cubes with changing position and material
|
`spawner` | [`3d/spawner.rs`](./3d/spawner.rs) | Renders a large number of cubes with changing position and material
|
||||||
`texture` | [`3d/texture.rs`](./3d/texture.rs) | Shows configuration of texture materials
|
`texture` | [`3d/texture.rs`](./3d/texture.rs) | Shows configuration of texture materials
|
||||||
|
`texture_pipelined` | [`3d/texture_pipelined.rs`](./3d/texture_pipelined.rs) | Shows configuration of texture materials
|
||||||
`update_gltf_scene` | [`3d/update_gltf_scene.rs`](./3d/update_gltf_scene.rs) | Update a scene from a gltf file, either by spawning the scene as a child of another entity, or by accessing the entities of the scene
|
`update_gltf_scene` | [`3d/update_gltf_scene.rs`](./3d/update_gltf_scene.rs) | Update a scene from a gltf file, either by spawning the scene as a child of another entity, or by accessing the entities of the scene
|
||||||
`wireframe` | [`3d/wireframe.rs`](./3d/wireframe.rs) | Showcases wireframe rendering
|
`wireframe` | [`3d/wireframe.rs`](./3d/wireframe.rs) | Showcases wireframe rendering
|
||||||
`z_sort_debug` | [`3d/z_sort_debug.rs`](./3d/z_sort_debug.rs) | Visualizes camera Z-ordering
|
`z_sort_debug` | [`3d/z_sort_debug.rs`](./3d/z_sort_debug.rs) | Visualizes camera Z-ordering
|
||||||
@ -230,6 +235,7 @@ Example | File | Description
|
|||||||
Example | File | Description
|
Example | File | Description
|
||||||
--- | --- | ---
|
--- | --- | ---
|
||||||
`bevymark` | [`tools/bevymark.rs`](./tools/bevymark.rs) | A heavy workload to benchmark your system with Bevy
|
`bevymark` | [`tools/bevymark.rs`](./tools/bevymark.rs) | A heavy workload to benchmark your system with Bevy
|
||||||
|
`bevymark_pipelined` | [`tools/bevymark_pipelined.rs`](./tools/bevymark_pipelined.rs) | A heavy workload to benchmark your system with Bevy
|
||||||
|
|
||||||
## UI (User Interface)
|
## UI (User Interface)
|
||||||
|
|
||||||
|
|||||||
@ -54,11 +54,11 @@ fn main() {
|
|||||||
// .add_plugin(WgpuResourceDiagnosticsPlugin::default())
|
// .add_plugin(WgpuResourceDiagnosticsPlugin::default())
|
||||||
.insert_resource(BevyCounter { count: 0 })
|
.insert_resource(BevyCounter { count: 0 })
|
||||||
// .init_resource::<BirdMaterial>()
|
// .init_resource::<BirdMaterial>()
|
||||||
.add_startup_system(setup.system())
|
.add_startup_system(setup)
|
||||||
.add_system(mouse_handler.system())
|
.add_system(mouse_handler)
|
||||||
.add_system(movement_system.system())
|
.add_system(movement_system)
|
||||||
.add_system(collision_system.system())
|
.add_system(collision_system)
|
||||||
.add_system(counter_system.system())
|
.add_system(counter_system)
|
||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -28,5 +28,5 @@ bevy_utils = { path = "../../crates/bevy_utils", version = "0.5.0" }
|
|||||||
bitflags = "1.2"
|
bitflags = "1.2"
|
||||||
# direct dependency required for derive macro
|
# direct dependency required for derive macro
|
||||||
bytemuck = { version = "1", features = ["derive"] }
|
bytemuck = { version = "1", features = ["derive"] }
|
||||||
crevice = { path = "../../crates/crevice" }
|
crevice = { path = "../../crates/crevice", version = "0.6.0" }
|
||||||
wgpu = "0.9"
|
wgpu = "0.9"
|
||||||
|
|||||||
@ -33,20 +33,17 @@ impl Plugin for PbrPlugin {
|
|||||||
|
|
||||||
let render_app = app.sub_app_mut(0);
|
let render_app = app.sub_app_mut(0);
|
||||||
render_app
|
render_app
|
||||||
.add_system_to_stage(RenderStage::Extract, render::extract_meshes.system())
|
.add_system_to_stage(RenderStage::Extract, render::extract_meshes)
|
||||||
.add_system_to_stage(RenderStage::Extract, render::extract_lights.system())
|
.add_system_to_stage(RenderStage::Extract, render::extract_lights)
|
||||||
.add_system_to_stage(RenderStage::Prepare, render::prepare_meshes.system())
|
.add_system_to_stage(RenderStage::Prepare, render::prepare_meshes)
|
||||||
.add_system_to_stage(
|
.add_system_to_stage(
|
||||||
RenderStage::Prepare,
|
RenderStage::Prepare,
|
||||||
// this is added as an exclusive system because it contributes new views. it must run (and have Commands applied)
|
// this is added as an exclusive system because it contributes new views. it must run (and have Commands applied)
|
||||||
// _before_ the `prepare_views()` system is run. ideally this becomes a normal system when "stageless" features come out
|
// _before_ the `prepare_views()` system is run. ideally this becomes a normal system when "stageless" features come out
|
||||||
render::prepare_lights.exclusive_system(),
|
render::prepare_lights.exclusive_system(),
|
||||||
)
|
)
|
||||||
.add_system_to_stage(RenderStage::Queue, render::queue_meshes.system())
|
.add_system_to_stage(RenderStage::Queue, render::queue_meshes)
|
||||||
.add_system_to_stage(
|
.add_system_to_stage(RenderStage::PhaseSort, sort_phase_system::<ShadowPhase>)
|
||||||
RenderStage::PhaseSort,
|
|
||||||
sort_phase_system::<ShadowPhase>.system(),
|
|
||||||
)
|
|
||||||
// FIXME: Hack to ensure RenderCommandQueue is initialized when PbrShaders is being initialized
|
// FIXME: Hack to ensure RenderCommandQueue is initialized when PbrShaders is being initialized
|
||||||
// .init_resource::<RenderCommandQueue>()
|
// .init_resource::<RenderCommandQueue>()
|
||||||
.init_resource::<PbrShaders>()
|
.init_resource::<PbrShaders>()
|
||||||
|
|||||||
@ -30,7 +30,7 @@ image = { version = "0.23.12", default-features = false }
|
|||||||
|
|
||||||
# misc
|
# misc
|
||||||
wgpu = "0.9"
|
wgpu = "0.9"
|
||||||
naga = { git = "https://github.com/gfx-rs/naga", rev = "0cf5484bba530f1134badbd2a1c1a8e9daf2e9c3", features = ["glsl-in", "spv-in", "spv-out", "wgsl-in", "wgsl-out"] }
|
naga = { version = "0.5", features = ["glsl-in", "spv-in", "spv-out", "wgsl-in", "wgsl-out"] }
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
bitflags = "1.2.1"
|
bitflags = "1.2.1"
|
||||||
smallvec = { version = "1.6", features = ["union", "const_generics"] }
|
smallvec = { version = "1.6", features = ["union", "const_generics"] }
|
||||||
@ -40,9 +40,9 @@ thiserror = "1.0"
|
|||||||
futures-lite = "1.4.0"
|
futures-lite = "1.4.0"
|
||||||
anyhow = "1.0"
|
anyhow = "1.0"
|
||||||
hex = "0.4.2"
|
hex = "0.4.2"
|
||||||
hexasphere = "3.4"
|
hexasphere = "4.0"
|
||||||
parking_lot = "0.11.0"
|
parking_lot = "0.11.0"
|
||||||
crevice = { path = "../../crates/crevice" }
|
crevice = { path = "../../crates/crevice", version = "0.6.0" }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
png = ["image/png"]
|
png = ["image/png"]
|
||||||
|
|||||||
@ -31,22 +31,19 @@ impl Plugin for CameraPlugin {
|
|||||||
active_cameras.add(Self::CAMERA_3D);
|
active_cameras.add(Self::CAMERA_3D);
|
||||||
app.register_type::<Camera>()
|
app.register_type::<Camera>()
|
||||||
.insert_resource(active_cameras)
|
.insert_resource(active_cameras)
|
||||||
|
.add_system_to_stage(CoreStage::PostUpdate, crate::camera::active_cameras_system)
|
||||||
.add_system_to_stage(
|
.add_system_to_stage(
|
||||||
CoreStage::PostUpdate,
|
CoreStage::PostUpdate,
|
||||||
crate::camera::active_cameras_system.system(),
|
crate::camera::camera_system::<OrthographicProjection>,
|
||||||
)
|
)
|
||||||
.add_system_to_stage(
|
.add_system_to_stage(
|
||||||
CoreStage::PostUpdate,
|
CoreStage::PostUpdate,
|
||||||
crate::camera::camera_system::<OrthographicProjection>.system(),
|
crate::camera::camera_system::<PerspectiveProjection>,
|
||||||
)
|
|
||||||
.add_system_to_stage(
|
|
||||||
CoreStage::PostUpdate,
|
|
||||||
crate::camera::camera_system::<PerspectiveProjection>.system(),
|
|
||||||
);
|
);
|
||||||
let render_app = app.sub_app_mut(0);
|
let render_app = app.sub_app_mut(0);
|
||||||
render_app
|
render_app
|
||||||
.init_resource::<ExtractedCameraNames>()
|
.init_resource::<ExtractedCameraNames>()
|
||||||
.add_system_to_stage(RenderStage::Extract, extract_cameras.system());
|
.add_system_to_stage(RenderStage::Extract, extract_cameras);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -61,18 +61,15 @@ impl Plugin for CorePipelinePlugin {
|
|||||||
fn build(&self, app: &mut App) {
|
fn build(&self, app: &mut App) {
|
||||||
let render_app = app.sub_app_mut(0);
|
let render_app = app.sub_app_mut(0);
|
||||||
render_app
|
render_app
|
||||||
.add_system_to_stage(
|
.add_system_to_stage(RenderStage::Extract, extract_core_pipeline_camera_phases)
|
||||||
RenderStage::Extract,
|
.add_system_to_stage(RenderStage::Prepare, prepare_core_views_system)
|
||||||
extract_core_pipeline_camera_phases.system(),
|
|
||||||
)
|
|
||||||
.add_system_to_stage(RenderStage::Prepare, prepare_core_views_system.system())
|
|
||||||
.add_system_to_stage(
|
.add_system_to_stage(
|
||||||
RenderStage::PhaseSort,
|
RenderStage::PhaseSort,
|
||||||
sort_phase_system::<Transparent2dPhase>.system(),
|
sort_phase_system::<Transparent2dPhase>,
|
||||||
)
|
)
|
||||||
.add_system_to_stage(
|
.add_system_to_stage(
|
||||||
RenderStage::PhaseSort,
|
RenderStage::PhaseSort,
|
||||||
sort_phase_system::<Transparent3dPhase>.system(),
|
sort_phase_system::<Transparent3dPhase>,
|
||||||
);
|
);
|
||||||
|
|
||||||
let pass_node_2d = MainPass2dNode::new(&mut render_app.world);
|
let pass_node_2d = MainPass2dNode::new(&mut render_app.world);
|
||||||
|
|||||||
@ -4,16 +4,16 @@
|
|||||||
//! # Examples
|
//! # Examples
|
||||||
//!
|
//!
|
||||||
//! ```rust
|
//! ```rust
|
||||||
//! use bevy_render::mesh::VertexAttributeValues;
|
//! use bevy_render2::mesh::VertexAttributeValues;
|
||||||
//! use std::convert::{ TryInto, TryFrom };
|
//! use std::convert::{ TryInto, TryFrom };
|
||||||
//!
|
//!
|
||||||
//! // creating std::vec::Vec
|
//! // creating std::vec::Vec
|
||||||
//! let buffer = vec![[0_u32; 4]; 10];
|
//! let buffer = vec![[0_u32; 4]; 10];
|
||||||
//!
|
//!
|
||||||
//! // converting std::vec::Vec to bevy_render::mesh::VertexAttributeValues
|
//! // converting std::vec::Vec to bevy_render2::mesh::VertexAttributeValues
|
||||||
//! let values = VertexAttributeValues::from(buffer.clone());
|
//! let values = VertexAttributeValues::from(buffer.clone());
|
||||||
//!
|
//!
|
||||||
//! // converting bevy_render::mesh::VertexAttributeValues to std::vec::Vec with two ways
|
//! // converting bevy_render2::mesh::VertexAttributeValues to std::vec::Vec with two ways
|
||||||
//! let result_into: Vec<[u32; 4]> = values.clone().try_into().unwrap();
|
//! let result_into: Vec<[u32; 4]> = values.clone().try_into().unwrap();
|
||||||
//! let result_from: Vec<[u32; 4]> = Vec::try_from(values.clone()).unwrap();
|
//! let result_from: Vec<[u32; 4]> = Vec::try_from(values.clone()).unwrap();
|
||||||
//!
|
//!
|
||||||
|
|||||||
@ -36,8 +36,8 @@ pub struct Mesh {
|
|||||||
///
|
///
|
||||||
/// Example of constructing a mesh:
|
/// Example of constructing a mesh:
|
||||||
/// ```
|
/// ```
|
||||||
/// # use bevy_render::mesh::{Mesh, Indices};
|
/// # use bevy_render2::mesh::{Mesh, Indices};
|
||||||
/// # use bevy_render::pipeline::PrimitiveTopology;
|
/// # use bevy_render2::render_resource::PrimitiveTopology;
|
||||||
/// fn create_triangle() -> Mesh {
|
/// fn create_triangle() -> Mesh {
|
||||||
/// let mut mesh = Mesh::new(PrimitiveTopology::TriangleList);
|
/// let mut mesh = Mesh::new(PrimitiveTopology::TriangleList);
|
||||||
/// mesh.set_attribute(Mesh::ATTRIBUTE_POSITION, vec![[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [1.0, 1.0, 0.0]]);
|
/// mesh.set_attribute(Mesh::ATTRIBUTE_POSITION, vec![[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [1.0, 1.0, 0.0]]);
|
||||||
|
|||||||
@ -35,8 +35,8 @@ impl<A: RenderAsset> Plugin for RenderAssetPlugin<A> {
|
|||||||
render_app
|
render_app
|
||||||
.init_resource::<ExtractedAssets<A>>()
|
.init_resource::<ExtractedAssets<A>>()
|
||||||
.init_resource::<RenderAssets<A>>()
|
.init_resource::<RenderAssets<A>>()
|
||||||
.add_system_to_stage(RenderStage::Extract, extract_render_asset::<A>.system())
|
.add_system_to_stage(RenderStage::Extract, extract_render_asset::<A>)
|
||||||
.add_system_to_stage(RenderStage::Prepare, prepare_render_asset::<A>.system());
|
.add_system_to_stage(RenderStage::Prepare, prepare_render_asset::<A>);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -75,7 +75,7 @@ impl Shader {
|
|||||||
&source,
|
&source,
|
||||||
&naga::front::glsl::Options {
|
&naga::front::glsl::Options {
|
||||||
entry_points,
|
entry_points,
|
||||||
..Default::default()
|
defines: Default::default(),
|
||||||
},
|
},
|
||||||
)?
|
)?
|
||||||
}
|
}
|
||||||
|
|||||||
@ -16,7 +16,6 @@ pub use texture_cache::*;
|
|||||||
use crate::{render_asset::RenderAssetPlugin, RenderStage};
|
use crate::{render_asset::RenderAssetPlugin, RenderStage};
|
||||||
use bevy_app::{App, Plugin};
|
use bevy_app::{App, Plugin};
|
||||||
use bevy_asset::AddAsset;
|
use bevy_asset::AddAsset;
|
||||||
use bevy_ecs::prelude::*;
|
|
||||||
|
|
||||||
// TODO: replace Texture names with Image names?
|
// TODO: replace Texture names with Image names?
|
||||||
pub struct ImagePlugin;
|
pub struct ImagePlugin;
|
||||||
@ -34,7 +33,7 @@ impl Plugin for ImagePlugin {
|
|||||||
let render_app = app.sub_app_mut(0);
|
let render_app = app.sub_app_mut(0);
|
||||||
render_app
|
render_app
|
||||||
.init_resource::<TextureCache>()
|
.init_resource::<TextureCache>()
|
||||||
.add_system_to_stage(RenderStage::Cleanup, update_texture_cache_system.system());
|
.add_system_to_stage(RenderStage::Cleanup, update_texture_cache_system);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,7 @@ impl Plugin for ViewPlugin {
|
|||||||
let render_app = app.sub_app_mut(0);
|
let render_app = app.sub_app_mut(0);
|
||||||
render_app
|
render_app
|
||||||
.init_resource::<ViewMeta>()
|
.init_resource::<ViewMeta>()
|
||||||
.add_system_to_stage(RenderStage::Prepare, prepare_views.system());
|
.add_system_to_stage(RenderStage::Prepare, prepare_views);
|
||||||
|
|
||||||
let mut graph = render_app.world.get_resource_mut::<RenderGraph>().unwrap();
|
let mut graph = render_app.world.get_resource_mut::<RenderGraph>().unwrap();
|
||||||
graph.add_node(ViewPlugin::VIEW_NODE, ViewNode);
|
graph.add_node(ViewPlugin::VIEW_NODE, ViewNode);
|
||||||
|
|||||||
@ -23,8 +23,8 @@ impl Plugin for WindowRenderPlugin {
|
|||||||
render_app
|
render_app
|
||||||
.init_resource::<WindowSurfaces>()
|
.init_resource::<WindowSurfaces>()
|
||||||
.init_resource::<NonSendMarker>()
|
.init_resource::<NonSendMarker>()
|
||||||
.add_system_to_stage(RenderStage::Extract, extract_windows.system())
|
.add_system_to_stage(RenderStage::Extract, extract_windows)
|
||||||
.add_system_to_stage(RenderStage::Prepare, prepare_windows.system());
|
.add_system_to_stage(RenderStage::Prepare, prepare_windows);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,6 @@ pub use render::*;
|
|||||||
pub use sprite::*;
|
pub use sprite::*;
|
||||||
|
|
||||||
use bevy_app::prelude::*;
|
use bevy_app::prelude::*;
|
||||||
use bevy_ecs::prelude::IntoSystem;
|
|
||||||
use bevy_render2::{
|
use bevy_render2::{
|
||||||
core_pipeline, render_graph::RenderGraph, render_phase::DrawFunctions, RenderStage,
|
core_pipeline, render_graph::RenderGraph, render_phase::DrawFunctions, RenderStage,
|
||||||
};
|
};
|
||||||
@ -22,9 +21,9 @@ impl Plugin for SpritePlugin {
|
|||||||
app.register_type::<Sprite>();
|
app.register_type::<Sprite>();
|
||||||
let render_app = app.sub_app_mut(0);
|
let render_app = app.sub_app_mut(0);
|
||||||
render_app
|
render_app
|
||||||
.add_system_to_stage(RenderStage::Extract, render::extract_sprites.system())
|
.add_system_to_stage(RenderStage::Extract, render::extract_sprites)
|
||||||
.add_system_to_stage(RenderStage::Prepare, render::prepare_sprites.system())
|
.add_system_to_stage(RenderStage::Prepare, render::prepare_sprites)
|
||||||
.add_system_to_stage(RenderStage::Queue, queue_sprites.system())
|
.add_system_to_stage(RenderStage::Queue, queue_sprites)
|
||||||
.init_resource::<SpriteShaders>()
|
.init_resource::<SpriteShaders>()
|
||||||
.init_resource::<SpriteMeta>();
|
.init_resource::<SpriteMeta>();
|
||||||
let draw_sprite = DrawSprite::new(&mut render_app.world);
|
let draw_sprite = DrawSprite::new(&mut render_app.world);
|
||||||
|
|||||||
@ -1,10 +0,0 @@
|
|||||||
* Remove AppBuilder
|
|
||||||
* Add SubApps
|
|
||||||
* `Res<Box<dyn RenderResourceContext>>` -> `Res<RenderResources>`
|
|
||||||
* Removed RenderResourceBindings
|
|
||||||
* Made shaders and pipelines proper render resources (removes dependency on bevy_asset and is generally a cleaner api)
|
|
||||||
* Removed RenderResources / RenderResource traits
|
|
||||||
* Decoupled swap chain from Window in Renderer api
|
|
||||||
* Removed RenderResourceBindings
|
|
||||||
* Removed asset tracking from render resources
|
|
||||||
* Removed cruft from RenderResource api
|
|
||||||
Loading…
Reference in New Issue
Block a user