go mod vendor pins onnxruntime_go v1.12.1, Gio and the rest into v2/vendor so go run/build work without hitting proxy.golang.org (blocked/slow in China). Verified: CGO_ENABLED=1 go build -mod=vendor ./internal/spike and GOOS=windows go build -mod=vendor ./internal/ui both pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
65 lines
1.2 KiB
Plaintext
65 lines
1.2 KiB
Plaintext
#version 100
|
|
|
|
struct m3x2
|
|
{
|
|
vec3 r0;
|
|
vec3 r1;
|
|
};
|
|
|
|
struct Block
|
|
{
|
|
vec4 transform;
|
|
vec2 pathOffset;
|
|
};
|
|
|
|
uniform Block _block;
|
|
|
|
attribute vec2 from;
|
|
attribute vec2 ctrl;
|
|
attribute vec2 to;
|
|
attribute float maxy;
|
|
attribute float corner;
|
|
varying vec2 vFrom;
|
|
varying vec2 vCtrl;
|
|
varying vec2 vTo;
|
|
|
|
vec3 transform3x2(m3x2 t, vec3 v)
|
|
{
|
|
return vec3(dot(t.r0, v), dot(t.r1, v), dot(vec3(0.0, 0.0, 1.0), v));
|
|
}
|
|
|
|
void main()
|
|
{
|
|
vec2 from_1 = from + _block.pathOffset;
|
|
vec2 ctrl_1 = ctrl + _block.pathOffset;
|
|
vec2 to_1 = to + _block.pathOffset;
|
|
float maxy_1 = maxy + _block.pathOffset.y;
|
|
float c = corner;
|
|
vec2 pos;
|
|
if (c >= 0.375)
|
|
{
|
|
c -= 0.5;
|
|
pos.y = maxy_1 + 1.0;
|
|
}
|
|
else
|
|
{
|
|
pos.y = min(min(from_1.y, ctrl_1.y), to_1.y) - 1.0;
|
|
}
|
|
if (c >= 0.125)
|
|
{
|
|
pos.x = max(max(from_1.x, ctrl_1.x), to_1.x) + 1.0;
|
|
}
|
|
else
|
|
{
|
|
pos.x = min(min(from_1.x, ctrl_1.x), to_1.x) - 1.0;
|
|
}
|
|
vFrom = from_1 - pos;
|
|
vCtrl = ctrl_1 - pos;
|
|
vTo = to_1 - pos;
|
|
pos = (pos * _block.transform.xy) + _block.transform.zw;
|
|
m3x2 param = m3x2(vec3(1.0, 0.0, 0.0), vec3(0.0, 1.0, 0.0));
|
|
vec3 param_1 = vec3(pos, 0.0);
|
|
gl_Position = vec4(transform3x2(param, param_1), 1.0);
|
|
}
|
|
|