Skip to content

Commit 3064a75

Browse files
committed
fixed docs, examples, CI
1 parent 6b36e52 commit 3064a75

File tree

22 files changed

+105
-102
lines changed

22 files changed

+105
-102
lines changed

crates/bevy_gpu/src/gpu_resource/bind_group.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ gpu_resource_wrapper!(ErasedBindGroup, wgpu::BindGroup);
99
pub struct BindGroupId(Uuid);
1010

1111
/// Bind groups are responsible for binding render resources (e.g. buffers, textures, samplers)
12-
/// to a [`TrackedRenderPass`](crate::render_phase::TrackedRenderPass).
12+
/// to a render pass.
1313
/// This makes them accessible in the pipeline (shaders) as uniforms.
1414
///
1515
/// May be converted from and dereferences to a wgpu [`BindGroup`](wgpu::BindGroup).
16-
/// Can be created via [`GPUDevice::create_bind_group`](crate::renderer::GpuDevice::create_bind_group).
16+
/// Can be created via [`GPUDevice::create_bind_group`](crate::GpuDevice::create_bind_group).
1717
#[derive(Clone, Debug)]
1818
pub struct BindGroup {
1919
id: BindGroupId,

crates/bevy_gpu/src/gpu_resource/buffer_vec.rs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@ use wgpu::BufferUsages;
1212
/// Index, vertex, and instance-rate vertex buffers have no alignment nor padding requirements and
1313
/// so this helper type is a good choice for them.
1414
///
15-
/// The contained data is stored in system RAM. Calling [`reserve`](crate::render_resource::BufferVec::reserve)
16-
/// allocates VRAM from the [`GPUDevice`](crate::renderer::GpuDevice).
17-
/// [`write_buffer`](crate::render_resource::BufferVec::write_buffer) queues copying of the data
15+
/// The contained data is stored in system RAM. Calling [`reserve`](BufferVec::reserve)
16+
/// allocates VRAM from the [`GpuDevice`].
17+
/// [`write_buffer`](BufferVec::write_buffer) queues copying of the data
1818
/// from system RAM to VRAM.
1919
///
2020
/// Other options for storing GPU-accessible data are:
21-
/// * [`DynamicStorageBuffer`](crate::render_resource::DynamicStorageBuffer)
22-
/// * [`UniformBuffer`](crate::render_resource::UniformBuffer)
23-
/// * [`DynamicUniformBuffer`](crate::render_resource::DynamicUniformBuffer)
24-
/// * [`BufferVec`](crate::render_resource::BufferVec)
25-
/// * [`Texture`](crate::render_resource::Texture)
21+
/// * [`DynamicStorageBuffer`](crate::gpu_resource::DynamicStorageBuffer)
22+
/// * [`UniformBuffer`](crate::gpu_resource::UniformBuffer)
23+
/// * [`DynamicUniformBuffer`](crate::gpu_resource::DynamicUniformBuffer)
24+
/// * [`BufferVec`](crate::gpu_resource::BufferVec)
25+
/// * [`Texture`](crate::gpu_resource::Texture)
2626
pub struct BufferVec<T: Pod> {
2727
values: Vec<T>,
2828
buffer: Option<Buffer>,
@@ -86,17 +86,17 @@ impl<T: Pod> BufferVec<T> {
8686
self.label.as_deref()
8787
}
8888

89-
/// Creates a [`Buffer`](crate::render_resource::Buffer) on the [`GPUDevice`](crate::renderer::GpuDevice) with size
90-
/// at least `std::mem::size_of::<T>() * capacity`, unless a such a buffer already exists.
89+
/// Creates a [`Buffer`] on the [`GpuDevice`] with size at least
90+
/// `std::mem::size_of::<T>() * capacity`, unless a such a buffer already exists.
9191
///
92-
/// If a [`Buffer`](crate::render_resource::Buffer) exists, but is too small, references to it will be discarded,
93-
/// and a new [`Buffer`](crate::render_resource::Buffer) will be created. Any previously created [`Buffer`](crate::render_resource::Buffer)s
94-
/// that are no longer referenced will be deleted by the [`GPUDevice`](crate::renderer::GpuDevice)
92+
/// If a [`Buffer`] exists, but is too small, references to it will be discarded,
93+
/// and a new [`Buffer`] will be created. Any previously created [`Buffer`]s
94+
/// that are no longer referenced will be deleted by the [`GpuDevice`]
9595
/// once it is done using them (typically 1-2 frames).
9696
///
97-
/// In addition to any [`BufferUsages`](crate::render_resource::BufferUsages) provided when
98-
/// the `BufferVec` was created, the buffer on the [`GPUDevice`](crate::renderer::GpuDevice)
99-
/// is marked as [`BufferUsages::COPY_DST`](crate::render_resource::BufferUsages).
97+
/// In addition to any [`BufferUsages`] provided when
98+
/// the `BufferVec` was created, the buffer on the [`GpuDevice`]
99+
/// is marked as [`BufferUsages::COPY_DST`].
100100
pub fn reserve(&mut self, capacity: usize, gpu_device: &GpuDevice) {
101101
if capacity > self.capacity || self.label_changed {
102102
self.capacity = capacity;
@@ -111,10 +111,10 @@ impl<T: Pod> BufferVec<T> {
111111
}
112112
}
113113

114-
/// Queues writing of data from system RAM to VRAM using the [`GPUDevice`](crate::renderer::GpuDevice)
115-
/// and the provided [`GPUQueue`](crate::renderer::GpuQueue).
114+
/// Queues writing of data from system RAM to VRAM using the [`GpuDevice`]
115+
/// and the provided [`GpuQueue`].
116116
///
117-
/// Before queuing the write, a [`reserve`](crate::render_resource::BufferVec::reserve) operation
117+
/// Before queuing the write, a [`BufferVec::reserve`] operation
118118
/// is executed.
119119
pub fn write_buffer(&mut self, gpu_device: &GpuDevice, gpu_queue: &GpuQueue) {
120120
if self.values.is_empty() {

crates/bevy_gpu/src/gpu_resource/pipeline.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ gpu_resource_wrapper!(ErasedRenderPipeline, wgpu::RenderPipeline);
1616
/// A [`RenderPipeline`] represents a graphics pipeline and its stages (shaders), bindings and vertex buffers.
1717
///
1818
/// May be converted from and dereferences to a wgpu [`RenderPipeline`](wgpu::RenderPipeline).
19-
/// Can be created via [`GPUDevice::create_render_pipeline`](crate::renderer::GpuDevice::create_render_pipeline).
19+
/// Can be created via [`GpuDevice::create_render_pipeline`](crate::GpuDevice::create_render_pipeline).
2020
#[derive(Clone, Debug)]
2121
pub struct RenderPipeline {
2222
id: RenderPipelineId,
@@ -57,7 +57,7 @@ gpu_resource_wrapper!(ErasedComputePipeline, wgpu::ComputePipeline);
5757
/// A [`ComputePipeline`] represents a compute pipeline and its single shader stage.
5858
///
5959
/// May be converted from and dereferences to a wgpu [`ComputePipeline`](wgpu::ComputePipeline).
60-
/// Can be created via [`GPUDevice::create_compute_pipeline`](crate::renderer::GpuDevice::create_compute_pipeline).
60+
/// Can be created via [`GpuDevice::create_compute_pipeline`](crate::GpuDevice::create_compute_pipeline).
6161
#[derive(Clone, Debug)]
6262
pub struct ComputePipeline {
6363
id: ComputePipelineId,

crates/bevy_gpu/src/gpu_resource/pipeline_cache.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -324,13 +324,11 @@ impl LayoutCache {
324324
/// The cache stores existing render and compute pipelines allocated on the GPU, as well as
325325
/// pending creation. Pipelines inserted into the cache are identified by a unique ID, which
326326
/// can be used to retrieve the actual GPU object once it's ready. The creation of the GPU
327-
/// pipeline object is deferred to the [`RenderStage::Render`] stage, just before the render
327+
/// pipeline object is deferred to the render stage, just before the render
328328
/// graph starts being processed, as this requires access to the GPU.
329329
///
330330
/// Note that the cache do not perform automatic deduplication of identical pipelines. It is
331331
/// up to the user not to insert the same pipeline twice to avoid wasting GPU resources.
332-
///
333-
/// [`RenderStage::Render`]: crate::RenderStage::Render
334332
#[derive(Resource)]
335333
pub struct PipelineCache {
336334
layout_cache: LayoutCache,
@@ -622,10 +620,8 @@ impl PipelineCache {
622620

623621
/// Process the pipeline queue and create all pending pipelines if possible.
624622
///
625-
/// This is generally called automatically during the [`RenderStage::Render`] stage, but can
623+
/// This is generally called automatically during the render stage, but can
626624
/// be called manually to force creation at a different time.
627-
///
628-
/// [`RenderStage::Render`]: crate::RenderStage::Render
629625
pub fn process_queue(&mut self) {
630626
let waiting_pipelines = mem::take(&mut self.waiting_pipelines);
631627
let mut pipelines = mem::take(&mut self.pipelines);

crates/bevy_gpu/src/gpu_resource/storage_buffer.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,16 @@ use wgpu::{util::BufferInitDescriptor, BindingResource, BufferBinding, BufferUsa
1414
///
1515
/// Storage buffers can store runtime-sized arrays, but only if they are the last field in a structure.
1616
///
17-
/// The contained data is stored in system RAM. [`write_buffer`](crate::render_resource::StorageBuffer::write_buffer) queues
17+
/// The contained data is stored in system RAM. [`write_buffer`](crate::gpu_resource::StorageBuffer::write_buffer) queues
1818
/// copying of the data from system RAM to VRAM. Storage buffers must conform to [std430 alignment/padding requirements], which
1919
/// is automatically enforced by this structure.
2020
///
2121
/// Other options for storing GPU-accessible data are:
22-
/// * [`DynamicStorageBuffer`](crate::render_resource::DynamicStorageBuffer)
23-
/// * [`UniformBuffer`](crate::render_resource::UniformBuffer)
24-
/// * [`DynamicUniformBuffer`](crate::render_resource::DynamicUniformBuffer)
25-
/// * [`BufferVec`](crate::render_resource::BufferVec)
26-
/// * [`Texture`](crate::render_resource::Texture)
22+
/// * [`DynamicStorageBuffer`](crate::gpu_resource::DynamicStorageBuffer)
23+
/// * [`UniformBuffer`](crate::gpu_resource::UniformBuffer)
24+
/// * [`DynamicUniformBuffer`](crate::gpu_resource::DynamicUniformBuffer)
25+
/// * [`BufferVec`](crate::gpu_resource::BufferVec)
26+
/// * [`Texture`](crate::gpu_resource::Texture)
2727
///
2828
/// [std430 alignment/padding requirements]: https://www.w3.org/TR/WGSL/#address-spaces-storage
2929
pub struct StorageBuffer<T: ShaderType> {
@@ -100,8 +100,8 @@ impl<T: ShaderType + WriteInto> StorageBuffer<T> {
100100
self.label.as_deref()
101101
}
102102

103-
/// Queues writing of data from system RAM to VRAM using the [`GPUDevice`](crate::renderer::GpuDevice)
104-
/// and the provided [`GPUQueue`](crate::renderer::GpuQueue).
103+
/// Queues writing of data from system RAM to VRAM using the [`GpuDevice`]
104+
/// and the provided [`GpuQueue`].
105105
///
106106
/// If there is no GPU-side buffer allocated to hold the data currently stored, or if a GPU-side buffer previously
107107
/// allocated does not have enough capacity, a new GPU-side buffer is created.
@@ -129,20 +129,20 @@ impl<T: ShaderType + WriteInto> StorageBuffer<T> {
129129
/// Dynamic storage buffers can be made available to shaders in some combination of read/write mode, and can store large amounts
130130
/// of data. Note however that WebGL2 does not support storage buffers, so consider alternative options in this case. Dynamic
131131
/// storage buffers support multiple separate bindings at dynamic byte offsets and so have a
132-
/// [`push`](crate::render_resource::DynamicStorageBuffer::push) method.
132+
/// [`push`](crate::gpu_resource::DynamicStorageBuffer::push) method.
133133
///
134-
/// The contained data is stored in system RAM. [`write_buffer`](crate::render_resource::DynamicStorageBuffer::write_buffer)
134+
/// The contained data is stored in system RAM. [`write_buffer`](crate::gpu_resource::DynamicStorageBuffer::write_buffer)
135135
/// queues copying of the data from system RAM to VRAM. The data within a storage buffer binding must conform to
136136
/// [std430 alignment/padding requirements]. `DynamicStorageBuffer` takes care of serialising the inner type to conform to
137-
/// these requirements. Each item [`push`](crate::render_resource::DynamicStorageBuffer::push)ed into this structure
137+
/// these requirements. Each item [`push`](crate::gpu_resource::DynamicStorageBuffer::push)ed into this structure
138138
/// will additionally be aligned to meet dynamic offset alignment requirements.
139139
///
140140
/// Other options for storing GPU-accessible data are:
141-
/// * [`StorageBuffer`](crate::render_resource::StorageBuffer)
142-
/// * [`UniformBuffer`](crate::render_resource::UniformBuffer)
143-
/// * [`DynamicUniformBuffer`](crate::render_resource::DynamicUniformBuffer)
144-
/// * [`BufferVec`](crate::render_resource::BufferVec)
145-
/// * [`Texture`](crate::render_resource::Texture)
141+
/// * [`StorageBuffer`](crate::gpu_resource::StorageBuffer)
142+
/// * [`UniformBuffer`](crate::gpu_resource::UniformBuffer)
143+
/// * [`DynamicUniformBuffer`](crate::gpu_resource::DynamicUniformBuffer)
144+
/// * [`BufferVec`](crate::gpu_resource::BufferVec)
145+
/// * [`Texture`](crate::gpu_resource::Texture)
146146
///
147147
/// [std430 alignment/padding requirements]: https://www.w3.org/TR/WGSL/#address-spaces-storage
148148
pub struct DynamicStorageBuffer<T: ShaderType> {

crates/bevy_gpu/src/gpu_resource/texture.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ gpu_resource_wrapper!(ErasedTexture, wgpu::Texture);
1212
/// A GPU-accessible texture.
1313
///
1414
/// May be converted from and dereferences to a wgpu [`Texture`](wgpu::Texture).
15-
/// Can be created via [`GPUDevice::create_texture`](crate::renderer::GpuDevice::create_texture).
15+
/// Can be created via [`GpuDevice::create_texture`](crate::GpuDevice::create_texture).
1616
#[derive(Clone, Debug)]
1717
pub struct Texture {
1818
id: TextureId,
@@ -144,7 +144,7 @@ gpu_resource_wrapper!(ErasedSampler, wgpu::Sampler);
144144
/// They define image filters (including anisotropy) and address (wrapping) modes, among other things.
145145
///
146146
/// May be converted from and dereferences to a wgpu [`Sampler`](wgpu::Sampler).
147-
/// Can be created via [`GPUDevice::create_sampler`](crate::renderer::GpuDevice::create_sampler).
147+
/// Can be created via [`GpuDevice::create_sampler`](crate::GpuDevice::create_sampler).
148148
#[derive(Clone, Debug)]
149149
pub struct Sampler {
150150
id: SamplerId,

crates/bevy_gpu/src/gpu_resource/uniform_buffer.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,17 @@ use wgpu::{util::BufferInitDescriptor, BindingResource, BufferBinding, BufferUsa
1111
/// parameters that are constant during shader execution, and are best used for data that is relatively small in size as they are
1212
/// only guaranteed to support up to 16kB per binding.
1313
///
14-
/// The contained data is stored in system RAM. [`write_buffer`](crate::render_resource::UniformBuffer::write_buffer) queues
14+
/// The contained data is stored in system RAM. [`write_buffer`](crate::gpu_resource::UniformBuffer::write_buffer) queues
1515
/// copying of the data from system RAM to VRAM. Data in uniform buffers must follow [std140 alignment/padding requirements],
1616
/// which is automatically enforced by this structure. Per the WGPU spec, uniform buffers cannot store runtime-sized array
1717
/// (vectors), or structures with fields that are vectors.
1818
///
1919
/// Other options for storing GPU-accessible data are:
20-
/// * [`DynamicUniformBuffer`](crate::render_resource::DynamicUniformBuffer)
21-
/// * [`StorageBuffer`](crate::render_resource::StorageBuffer)
22-
/// * [`DynamicStorageBuffer`](crate::render_resource::DynamicStorageBuffer)
23-
/// * [`BufferVec`](crate::render_resource::BufferVec)
24-
/// * [`Texture`](crate::render_resource::Texture)
20+
/// * [`DynamicUniformBuffer`](crate::gpu_resource::DynamicUniformBuffer)
21+
/// * [`StorageBuffer`](crate::gpu_resource::StorageBuffer)
22+
/// * [`DynamicStorageBuffer`](crate::gpu_resource::DynamicStorageBuffer)
23+
/// * [`BufferVec`](crate::gpu_resource::BufferVec)
24+
/// * [`Texture`](crate::gpu_resource::Texture)
2525
///
2626
/// [std140 alignment/padding requirements]: https://www.w3.org/TR/WGSL/#address-spaces-uniform
2727
pub struct UniformBuffer<T: ShaderType> {
@@ -96,8 +96,8 @@ impl<T: ShaderType + WriteInto> UniformBuffer<T> {
9696
self.label.as_deref()
9797
}
9898

99-
/// Queues writing of data from system RAM to VRAM using the [`GPUDevice`](crate::renderer::GpuDevice)
100-
/// and the provided [`GPUQueue`](crate::renderer::GpuQueue), if a GPU-side backing buffer already exists.
99+
/// Queues writing of data from system RAM to VRAM using the [`GpuDevice`]
100+
/// and the provided [`GpuQueue`], if a GPU-side backing buffer already exists.
101101
///
102102
/// If a GPU-side buffer does not already exist for this data, such a buffer is initialized with currently
103103
/// available data.
@@ -123,17 +123,17 @@ impl<T: ShaderType + WriteInto> UniformBuffer<T> {
123123
/// available to shaders runtime-sized arrays of parameters that are otherwise constant during shader execution, and are best
124124
/// suited to data that is relatively small in size as they are only guaranteed to support up to 16kB per binding.
125125
///
126-
/// The contained data is stored in system RAM. [`write_buffer`](crate::render_resource::DynamicUniformBuffer::write_buffer) queues
126+
/// The contained data is stored in system RAM. [`write_buffer`](crate::gpu_resource::DynamicUniformBuffer::write_buffer) queues
127127
/// copying of the data from system RAM to VRAM. Data in uniform buffers must follow [std140 alignment/padding requirements],
128128
/// which is automatically enforced by this structure. Per the WGPU spec, uniform buffers cannot store runtime-sized array
129129
/// (vectors), or structures with fields that are vectors.
130130
///
131131
/// Other options for storing GPU-accessible data are:
132-
/// * [`StorageBuffer`](crate::render_resource::StorageBuffer)
133-
/// * [`DynamicStorageBuffer`](crate::render_resource::DynamicStorageBuffer)
134-
/// * [`UniformBuffer`](crate::render_resource::UniformBuffer)
135-
/// * [`DynamicUniformBuffer`](crate::render_resource::DynamicUniformBuffer)
136-
/// * [`Texture`](crate::render_resource::Texture)
132+
/// * [`StorageBuffer`](crate::gpu_resource::StorageBuffer)
133+
/// * [`DynamicStorageBuffer`](crate::gpu_resource::DynamicStorageBuffer)
134+
/// * [`UniformBuffer`](crate::gpu_resource::UniformBuffer)
135+
/// * [`DynamicUniformBuffer`](crate::gpu_resource::DynamicUniformBuffer)
136+
/// * [`Texture`](crate::gpu_resource::Texture)
137137
///
138138
/// [std140 alignment/padding requirements]: https://www.w3.org/TR/WGSL/#address-spaces-uniform
139139
pub struct DynamicUniformBuffer<T: ShaderType> {
@@ -205,8 +205,8 @@ impl<T: ShaderType + WriteInto> DynamicUniformBuffer<T> {
205205
self.label.as_deref()
206206
}
207207

208-
/// Queues writing of data from system RAM to VRAM using the [`GPUDevice`](crate::renderer::GpuDevice)
209-
/// and the provided [`GPUQueue`](crate::renderer::GpuQueue).
208+
/// Queues writing of data from system RAM to VRAM using the [`GpuDevice`]
209+
/// and the provided [`GpuQueue`].
210210
///
211211
/// If there is no GPU-side buffer allocated to hold the data currently stored, or if a GPU-side buffer previously
212212
/// allocated does not have enough capacity, a new GPU-side buffer is created.

crates/bevy_gpu/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ const GPU_NOT_FOUND_ERROR_MESSAGE: &str = if cfg!(target_os = "linux") {
8181
};
8282

8383
/// The GPU instance is used to initialize the [`GpuQueue`] and [`GpuDevice`],
84-
/// as well as to create [`WindowSurfaces`](crate::view::window::WindowSurfaces).
84+
/// as well as to create surfaces.
8585
#[derive(Resource, Clone, Debug, Deref, DerefMut)]
8686
pub struct GpuInstance(pub Arc<Instance>);
8787

crates/bevy_gpu/src/settings.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ pub enum WgpuSettingsPriority {
1313
WebGL2,
1414
}
1515

16-
/// Provides configuration for renderer initialization. Use [`GPUDevice::features`](crate::renderer::GpuDevice::features),
17-
/// [`GPUDevice::limits`](crate::renderer::GpuDevice::limits), and the [`WgpuAdapterInfo`](crate::render_resource::WgpuAdapterInfo)
16+
/// Provides configuration for renderer initialization. Use [`GpuDevice::features`](crate::GpuDevice::features),
17+
/// [`GpuDevice::limits`](crate::GpuDevice::limits), and the [`WgpuAdapterInfo`](crate::gpu_resource::WgpuAdapterInfo)
1818
/// resource to get runtime information about the actual adapter, backend, features, and limits.
1919
/// NOTE: [`Backends::DX12`](Backends::DX12), [`Backends::METAL`](Backends::METAL), and
2020
/// [`Backends::VULKAN`](Backends::VULKAN) are enabled by default for non-web and the best choice

crates/bevy_internal/src/lib.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,10 @@ pub mod gltf {
130130
#[cfg(feature = "bevy_gpu")]
131131
pub mod gpu {
132132
//! The wgpu backend of Bevy.
133+
//! Use [`GpuDevice::features`](crate::gpu::GpuDevice::features),
134+
//! [`GpuDevice::limits`](crate::gpu::GpuDevice::limits), and the
135+
//! [`WgpuAdapterInfo`](crate::gpu::gpu_resource::WgpuAdapterInfo) resource to
136+
//! get runtime information about the actual adapter, backend, features, and limits.
133137
pub use bevy_gpu::*;
134138
}
135139

@@ -141,11 +145,7 @@ pub mod pbr {
141145

142146
#[cfg(feature = "bevy_render")]
143147
pub mod render {
144-
//! Cameras, meshes, textures, shaders, and pipelines.
145-
//! Use [`GPUDevice::features`](crate::render::renderer::GpuDevice::features),
146-
//! [`GPUDevice::limits`](crate::render::renderer::GpuDevice::limits), and the
147-
//! [`WgpuAdapterInfo`](crate::render::render_resource::WgpuAdapterInfo) resource to
148-
//! get runtime information about the actual adapter, backend, features, and limits.
148+
//! Cameras, meshes, textures.
149149
pub use bevy_render::*;
150150
}
151151

crates/bevy_pbr/src/material.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@ use std::marker::PhantomData;
5757
/// # use bevy_pbr::{Material, MaterialMeshBundle};
5858
/// # use bevy_ecs::prelude::*;
5959
/// # use bevy_reflect::TypeUuid;
60-
/// # use bevy_render::{render_resource::{AsBindGroup, ShaderRef}, texture::Image, color::Color};
60+
/// # use bevy_render::{texture::Image, color::Color, as_bind_group::AsBindGroup};
61+
/// # use bevy_gpu::gpu_resource::*;
6162
/// # use bevy_asset::{Handle, AssetServer, Assets};
6263
///
6364
/// #[derive(AsBindGroup, TypeUuid, Debug, Clone)]

0 commit comments

Comments
 (0)