pub fn queue_material_meshes<M>(
opaque_draw_functions: Res<'_, DrawFunctions<Opaque3d>>,
alpha_mask_draw_functions: Res<'_, DrawFunctions<AlphaMask3d>>,
transparent_draw_functions: Res<'_, DrawFunctions<Transparent3d>>,
material_pipeline: Res<'_, MaterialPipeline<M>>,
pipelines: ResMut<'_, SpecializedMeshPipelines<MaterialPipeline<M>>>,
pipeline_cache: ResMut<'_, PipelineCache>,
msaa: Res<'_, Msaa>,
render_meshes: Res<'_, HashMap<Handle<Mesh>, <Mesh as RenderAsset>::PreparedAsset, RandomState, Global>>,
render_materials: Res<'_, HashMap<Handle<M>, PreparedMaterial<M>, RandomState, Global>>,
material_meshes: Query<'_, '_, (&Handle<M>, &Handle<Mesh>, &MeshUniform), ()>,
views: Query<'_, '_, (&ExtractedView, &VisibleEntities, &mut RenderPhase<Opaque3d>, &mut RenderPhase<AlphaMask3d>, &mut RenderPhase<Transparent3d>), ()>
) where
M: Material,
<M as AsBindGroup>::Data: PartialEq<<M as AsBindGroup>::Data>,
<M as AsBindGroup>::Data: Eq,
<M as AsBindGroup>::Data: Hash,
<M as AsBindGroup>::Data: Clone,