Skip to content

Commit e80a350

Browse files
committed
Create bevy_render_2d crate
1 parent 0244a84 commit e80a350

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+2454
-1946
lines changed

Cargo.toml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,7 @@ default = [
143143
"bevy_pbr",
144144
"bevy_picking",
145145
"bevy_render",
146+
"bevy_render_2d",
146147
"bevy_scene",
147148
"bevy_sprite",
148149
"bevy_sprite_picking_backend",
@@ -242,13 +243,17 @@ bevy_picking = ["bevy_internal/bevy_picking"]
242243
# Provides rendering functionality
243244
bevy_render = ["bevy_internal/bevy_render", "bevy_color"]
244245

246+
# Provides functionality for rendering in 2d
247+
bevy_render_2d = ["bevy_internal/bevy_render_2d"]
248+
245249
# Provides scene functionality
246250
bevy_scene = ["bevy_internal/bevy_scene", "bevy_asset"]
247251

248252
# Provides sprite functionality
249253
bevy_sprite = [
250254
"bevy_internal/bevy_sprite",
251255
"bevy_render",
256+
"bevy_render_2d",
252257
"bevy_core_pipeline",
253258
"bevy_color",
254259
"bevy_anti_aliasing",

crates/bevy_gizmos/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ bevy_render = ["dep:bevy_render", "bevy_core_pipeline"]
1616
[dependencies]
1717
# Bevy
1818
bevy_pbr = { path = "../bevy_pbr", version = "0.16.0-dev", optional = true }
19-
bevy_sprite = { path = "../bevy_sprite", version = "0.16.0-dev", optional = true }
19+
bevy_render_2d = { path = "../bevy_render_2d", version = "0.16.0-dev", optional = true }
2020
bevy_app = { path = "../bevy_app", version = "0.16.0-dev" }
2121
bevy_color = { path = "../bevy_color", version = "0.16.0-dev" }
2222
bevy_ecs = { path = "../bevy_ecs", version = "0.16.0-dev" }

crates/bevy_gizmos/src/config.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pub use bevy_gizmos_macros::GizmoConfigGroup;
44

55
#[cfg(all(
66
feature = "bevy_render",
7-
any(feature = "bevy_pbr", feature = "bevy_sprite")
7+
any(feature = "bevy_pbr", feature = "bevy_render_2d")
88
))]
99
use {crate::GizmoAsset, bevy_asset::Handle, bevy_ecs::component::Component};
1010

@@ -246,7 +246,7 @@ impl Default for GizmoLineConfig {
246246

247247
#[cfg(all(
248248
feature = "bevy_render",
249-
any(feature = "bevy_pbr", feature = "bevy_sprite")
249+
any(feature = "bevy_pbr", feature = "bevy_render_2d")
250250
))]
251251
#[derive(Component)]
252252
pub(crate) struct GizmoMeshConfig {

crates/bevy_gizmos/src/lib.rs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ extern crate self as bevy_gizmos;
2626
#[derive(SystemSet, Clone, Debug, Hash, PartialEq, Eq)]
2727
pub enum GizmoRenderSystem {
2828
/// Adds gizmos to the [`Transparent2d`](bevy_core_pipeline::core_2d::Transparent2d) render phase
29-
#[cfg(feature = "bevy_sprite")]
29+
#[cfg(feature = "bevy_render_2d")]
3030
QueueLineGizmos2d,
3131
/// Adds gizmos to the [`Transparent3d`](bevy_core_pipeline::core_3d::Transparent3d) render phase
3232
#[cfg(feature = "bevy_pbr")]
@@ -50,7 +50,7 @@ pub mod rounded_box;
5050
#[cfg(all(feature = "bevy_pbr", feature = "bevy_render"))]
5151
pub mod light;
5252

53-
#[cfg(all(feature = "bevy_sprite", feature = "bevy_render"))]
53+
#[cfg(all(feature = "bevy_render_2d", feature = "bevy_render"))]
5454
mod pipeline_2d;
5555
#[cfg(all(feature = "bevy_pbr", feature = "bevy_render"))]
5656
mod pipeline_3d;
@@ -90,7 +90,7 @@ use bevy_reflect::TypePath;
9090

9191
#[cfg(all(
9292
feature = "bevy_render",
93-
any(feature = "bevy_pbr", feature = "bevy_sprite")
93+
any(feature = "bevy_pbr", feature = "bevy_render_2d")
9494
))]
9595
use crate::config::GizmoMeshConfig;
9696

@@ -127,7 +127,7 @@ use {
127127

128128
#[cfg(all(
129129
feature = "bevy_render",
130-
any(feature = "bevy_pbr", feature = "bevy_sprite"),
130+
any(feature = "bevy_pbr", feature = "bevy_render_2d"),
131131
))]
132132
use bevy_render::render_resource::{VertexAttribute, VertexBufferLayout, VertexStepMode};
133133
use bevy_time::Fixed;
@@ -148,7 +148,7 @@ const LINE_JOINT_SHADER_HANDLE: Handle<Shader> =
148148

