Internally convert text colors to linear
This commit is contained in:
		
					parent
					
						
							
								ca5f82e5e9
							
						
					
				
			
			
				commit
				
					
						ce394f9d53
					
				
			
		
					 1 changed files with 14 additions and 5 deletions
				
			
		| 
						 | 
					@ -32,6 +32,15 @@ var mask_atlas_texture: texture_2d<f32>;
 | 
				
			||||||
@group(0) @binding(3)
 | 
					@group(0) @binding(3)
 | 
				
			||||||
var atlas_sampler: sampler;
 | 
					var atlas_sampler: sampler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn srgb_to_linear(srgb: u32) -> f32 {
 | 
				
			||||||
 | 
					    let c = f32(srgb) / 255.0;
 | 
				
			||||||
 | 
					    if c <= 0.04045 {
 | 
				
			||||||
 | 
					        return c / 12.92;
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        return pow((c + 0.055) / 1.055, 2.4);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@vertex
 | 
					@vertex
 | 
				
			||||||
fn vs_main(in_vert: VertexInput) -> VertexOutput {
 | 
					fn vs_main(in_vert: VertexInput) -> VertexOutput {
 | 
				
			||||||
    var pos = in_vert.pos;
 | 
					    var pos = in_vert.pos;
 | 
				
			||||||
| 
						 | 
					@ -70,11 +79,11 @@ fn vs_main(in_vert: VertexInput) -> VertexOutput {
 | 
				
			||||||
    vert_output.position.y *= -1.0;
 | 
					    vert_output.position.y *= -1.0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    vert_output.color = vec4<f32>(
 | 
					    vert_output.color = vec4<f32>(
 | 
				
			||||||
        f32((color & 0x00ff0000u) >> 16u),
 | 
					        srgb_to_linear((color & 0x00ff0000u) >> 16u),
 | 
				
			||||||
        f32((color & 0x0000ff00u) >> 8u),
 | 
					        srgb_to_linear((color & 0x0000ff00u) >> 8u),
 | 
				
			||||||
        f32(color & 0x000000ffu),
 | 
					        srgb_to_linear(color & 0x000000ffu),
 | 
				
			||||||
        f32((color & 0xff000000u) >> 24u),
 | 
					        f32((color & 0xff000000u) >> 24u) / 255.0,
 | 
				
			||||||
    ) / 255.0;
 | 
					    );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    var dim: vec2<u32> = vec2(0u);
 | 
					    var dim: vec2<u32> = vec2(0u);
 | 
				
			||||||
    switch in_vert.content_type {
 | 
					    switch in_vert.content_type {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue