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>
36 lines
895 B
C
36 lines
895 B
C
// SPDX-License-Identifier: Unlicense OR MIT
|
|
|
|
struct m3x2 {
|
|
vec3 r0;
|
|
vec3 r1;
|
|
};
|
|
|
|
// fboTransform is the transformation that cancels the implied transformation
|
|
// between the clip space and the framebuffer. Only two rows are returned. The
|
|
// last is implied to be [0, 0, 1].
|
|
const m3x2 fboTransform = m3x2(
|
|
#if defined(LANG_HLSL) || defined(LANG_MSL) || defined(LANG_MSLIOS)
|
|
vec3(1.0, 0.0, 0.0),
|
|
vec3(0.0, -1.0, 0.0)
|
|
#else
|
|
vec3(1.0, 0.0, 0.0),
|
|
vec3(0.0, 1.0, 0.0)
|
|
#endif
|
|
);
|
|
|
|
// windowTransform is the transformation that cancels the implied transformation
|
|
// between framebuffer space and window system coordinates.
|
|
const m3x2 windowTransform = m3x2(
|
|
#if defined(LANG_VULKAN)
|
|
vec3(1.0, 0.0, 0.0),
|
|
vec3(0.0, 1.0, 0.0)
|
|
#else
|
|
vec3(1.0, 0.0, 0.0),
|
|
vec3(0.0, -1.0, 0.0)
|
|
#endif
|
|
);
|
|
|
|
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));
|
|
}
|