summaryrefslogtreecommitdiff
path: root/gsk/vulkan/resources/clip.frag.glsl
diff options
context:
space:
mode:
Diffstat (limited to 'gsk/vulkan/resources/clip.frag.glsl')
-rw-r--r--gsk/vulkan/resources/clip.frag.glsl24
1 files changed, 20 insertions, 4 deletions
diff --git a/gsk/vulkan/resources/clip.frag.glsl b/gsk/vulkan/resources/clip.frag.glsl
index 4f4755c5bb..5ab526de86 100644
--- a/gsk/vulkan/resources/clip.frag.glsl
+++ b/gsk/vulkan/resources/clip.frag.glsl
@@ -5,25 +5,41 @@
#define _CLIP_
#ifdef CLIP_ROUNDED_RECT
-vec4 clip(vec2 pos, vec4 color)
+
+vec4
+clip_scaled (vec2 pos, vec4 color)
{
RoundedRect r = RoundedRect(vec4(push.clip_bounds.xy, push.clip_bounds.xy + push.clip_bounds.zw), push.clip_widths, push.clip_heights);
+ r = rounded_rect_scale (r, push.scale);
+
return color * rounded_rect_coverage (r, pos);
}
+
#elif defined(CLIP_RECT)
-vec4 clip(vec2 pos, vec4 color)
+
+vec4
+clip_scaled (vec2 pos, vec4 color)
{
- /* clipped in vertex shader already */
return color;
}
+
#elif defined(CLIP_NONE)
-vec4 clip(vec2 pos, vec4 color)
+
+vec4
+clip_scaled (vec2 pos, vec4 color)
{
return color;
}
+
#else
#error "No clipping define given. Need CLIP_NONE, CLIP_RECT or CLIP_ROUNDED_RECT"
#endif
+vec4
+clip (vec2 pos, vec4 color)
+{
+ return clip_scaled (pos * push.scale, color);
+}
+
#endif