11 static constexpr
const char* vertex = R
"(layout (location = 0) in vec2 a_pos;
13 uniform mat4 u_matrix;
18 #ifndef HAS_UNIFORM_u_outline_color
19 uniform lowp float u_outline_color_t;
20 layout (location = 1) in highp vec4 a_outline_color;
21 out highp vec4 outline_color;
23 uniform highp vec4 u_outline_color;
25 #ifndef HAS_UNIFORM_u_opacity
26 uniform lowp float u_opacity_t;
27 layout (location = 2) in lowp vec2 a_opacity;
28 out lowp float opacity;
30 uniform lowp float u_opacity;
34 #ifndef HAS_UNIFORM_u_outline_color
35 outline_color = unpack_mix_color(a_outline_color, u_outline_color_t);
37 highp vec4 outline_color = u_outline_color;
39 #ifndef HAS_UNIFORM_u_opacity
40 opacity = unpack_mix_vec2(a_opacity, u_opacity_t);
42 lowp float opacity = u_opacity;
45 gl_Position = u_matrix * vec4(a_pos, 0, 1);
46 v_pos = (gl_Position.xy / gl_Position.w + 1.0) / 2.0 * u_world;
49 static constexpr
const char* fragment = R
"(in vec2 v_pos;
51 #ifndef HAS_UNIFORM_u_outline_color
52 in highp vec4 outline_color;
54 uniform highp vec4 u_outline_color;
56 #ifndef HAS_UNIFORM_u_opacity
57 in lowp float opacity;
59 uniform lowp float u_opacity;
63 #ifdef HAS_UNIFORM_u_outline_color
64 highp vec4 outline_color = u_outline_color;
66 #ifdef HAS_UNIFORM_u_opacity
67 lowp float opacity = u_opacity;
70 float dist = length(v_pos - gl_FragCoord.xy);
71 float alpha = 1.0 - smoothstep(0.0, 1.0, dist);
72 fragColor = outline_color * (alpha * opacity);
74 #ifdef OVERDRAW_INSPECTOR
75 fragColor = vec4(1.0);
@ OpenGL
The OpenGL API backend.
BuiltIn
This enum is used with the ShaderSource template to select source code for the desired program and gr...
Select shader source based on a program type and a desired graphics API.