gtk/gsk/resources/vulkan/clip.frag.glsl
Benjamin Otte cf65443fb3 vulkan: Add a clip.frag.glsl include
This include is supposed to handle clipping for the different clipping
methods.

So far, we only use it in the rounded rect cases.
2017-01-17 06:17:55 +01:00

30 lines
634 B
GLSL

#include "constants.glsl"
#include "rounded-rect.glsl"
#ifndef _CLIP_
#define _CLIP_
#ifdef CLIP_ROUNDED_RECT
vec4 clip(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);
return color * rounded_rect_coverage (r, pos);
}
#elif defined(CLIP_RECT)
vec4 clip(vec2 pos, vec4 color)
{
/* clipped in vertex shader already */
return color;
}
#elif defined(CLIP_NONE)
vec4 clip(vec2 pos, vec4 color)
{
return color;
}
#else
#error "No clipping define given. Need CLIP_NONE, CLIP_RECT or CLIP_ROUNDED_RECT"
#endif
#endif