149149
/// A [`Plugin`] that provides an immediate mode drawing api for visual debugging.
150150
///
151-
/// Requires to be loaded after [`PbrPlugin`](bevy_pbr::PbrPlugin) or [`SpritePlugin`](bevy_sprite::SpritePlugin).
151+
/// Requires to be loaded after [`PbrPlugin`](bevy_pbr::PbrPlugin) or [`SpritePlugin`](bevy_render_2d::SpritePlugin).
152152
#[derive(Default)]
153153
pub struct GizmoPlugin;
154154

@@ -190,11 +190,11 @@ impl Plugin for GizmoPlugin {
190190

191191
render_app.add_systems(ExtractSchedule, (extract_gizmo_data, extract_linegizmos));
192192

193-
#[cfg(feature = "bevy_sprite")]
194-
if app.is_plugin_added::<bevy_sprite::SpritePlugin>() {
193+
#[cfg(feature = "bevy_render_2d")]
194+
if app.is_plugin_added::<bevy_render_2d::mesh_pipeline::Mesh2dRenderPlugin>() {
195195
app.add_plugins(pipeline_2d::LineGizmo2dPlugin);
196196
} else {
197-
tracing::warn!("bevy_sprite feature is enabled but bevy_sprite::SpritePlugin was not detected. Are you sure you loaded GizmoPlugin after SpritePlugin?");
197+
tracing::warn!("bevy_render_2d feature is enabled but bevy_render_2d::mesh_pipeline::Mesh2dRenderPlugin was not detected. Are you sure you loaded GizmoPlugin after Mesh2dRenderPlugin?");
198198
}
199199
#[cfg(feature = "bevy_pbr")]
200200
if app.is_plugin_added::<bevy_pbr::PbrPlugin>() {
@@ -474,7 +474,7 @@ fn extract_gizmo_data(
474474
#[cfg(feature = "webgl")]
475475
_padding: Default::default(),
476476
},
477-
#[cfg(any(feature = "bevy_pbr", feature = "bevy_sprite"))]
477+
#[cfg(any(feature = "bevy_pbr", feature = "bevy_render_2d"))]
478478
GizmoMeshConfig {
479479
line_perspective: config.line.perspective,
480480
line_style: config.line.style,
@@ -655,7 +655,7 @@ impl<const I: usize, P: PhaseItem> RenderCommand<P> for SetLineGizmoBindGroup<I>
655655
struct DrawLineGizmo<const STRIP: bool>;
656656
#[cfg(all(
657657
feature = "bevy_render",
658-
any(feature = "bevy_pbr", feature = "bevy_sprite")
658+
any(feature = "bevy_pbr", feature = "bevy_render_2d")
659659
))]
660660
impl<P: PhaseItem, const STRIP: bool> RenderCommand<P> for DrawLineGizmo<STRIP> {
661661
type Param = SRes<RenderAssets<GpuLineGizmo>>;
@@ -718,7 +718,7 @@ impl<P: PhaseItem, const STRIP: bool> RenderCommand<P> for DrawLineGizmo<STRIP>
718718
struct DrawLineJointGizmo;
719719
#[cfg(all(
720720
feature = "bevy_render",
721-
any(feature = "bevy_pbr", feature = "bevy_sprite")
721+
any(feature = "bevy_pbr", feature = "bevy_render_2d")
722722
))]
723723
impl<P: PhaseItem> RenderCommand<P> for DrawLineJointGizmo {
724724
type Param = SRes<RenderAssets<GpuLineGizmo>>;
@@ -791,7 +791,7 @@ impl<P: PhaseItem> RenderCommand<P> for DrawLineJointGizmo {
791791

792792
#[cfg(all(
793793
feature = "bevy_render",
794-
any(feature = "bevy_pbr", feature = "bevy_sprite")
794+
any(feature = "bevy_pbr", feature = "bevy_render_2d")
795795
))]
796796
fn line_gizmo_vertex_buffer_layouts(strip: bool) -> Vec<VertexBufferLayout> {
797797
use VertexFormat::*;
@@ -849,7 +849,7 @@ fn line_gizmo_vertex_buffer_layouts(strip: bool) -> Vec<VertexBufferLayout> {
849849

850850
#[cfg(all(
851851
feature = "bevy_render",
852-
any(feature = "bevy_pbr", feature = "bevy_sprite")
852+
any(feature = "bevy_pbr", feature = "bevy_render_2d")
853853
))]
854854
fn line_joint_gizmo_vertex_buffer_layouts() -> Vec<VertexBufferLayout> {
855855
use VertexFormat::*;

crates/bevy_gizmos/src/pipeline_2d.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ use bevy_render::{
2727
view::{ExtractedView, Msaa, RenderLayers, ViewTarget},
2828
Render, RenderApp, RenderSet,
2929
};
30-
use bevy_sprite::{Mesh2dPipeline, Mesh2dPipelineKey, SetMesh2dViewBindGroup};
30+
use bevy_render_2d::mesh_pipeline::{
31+
commands::SetMesh2dViewBindGroup,
32+
pipeline::{Mesh2dPipeline, Mesh2dPipelineKey},
33+
};
3134
use tracing::error;
3235

3336
pub struct LineGizmo2dPlugin;
@@ -48,10 +51,7 @@ impl Plugin for LineGizmo2dPlugin {
4851
Render,
4952
GizmoRenderSystem::QueueLineGizmos2d
5053
.in_set(RenderSet::Queue)
51-
.ambiguous_with(bevy_sprite::queue_sprites)
52-
.ambiguous_with(
53-
bevy_sprite::queue_material2d_meshes::<bevy_sprite::ColorMaterial>,
54-
),
54+
.before(RenderSet::QueueMeshes),
5555
)
5656
.add_systems(
5757
Render,

crates/bevy_gizmos/src/retained.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ pub(crate) fn extract_linegizmos(
143143
#[cfg(feature = "webgl")]
144144
_padding: Default::default(),
145145
},
146-
#[cfg(any(feature = "bevy_pbr", feature = "bevy_sprite"))]
146+
#[cfg(any(feature = "bevy_pbr", feature = "bevy_render_2d"))]
147147
crate::config::GizmoMeshConfig {
148148
line_perspective: gizmo.line_config.perspective,
149149
line_style: gizmo.line_config.style,

crates/bevy_internal/Cargo.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ bevy_ci_testing = ["bevy_dev_tools/bevy_ci_testing", "bevy_render?/ci_limits"]
176176
# Enable animation support, and glTF animation loading
177177
animation = ["bevy_animation", "bevy_gltf?/bevy_animation"]
178178

179-
bevy_sprite = ["dep:bevy_sprite", "bevy_gizmos?/bevy_sprite", "bevy_image"]
179+
bevy_sprite = ["dep:bevy_sprite", "bevy_image"]
180180
bevy_pbr = ["dep:bevy_pbr", "bevy_gizmos?/bevy_pbr", "bevy_image"]
181181
bevy_window = ["dep:bevy_window", "dep:bevy_a11y"]
182182
bevy_core_pipeline = ["dep:bevy_core_pipeline", "bevy_image"]
@@ -207,6 +207,8 @@ bevy_render = [
207207
"bevy_color/encase",
208208
]
209209

210+
bevy_render_2d = ["dep:bevy_render_2d", "bevy_gizmos?/bevy_render_2d"]
211+
210212
# Enable assertions to check the validity of parameters passed to glam
211213
glam_assert = ["bevy_math/glam_assert"]
212214

@@ -418,6 +420,7 @@ bevy_pbr = { path = "../bevy_pbr", optional = true, version = "0.16.0-dev" }
418420
bevy_picking = { path = "../bevy_picking", optional = true, version = "0.16.0-dev" }
419421
bevy_remote = { path = "../bevy_remote", optional = true, version = "0.16.0-dev" }
420422
bevy_render = { path = "../bevy_render", optional = true, version = "0.16.0-dev" }
423+
bevy_render_2d = { path = "../bevy_render_2d", optional = true, version = "0.16.0-dev" }
421424
bevy_scene = { path = "../bevy_scene", optional = true, version = "0.16.0-dev" }
422425
bevy_sprite = { path = "../bevy_sprite", optional = true, version = "0.16.0-dev" }
423426
bevy_state = { path = "../bevy_state", optional = true, version = "0.16.0-dev", default-features = false, features = [

crates/bevy_internal/src/default_plugins.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ plugin_group! {
4040
bevy_render::pipelined_rendering:::PipelinedRenderingPlugin,
4141
#[cfg(feature = "bevy_core_pipeline")]
4242
bevy_core_pipeline:::CorePipelinePlugin,
43+
#[cfg(feature = "bevy_render_2d")]
44+
bevy_render_2d::mesh_pipeline:::Mesh2dRenderPlugin,
4345
#[cfg(feature = "bevy_anti_aliasing")]
4446
bevy_anti_aliasing:::AntiAliasingPlugin,
4547
#[cfg(feature = "bevy_sprite")]

crates/bevy_internal/src/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ pub use bevy_reflect as reflect;
6060
pub use bevy_remote as remote;
6161
#[cfg(feature = "bevy_render")]
6262
pub use bevy_render as render;
63+
#[cfg(feature = "bevy_render_2d")]
64+
pub use bevy_render_2d as render_2d;
6365
#[cfg(feature = "bevy_scene")]
6466
pub use bevy_scene as scene;
6567
#[cfg(feature = "bevy_sprite")]

crates/bevy_internal/src/prelude.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ pub use crate::pbr::prelude::*;
5050
#[cfg(feature = "bevy_render")]
5151
pub use crate::render::prelude::*;
5252

53+
#[doc(hidden)]
54+
#[cfg(feature = "bevy_render_2d")]
55+
pub use crate::render_2d::prelude::*;
56+
5357
#[doc(hidden)]
5458
#[cfg(feature = "bevy_scene")]
5559
pub use crate::scene::prelude::*;

0 commit comments

Comments
 (0)