2 mesh2d_vertex_output::VertexOutput, 3 mesh2d_view_bindings::view, 6#ifdef TONEMAP_IN_SHADER 7#import bevy_core_pipeline::tonemapping 10#import bevy_render::color_operations::linear_to_srgb 13#import bevy_render::color_operations::linear_rgb_to_oklab 18 uv_transform: mat3x3<f32>, 24const COLOR_MATERIAL_FLAGS_TEXTURE_BIT: u32 = 1u; 25const COLOR_MATERIAL_FLAGS_ALPHA_MODE_RESERVED_BITS: u32 = 3221225472u; 26const COLOR_MATERIAL_FLAGS_ALPHA_MODE_OPAQUE: u32 = 0u; 27const COLOR_MATERIAL_FLAGS_ALPHA_MODE_MASK: u32 = 1073741824u; 28const COLOR_MATERIAL_FLAGS_ALPHA_MODE_BLEND: u32 = 2147483648u; 30@group(#{MATERIAL_BIND_GROUP}) @binding(0) var<uniform> material: ColorMaterial; 31@group(#{MATERIAL_BIND_GROUP}) @binding(1) var texture: texture_2d<f32>; 32@group(#{MATERIAL_BIND_GROUP}) @binding(2) var texture_sampler: sampler; 37) -> @location(0) vec4<f32> { 38 var output_color: vec4<f32> = material.color; 41 output_color = output_color * mesh.color; 44 let uv = (material.uv_transform * vec3(mesh.uv, 1.0)).xy; 46 if ((material.flags & COLOR_MATERIAL_FLAGS_TEXTURE_BIT) != 0u) { 47 output_color = output_color * textureSample(texture, texture_sampler, uv); 50 output_color = alpha_discard(material, output_color); 52#ifdef TONEMAP_IN_SHADER 53 output_color = tonemapping::tone_mapping(output_color, view.color_grading); 56 output_color = vec4(linear_to_srgb(output_color.rgb), output_color.a); 59 output_color = vec4(linear_rgb_to_oklab(output_color.rgb), output_color.a); 64fn alpha_discard(material: ColorMaterial, output_color: vec4<f32>) -> vec4<f32> { 65 var color = output_color; 66 let alpha_mode = material.flags & COLOR_MATERIAL_FLAGS_ALPHA_MODE_RESERVED_BITS; 67 if alpha_mode == COLOR_MATERIAL_FLAGS_ALPHA_MODE_OPAQUE { 72 else if alpha_mode == COLOR_MATERIAL_FLAGS_ALPHA_MODE_MASK { 73 if color.a >= material.alpha_cutoff {