Skip to content

Commit 66f72dd

Browse files
authored
Use wildcard imports in bevy_pbr (#9847)
# Objective - the style of import used by bevy guarantees merge conflicts when any file change - This is especially true when import lists are large, such as in `bevy_pbr` - Merge conflicts are tricky to resolve. This bogs down rendering PRs and makes contributing to bevy's rendering system more difficult than it needs to ## Solution - Use wildcard imports to replace multiline import list in `bevy_pbr` I suspect this is controversial, but I'd like to hear alternatives. Because this is one of many papercuts that makes developing render features near impossible.
1 parent 756fb06 commit 66f72dd

File tree

10 files changed

+25
-107
lines changed

10 files changed

+25
-107
lines changed

crates/bevy_pbr/src/environment_map/mod.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,7 @@ use bevy_reflect::Reflect;
66
use bevy_render::{
77
extract_component::{ExtractComponent, ExtractComponentPlugin},
88
render_asset::RenderAssets,
9-
render_resource::{
10-
BindGroupLayoutEntry, BindingType, Sampler, SamplerBindingType, Shader, ShaderStages,
11-
TextureSampleType, TextureView, TextureViewDimension,
12-
},
9+
render_resource::*,
1310
texture::{FallbackImageCubemap, Image},
1411
};
1512

crates/bevy_pbr/src/light.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,7 @@ use bevy_render::{
1717
use bevy_transform::{components::GlobalTransform, prelude::Transform};
1818
use bevy_utils::{tracing::warn, HashMap};
1919

20-
use crate::{
21-
calculate_cluster_factors, spot_light_projection_matrix, spot_light_view_matrix,
22-
CascadesVisibleEntities, CubeMapFace, CubemapVisibleEntities, ViewClusterBindings,
23-
CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT, CUBE_MAP_FACES, MAX_UNIFORM_BUFFER_POINT_LIGHTS,
24-
POINT_LIGHT_NEAR_Z,
25-
};
20+
use crate::*;
2621

2722
/// A light that emits light in all directions from a central point.
2823
///

crates/bevy_pbr/src/material.rs

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
use crate::{
2-
render, AlphaMode, DrawMesh, DrawPrepass, EnvironmentMapLight, MeshPipeline, MeshPipelineKey,
3-
PrepassPipelinePlugin, PrepassPlugin, RenderMeshInstances, ScreenSpaceAmbientOcclusionSettings,
4-
SetMeshBindGroup, SetMeshViewBindGroup, Shadow, ShadowFilteringMethod,
5-
};
1+
use crate::*;
62
use bevy_app::{App, Plugin};
73
use bevy_asset::{Asset, AssetApp, AssetEvent, AssetId, AssetServer, Assets, Handle};
84
use bevy_core_pipeline::{
@@ -24,15 +20,8 @@ use bevy_render::{
2420
mesh::{Mesh, MeshVertexBufferLayout},
2521
prelude::Image,
2622
render_asset::{prepare_assets, RenderAssets},
27-
render_phase::{
28-
AddRenderCommand, DrawFunctions, PhaseItem, RenderCommand, RenderCommandResult,
29-
RenderPhase, SetItemPipeline, TrackedRenderPass,
30-
},
31-
render_resource::{
32-
AsBindGroup, AsBindGroupError, BindGroup, BindGroupId, BindGroupLayout,
33-
OwnedBindingResource, PipelineCache, RenderPipelineDescriptor, Shader, ShaderRef,
34-
SpecializedMeshPipeline, SpecializedMeshPipelineError, SpecializedMeshPipelines,
35-
},
23+
render_phase::*,
24+
render_resource::*,
3625
renderer::RenderDevice,
3726
texture::FallbackImage,
3827
view::{ExtractedView, Msaa, VisibleEntities},
@@ -42,7 +31,7 @@ use bevy_utils::{tracing::error, HashMap, HashSet};
4231
use std::hash::Hash;
4332
use std::marker::PhantomData;
4433

45-
/// Materials are used alongside [`MaterialPlugin`] and [`MaterialMeshBundle`](crate::MaterialMeshBundle)
34+
/// Materials are used alongside [`MaterialPlugin`] and [`MaterialMeshBundle`]
4635
/// to spawn entities that are rendered with a specific [`Material`] type. They serve as an easy to use high level
4736
/// way to render [`Mesh`] entities with custom shader logic.
4837
///

crates/bevy_pbr/src/pbr_material.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
use crate::{
2-
deferred::DEFAULT_PBR_DEFERRED_LIGHTING_PASS_ID, AlphaMode, Material, MaterialPipeline,
3-
MaterialPipelineKey, OpaqueRendererMethod, ParallaxMappingMethod, PBR_PREPASS_SHADER_HANDLE,
4-
PBR_SHADER_HANDLE,
5-
};
61
use bevy_asset::{Asset, Handle};
72
use bevy_math::Vec4;
83
use bevy_reflect::{std_traits::ReflectDefault, Reflect};
@@ -11,6 +6,9 @@ use bevy_render::{
116
texture::Image,
127
};
138

9+
use crate::deferred::DEFAULT_PBR_DEFERRED_LIGHTING_PASS_ID;
10+
use crate::*;
11+
1412
/// A material with "standard" properties used in PBR lighting
1513
/// Standard property values with pictures here
1614
/// <https://google.github.io/filament/Material%20Properties.pdf>.

crates/bevy_pbr/src/prepass/mod.rs

Lines changed: 5 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,8 @@ pub use prepass_bindings::*;
44

55
use bevy_app::{Plugin, PreUpdate};
66
use bevy_asset::{load_internal_asset, AssetServer, Handle};
7-
use bevy_core_pipeline::{
8-
core_3d::CORE_3D_DEPTH_FORMAT,
9-
deferred::{
10-
AlphaMask3dDeferred, Opaque3dDeferred, DEFERRED_LIGHTING_PASS_ID_FORMAT,
11-
DEFERRED_PREPASS_FORMAT,
12-
},
13-
prelude::Camera3d,
14-
prepass::{
15-
AlphaMask3dPrepass, DeferredPrepass, DepthPrepass, MotionVectorPrepass, NormalPrepass,
16-
Opaque3dPrepass, MOTION_VECTOR_PREPASS_FORMAT, NORMAL_PREPASS_FORMAT,
17-
},
18-
};
7+
use bevy_core_pipeline::{core_3d::CORE_3D_DEPTH_FORMAT, prelude::Camera3d};
8+
use bevy_core_pipeline::{deferred::*, prepass::*};
199
use bevy_ecs::{
2010
prelude::*,
2111
system::{
@@ -30,32 +20,16 @@ use bevy_render::{
3020
mesh::MeshVertexBufferLayout,
3121
prelude::{Camera, Mesh},
3222
render_asset::RenderAssets,
33-
render_phase::{
34-
AddRenderCommand, DrawFunctions, PhaseItem, RenderCommand, RenderCommandResult,
35-
RenderPhase, SetItemPipeline, TrackedRenderPass,
36-
},
37-
render_resource::{
38-
BindGroup, BindGroupEntries, BindGroupLayout, BindGroupLayoutDescriptor,
39-
BindGroupLayoutEntry, BindingType, BufferBindingType, ColorTargetState, ColorWrites,
40-
CompareFunction, DepthBiasState, DepthStencilState, DynamicUniformBuffer, FragmentState,
41-
FrontFace, MultisampleState, PipelineCache, PolygonMode, PrimitiveState, PushConstantRange,
42-
RenderPipelineDescriptor, Shader, ShaderRef, ShaderStages, ShaderType,
43-
SpecializedMeshPipeline, SpecializedMeshPipelineError, SpecializedMeshPipelines,
44-
StencilFaceState, StencilState, VertexState,
45-
},
23+
render_phase::*,
24+
render_resource::*,
4625
renderer::{RenderDevice, RenderQueue},
4726
view::{ExtractedView, Msaa, ViewUniform, ViewUniformOffset, ViewUniforms, VisibleEntities},
4827
Extract, ExtractSchedule, Render, RenderApp, RenderSet,
4928
};
5029
use bevy_transform::prelude::GlobalTransform;
5130
use bevy_utils::tracing::error;
5231

53-
use crate::{
54-
prepare_materials, setup_morph_and_skinning_defs, AlphaMode, DrawMesh, Material,
55-
MaterialPipeline, MaterialPipelineKey, MeshLayouts, MeshPipeline, MeshPipelineKey,
56-
OpaqueRendererMethod, RenderMaterialInstances, RenderMaterials, RenderMeshInstances,
57-
SetMaterialBindGroup, SetMeshBindGroup,
58-
};
32+
use crate::*;
5933

6034
use std::{hash::Hash, marker::PhantomData};
6135

crates/bevy_pbr/src/render/light.rs

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
1-
use crate::{
2-
directional_light_order, point_light_order, AlphaMode, AmbientLight, Cascade,
3-
CascadeShadowConfig, Cascades, CascadesVisibleEntities, Clusters, CubemapVisibleEntities,
4-
DirectionalLight, DirectionalLightShadowMap, DrawPrepass, EnvironmentMapLight,
5-
GlobalVisiblePointLights, Material, MaterialPipelineKey, MeshPipeline, MeshPipelineKey,
6-
PointLight, PointLightShadowMap, PrepassPipeline, RenderMaterialInstances, RenderMaterials,
7-
RenderMeshInstances, SpotLight, VisiblePointLights,
8-
};
91
use bevy_core_pipeline::core_3d::{Transparent3d, CORE_3D_DEPTH_FORMAT};
102
use bevy_ecs::prelude::*;
113
use bevy_math::{Mat4, UVec3, UVec4, Vec2, Vec3, Vec3Swizzles, Vec4, Vec4Swizzles};
@@ -15,9 +7,7 @@ use bevy_render::{
157
mesh::Mesh,
168
render_asset::RenderAssets,
179
render_graph::{Node, NodeRunError, RenderGraphContext},
18-
render_phase::{
19-
CachedRenderPipelinePhaseItem, DrawFunctionId, DrawFunctions, PhaseItem, RenderPhase,
20-
},
10+
render_phase::*,
2111
render_resource::*,
2212
renderer::{RenderContext, RenderDevice, RenderQueue},
2313
texture::*,
@@ -32,6 +22,8 @@ use bevy_utils::{
3222
};
3323
use std::{hash::Hash, num::NonZeroU64, ops::Range};
3424

25+
use crate::*;
26+
3527
#[derive(Component)]
3628
pub struct ExtractedPointLight {
3729
color: Color,

crates/bevy_pbr/src/render/mesh.rs

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
use crate::{
2-
generate_view_layouts, prepare_mesh_view_bind_groups, MaterialBindGroupId,
3-
MeshPipelineViewLayout, MeshPipelineViewLayoutKey, MeshViewBindGroup, NotShadowCaster,
4-
NotShadowReceiver, PreviousGlobalTransform, Shadow, ViewFogUniformOffset,
5-
ViewLightsUniformOffset, CLUSTERED_FORWARD_STORAGE_BUFFER_COUNT, MAX_CASCADES_PER_LIGHT,
6-
MAX_DIRECTIONAL_LIGHTS,
7-
};
81
use bevy_app::{Plugin, PostUpdate};
92
use bevy_asset::{load_internal_asset, AssetId, Handle};
103
use bevy_core_pipeline::{
@@ -23,17 +16,12 @@ use bevy_render::{
2316
batch_and_prepare_render_phase, write_batched_instance_buffer, GetBatchData,
2417
NoAutomaticBatching,
2518
},
26-
mesh::{
27-
GpuBufferInfo, InnerMeshVertexBufferLayout, Mesh, MeshVertexBufferLayout,
28-
VertexAttributeDescriptor,
29-
},
19+
mesh::*,
3020
render_asset::RenderAssets,
3121
render_phase::{PhaseItem, RenderCommand, RenderCommandResult, TrackedRenderPass},
3222
render_resource::*,
3323
renderer::{RenderDevice, RenderQueue},
34-
texture::{
35-
BevyDefault, DefaultImageSampler, GpuImage, Image, ImageSampler, TextureFormatPixelInfo,
36-
},
24+
texture::*,
3725
view::{ViewTarget, ViewUniformOffset, ViewVisibility},
3826
Extract, ExtractSchedule, Render, RenderApp, RenderSet,
3927
};
@@ -58,6 +46,7 @@ use crate::render::{
5846
skin::{extract_skins, no_automatic_skin_batching, prepare_skins, SkinUniform},
5947
MeshLayouts,
6048
};
49+
use crate::*;
6150

6251
use super::skin::SkinIndices;
6352

crates/bevy_pbr/src/render/mesh_bindings.rs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
11
//! Bind group layout related definitions for the mesh pipeline.
22
33
use bevy_math::Mat4;
4-
use bevy_render::{
5-
mesh::morph::MAX_MORPH_WEIGHTS,
6-
render_resource::{
7-
BindGroup, BindGroupLayout, BindGroupLayoutDescriptor, BindingResource, Buffer, TextureView,
8-
},
9-
renderer::RenderDevice,
10-
};
4+
use bevy_render::{mesh::morph::MAX_MORPH_WEIGHTS, render_resource::*, renderer::RenderDevice};
115

126
use crate::render::skin::MAX_JOINTS;
137

@@ -67,7 +61,7 @@ mod layout_entry {
6761
}
6862
}
6963
}
70-
/// Individual [`BindGroupEntry`](bevy_render::render_resource::BindGroupEntry)
64+
/// Individual [`BindGroupEntry`]
7165
/// for bind groups.
7266
mod entry {
7367
use super::{JOINT_BUFFER_SIZE, MORPH_BUFFER_SIZE};

crates/bevy_pbr/src/ssao/mod.rs

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,7 @@ use bevy_render::{
2020
globals::{GlobalsBuffer, GlobalsUniform},
2121
prelude::Camera,
2222
render_graph::{NodeRunError, RenderGraphApp, RenderGraphContext, ViewNode, ViewNodeRunner},
23-
render_resource::{
24-
AddressMode, BindGroup, BindGroupEntries, BindGroupLayout, BindGroupLayoutDescriptor,
25-
BindGroupLayoutEntry, BindingType, BufferBindingType, CachedComputePipelineId,
26-
ComputePassDescriptor, ComputePipelineDescriptor, Extent3d, FilterMode, PipelineCache,
27-
Sampler, SamplerBindingType, SamplerDescriptor, Shader, ShaderDefVal, ShaderStages,
28-
ShaderType, SpecializedComputePipeline, SpecializedComputePipelines, StorageTextureAccess,
29-
TextureDescriptor, TextureDimension, TextureFormat, TextureSampleType, TextureUsages,
30-
TextureView, TextureViewDescriptor, TextureViewDimension,
31-
},
23+
render_resource::*,
3224
renderer::{RenderAdapter, RenderContext, RenderDevice, RenderQueue},
3325
texture::{CachedTexture, TextureCache},
3426
view::{Msaa, ViewUniform, ViewUniformOffset, ViewUniforms},

crates/bevy_pbr/src/wireframe.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@ use bevy_render::{
77
color::Color,
88
extract_resource::ExtractResource,
99
mesh::{Mesh, MeshVertexBufferLayout},
10-
prelude::Shader,
11-
render_resource::{
12-
AsBindGroup, PolygonMode, RenderPipelineDescriptor, ShaderRef, SpecializedMeshPipelineError,
13-
},
10+
prelude::*,
11+
render_resource::*,
1412
};
1513

1614
pub const WIREFRAME_SHADER_HANDLE: Handle<Shader> = Handle::weak_from_u128(192598014480025766);

0 commit comments

Comments
 (0)