wgui to use srgb
This commit is contained in:
@@ -13,6 +13,7 @@ layout(location = 0) out vec4 out_color;
|
||||
|
||||
#define UNIFORM_PARAMS_SET 0
|
||||
#include "uniform.glsl"
|
||||
#include "srgb.glsl"
|
||||
|
||||
layout(set = 2, binding = 0) uniform sampler2D image;
|
||||
|
||||
@@ -52,4 +53,5 @@ void main() {
|
||||
// rounding cutout alpha
|
||||
out_color.a *= 1.0 - smoothstep(-pixel_size, 0.0, sdf);
|
||||
}
|
||||
out_color.rgb = to_srgb(out_color.rgb);
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ layout(location = 0) out vec4 out_color;
|
||||
|
||||
#define UNIFORM_PARAMS_SET 0
|
||||
#include "uniform.glsl"
|
||||
#include "srgb.glsl"
|
||||
|
||||
void main() {
|
||||
float rect_aspect = in_rect_size.x / in_rect_size.y;
|
||||
@@ -51,4 +52,5 @@ void main() {
|
||||
// rounding cutout alpha
|
||||
out_color.a *= 1.0 - smoothstep(-pixel_size, 0.0, sdf);
|
||||
}
|
||||
out_color.rgb = to_srgb(out_color.rgb);
|
||||
}
|
||||
|
||||
6
wgui/src/renderer_vk/shaders/srgb.glsl
Normal file
6
wgui/src/renderer_vk/shaders/srgb.glsl
Normal file
@@ -0,0 +1,6 @@
|
||||
vec3 to_srgb(in vec3 in_color) {
|
||||
bvec3 cutoff = lessThan(in_color, vec3(0.04045));
|
||||
vec3 higher = pow((in_color + vec3(0.055))/vec3(1.055), vec3(2.4));
|
||||
vec3 lower = in_color/vec3(12.92);
|
||||
return mix(higher, lower, cutoff);
|
||||
}
|
||||
@@ -12,6 +12,8 @@ layout(location = 0) out vec4 out_color;
|
||||
layout(set = 0, binding = 0) uniform sampler2D color_atlas;
|
||||
layout(set = 1, binding = 0) uniform sampler2D mask_atlas;
|
||||
|
||||
#include "srgb.glsl"
|
||||
|
||||
void main() {
|
||||
if (in_content_type == 0u) {
|
||||
out_color = texture(color_atlas, in_uv) * in_color;
|
||||
@@ -19,4 +21,5 @@ void main() {
|
||||
out_color.rgb = in_color.rgb;
|
||||
out_color.a = in_color.a * texture(mask_atlas, in_uv).r;
|
||||
}
|
||||
out_color.rgb = to_srgb(out_color.rgb);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user