mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-02 17:00:19 +00:00
b0e8d8483d
This commit takes several steps towards rendering text like we want to. The creation of the cairo surface and texture is moved to the backend (in GskVulkanRenderer). We add a mask shader that is used in the next text pipeline to use the texture as a mask, like cairo_mask_surface does. There is a separate color text pipeline that uses the already existing blend shaders to use the texture as a source, like cairo_paint does. The text node api is simplified to have just a single offset, which determines the left end of the text baseline, like all our other text drawing APIs.
17 lines
352 B
GLSL
17 lines
352 B
GLSL
#version 420 core
|
|
|
|
#include "clip.frag.glsl"
|
|
|
|
layout(location = 0) in vec2 inPos;
|
|
layout(location = 1) in vec2 inTexCoord;
|
|
layout(location = 2) in vec4 inColor;
|
|
|
|
layout(set = 0, binding = 0) uniform sampler2D inTexture;
|
|
|
|
layout(location = 0) out vec4 color;
|
|
|
|
void main()
|
|
{
|
|
color = clip (inPos, vec4(inColor.rgb, texture(inTexture, inTexCoord).a));
|
|
}
|