2 mesh2d_vertex_output::VertexOutput, 3 mesh2d_view_bindings::view, 6#ifdef TONEMAP_IN_SHADER 7#import bevy_core_pipeline::tonemapping 12 uv_transform: mat3x3<f32>, 18const COLOR_MATERIAL_FLAGS_TEXTURE_BIT: u32 = 1u; 19const COLOR_MATERIAL_FLAGS_ALPHA_MODE_RESERVED_BITS: u32 = 3221225472u; 20const COLOR_MATERIAL_FLAGS_ALPHA_MODE_OPAQUE: u32 = 0u; 21const COLOR_MATERIAL_FLAGS_ALPHA_MODE_MASK: u32 = 1073741824u; 22const COLOR_MATERIAL_FLAGS_ALPHA_MODE_BLEND: u32 = 2147483648u; 24@group(#{MATERIAL_BIND_GROUP}) @binding(0) var<uniform> material: ColorMaterial; 25@group(#{MATERIAL_BIND_GROUP}) @binding(1) var texture: texture_2d<f32>; 26@group(#{MATERIAL_BIND_GROUP}) @binding(2) var texture_sampler: sampler; 31) -> @location(0) vec4<f32> { 32 var output_color: vec4<f32> = material.color; 35 output_color = output_color * mesh.color; 38 let uv = (material.uv_transform * vec3(mesh.uv, 1.0)).xy; 40 if ((material.flags & COLOR_MATERIAL_FLAGS_TEXTURE_BIT) != 0u) { 41 output_color = output_color * textureSample(texture, texture_sampler, uv); 44 output_color = alpha_discard(material, output_color); 46#ifdef TONEMAP_IN_SHADER 47 output_color = tonemapping::tone_mapping(output_color, view.color_grading); 52fn alpha_discard(material: ColorMaterial, output_color: vec4<f32>) -> vec4<f32> { 53 var color = output_color; 54 let alpha_mode = material.flags & COLOR_MATERIAL_FLAGS_ALPHA_MODE_RESERVED_BITS; 55 if alpha_mode == COLOR_MATERIAL_FLAGS_ALPHA_MODE_OPAQUE { 60 else if alpha_mode == COLOR_MATERIAL_FLAGS_ALPHA_MODE_MASK { 61 if color.a >= material.alpha_cutoff {