diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2021-12-12 05:45:02 +0100 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2021-12-15 20:17:51 +0100 |
| commit | 358f15f02727ab5a1e159b4e7d4e06d8014cbbb5 (patch) | |
| tree | 6ee708388db48170d72aa133949ad38f8078990e /shaders | |
| parent | 6065a8cc34663a2071437249fcce96462684e48f (diff) | |
test radial gradient
Diffstat (limited to 'shaders')
| -rw-r--r-- | shaders/vkvg_main.frag | 7 | ||||
| -rw-r--r-- | shaders/vkvg_main.vert | 5 |
2 files changed, 10 insertions, 2 deletions
diff --git a/shaders/vkvg_main.frag b/shaders/vkvg_main.frag index 4a4586f..5a56ed8 100644 --- a/shaders/vkvg_main.frag +++ b/shaders/vkvg_main.frag @@ -81,6 +81,13 @@ void main() for ( int i=1; i<uboGrad.count-1; ++i ) c = mix(c, uboGrad.colors[i+1], smoothstep( gradientStartPosRotatedX + uboGrad.stops[i].r*d, gradientStartPosRotatedX + uboGrad.stops[i+1].r*d, xLocRotated ) ); break; + case RADIAL: + vec2 pos_ndc = (gl_FragCoord.xy-uboGrad.cp[0].xy) / vec2(uboGrad.cp[2].y); + float dist = length(pos_ndc + (uboGrad.cp[2].x / inSrc.x)); + c = mix (uboGrad.colors[0], uboGrad.colors[1], smoothstep(uboGrad.stops[0].r, uboGrad.stops[1].r, dist)); + for (int i=2; i < uboGrad.count; i++ ) + c = mix(c, uboGrad.colors[i], smoothstep(uboGrad.stops[i-1].r, uboGrad.stops[i].r, dist)); + break; } if (inFontUV.z >= 0.0) diff --git a/shaders/vkvg_main.vert b/shaders/vkvg_main.vert index 50ac730..4880bc5 100644 --- a/shaders/vkvg_main.vert +++ b/shaders/vkvg_main.vert @@ -33,10 +33,10 @@ layout (location = 1) out vec4 outSrc; layout (location = 2) out flat int outPatType; layout (location = 3) out mat3x2 outMat; -out gl_PerVertex +/*out gl_PerVertex { vec4 gl_Position; -}; +};*/ layout(push_constant) uniform PushConsts { vec4 source; @@ -74,4 +74,5 @@ void main() ); gl_Position = vec4(p * vec2(2) / pc.size - vec2(1), 0.0, 1.0); + gl_PointSize = 3; } |