forked from emilk/egui
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix alpha blending in WebGL2 backend (emilk#650)
Add a render-to-texture step with an sRGBA8 texture
- Loading branch information
1 parent
1f4aef6
commit 3cc9eca
Showing
11 changed files
with
230 additions
and
54 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
precision mediump float; | ||
uniform sampler2D u_sampler; | ||
varying vec4 v_rgba; | ||
varying vec2 v_tc; | ||
|
||
void main() { | ||
// The texture is set up with `SRGB8_ALPHA8`, so no need to decode here! | ||
vec4 texture_rgba = texture2D(u_sampler, v_tc); | ||
|
||
// Multiply vertex color with texture color (in linear space). | ||
// Linear color is written and blended in Framebuffer and converted to sRGB later | ||
gl_FragColor = v_rgba * texture_rgba; | ||
} |
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
precision mediump float; | ||
uniform sampler2D u_sampler; | ||
varying vec2 v_tc; | ||
|
||
// 0-255 sRGB from 0-1 linear | ||
vec3 srgb_from_linear(vec3 rgb) { | ||
bvec3 cutoff = lessThan(rgb, vec3(0.0031308)); | ||
vec3 lower = rgb * vec3(3294.6); | ||
vec3 higher = vec3(269.025) * pow(rgb, vec3(1.0 / 2.4)) - vec3(14.025); | ||
return mix(higher, lower, vec3(cutoff)); | ||
} | ||
|
||
// 0-255 sRGBA from 0-1 linear | ||
vec4 srgba_from_linear(vec4 rgba) { | ||
return vec4(srgb_from_linear(rgba.rgb), 255.0 * rgba.a); | ||
} | ||
|
||
void main() { | ||
gl_FragColor = texture2D(u_sampler, v_tc); | ||
|
||
gl_FragColor = srgba_from_linear(gl_FragColor) / 255.; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
precision mediump float; | ||
attribute vec2 a_pos; | ||
varying vec2 v_tc; | ||
|
||
void main() { | ||
gl_Position = vec4(a_pos * 2. - 1., 0.0, 1.0); | ||
v_tc = a_pos; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters