1cb93a386Sopenharmony_ci 2cb93a386Sopenharmony_ciout vec4 sk_FragColor; 3cb93a386Sopenharmony_ciuniform vec2 ah; 4cb93a386Sopenharmony_ciuniform vec2 bh; 5cb93a386Sopenharmony_ciuniform vec2 af; 6cb93a386Sopenharmony_ciuniform vec2 bf; 7cb93a386Sopenharmony_cifloat cross_hh2h2(vec2 a, vec2 b) { 8cb93a386Sopenharmony_ci return a.x * b.y - a.y * b.x; 9cb93a386Sopenharmony_ci} 10cb93a386Sopenharmony_cifloat cross_ff2f2(vec2 a, vec2 b) { 11cb93a386Sopenharmony_ci return a.x * b.y - a.y * b.x; 12cb93a386Sopenharmony_ci} 13cb93a386Sopenharmony_civoid main() { 14cb93a386Sopenharmony_ci sk_FragColor.x = cross_hh2h2(ah, bh); 15cb93a386Sopenharmony_ci sk_FragColor.y = cross_ff2f2(af, bf); 16cb93a386Sopenharmony_ci} 17