wgui to use srgb

This commit is contained in:
galister
2025-12-27 02:49:11 +09:00
parent 1364a5cb2e
commit a44aa2e426
10 changed files with 40 additions and 31 deletions

View File

@@ -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);
}

View File

@@ -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);
}

View 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);
}

View File

@@ -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);
}