medias 0.6.1

TV media player on bare DRM/KMS: Vulkan UI plane over libmpv video, for local files, UPnP/DLNA servers and YouTube, controlled by HDMI-CEC remote, evdev or terminal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#version 450
// Immediate-mode UI: pixel-space quads for text glyphs, solid rects and thumbnails.
layout(location = 0) in vec2 in_pos;   // pixels, top-left origin
layout(location = 1) in vec2 in_uv;
layout(location = 2) in vec4 in_color;  // straight alpha
layout(location = 3) in float in_tex;   // 0: R8 atlas coverage, 1: RGBA thumbnail atlas
layout(location = 0) out vec2 uv;
layout(location = 1) out vec4 color;
layout(location = 2) out float tex;
layout(push_constant) uniform Push { vec2 screen; float hdr_white; } pc;
void main() {
    vec2 ndc = in_pos / pc.screen * 2.0 - 1.0; // Vulkan NDC: (-1,-1) top-left
    gl_Position = vec4(ndc, 0.0, 1.0);
    uv = in_uv;
    color = in_color;
    tex = in_tex;
}