feat/hints a471fa4

compose.vert RawHistoryFolder

1#version 450
2// One quad per instance, in the scene's paint order. Draw parameters are
3// fetched in the vertex stage and passed flat, not read per fragment.
4
5struct Draw {
6    ivec4 rect; // visible x0, y0, x1, y1 in target pixels
7    vec4 map; // source texel = map.xy + fragment centre.x * map.zw
8    vec4 mapy; // + fragment centre.y * mapy.xy; mapy.z and w are unused
9    vec4 color; // solid premultiplied RGBA; content opacity in alpha
10    vec4 crop; // source crop bounds in buffer pixels
11    uvec4 buf; // pixel-buffer first word, width, height; YUV metadata in w
12    uvec4 misc; // mode, flags, target width, target height
13    uvec4 resourceIndex; // resource-table slot in x; remaining words padding
14};
15layout(std430, set = 0, binding = 3) readonly buffer Draws { Draw draws[]; };
16layout(location = 0) out Parameters {
17    flat vec4 map;
18    flat vec4 mapy;
19    flat vec4 color;
20    flat vec4 crop;
21    flat uvec4 buf;
22    flat uvec4 misc;
23    flat uint resourceIndex;
24} parameters;
25
26void main() {
27    Draw d = draws[gl_InstanceIndex];
28    const ivec2 corners[6] = ivec2[](ivec2(0, 0), ivec2(1, 0), ivec2(0, 1), ivec2(0, 1), ivec2(1, 0), ivec2(1, 1));
29    ivec2 c = corners[gl_VertexIndex];
30    vec2 p = vec2(c.x == 0 ? d.rect.x : d.rect.z, c.y == 0 ? d.rect.y : d.rect.w);
31    gl_Position = vec4(p / vec2(d.misc.zw) * 2.0 - 1.0, 0.0, 1.0);
32    parameters.map = d.map;
33    parameters.mapy = d.mapy;
34    parameters.color = d.color;
35    parameters.crop = d.crop;
36    parameters.buf = d.buf;
37    parameters.misc = d.misc;
38    parameters.resourceIndex = d.resourceIndex.x;
39}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 23

Tags 10

↑↓ moveenter openesc close