summaryrefslogtreecommitdiff
path: root/gsk/vulkan/resources/color.vert
blob: cc2a853b5c3f1b928f67267164a1673d23a8d35f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#version 420 core

#include "clip.vert.glsl"
#include "rect.vert.glsl"

layout(location = 0) in vec4 inRect;
layout(location = 1) in vec4 inColor;

layout(location = 0) out vec2 outPos;
layout(location = 1) out flat Rect outRect;
layout(location = 2) out flat vec4 outColor;

vec2 offsets[6] = { vec2(0.0, 0.0),
                    vec2(1.0, 0.0),
                    vec2(0.0, 1.0),
                    vec2(0.0, 1.0),
                    vec2(1.0, 0.0),
                    vec2(1.0, 1.0) };

void main() {
  Rect rect = rect_round_larger (clip_rect (rect_from_gsk (inRect)));

  vec2 pos = mix (rect.bounds.xy, rect.bounds.zw, offsets[gl_VertexIndex]);
  gl_Position = push.mvp * vec4 (pos, 0.0, 1.0);
  outPos = pos;
  outRect = rect_from_gsk (inRect);
  outColor = inColor;
}