| static constexpr char SKSL_MINIFIED_sksl_graphite_vert[] = |
| "$pure float curve_type_using_inf_support(float4 a){if(isinf(a.z)){return 2." |
| ";}if(isinf(a.w)){return 1.;}return 0.;}$pure bool $k(float a){return a!=0.;" |
| "}$pure bool $l(float a){return a==2.;}$pure float $m(float2 a,float2 b,float2" |
| " c,float2 d,float2x2 e){float2 f=e*(fma(float2(-2.),b,c)+a);float2 g=e*(fma" |
| "(float2(-2.),c,d)+b);return max(dot(f,f),dot(g,g));}$pure float $n(float2 a" |
| ",float2 b,float2 c,float2 d,float2x2 e){float f=$m(a,b,c,d,e);return max(ceil" |
| "(sqrt(3.*sqrt(f))),1.);}$pure float $o(float2 a,float2 b,float2 c,float2 d," |
| "float2x2 e){float f=$m(a,b,c,d,e);return ceil(log2(max(9.*f,1.))*.25);}$pure" |
| " float $p(float2 a,float2 b,float2 c,float d){float2 e=(min(min(a,b),c)+max" |
| "(max(a,b),c))*.5;a-=e;b-=e;c-=e;float f=sqrt(max(max(dot(a,a),dot(b,b)),dot" |
| "(c,c)));float2 g=fma(float2(-2.*d),b,a)+c;float h=abs(fma(-2.,d,2.));float i" |
| "=max(0.,fma(f,4.,-1.));float j=length(g)*4.+i*h;float k=4.*min(d,1.);return" |
| " j/k;}$pure float $q(float2 a,float2 b,float2 c,float d){float e=$p(a,b,c,d" |
| ");return max(ceil(sqrt(e)),1.);}$pure float $r(float2 a,float2 b,float2 c,float" |
| " d){float e=$p(a,b,c,d);return ceil(log2(max(e,1.))*.5);}$pure float2 $s(float2" |
| " c,float2 d){float2 e=c-d;if(e==float2(0.)){return float2(0.);}else{float f" |
| "=1./max(abs(e.x),abs(e.y));return normalize(f*e);}}$pure float $t(float2 c," |
| "float2 d){return clamp(dot(c,d),-1.,1.);}$pure float $u(float a,float b){float" |
| " c=fma(a,.5,.5);return(c*b)*b>=1.?inversesqrt(c):sqrt(c);}$pure float $v(float" |
| " a){return.5/acos(max(1.-.25/a,-1.));}$pure float $w(float c,float d,float e" |
| "){return fma(d-c,e,c);}$pure float2 $w(float2 c,float2 d,float e){return fma" |
| "(d-c,float2(e),c);}$pure float4 $w(float4 c,float4 d,float4 e){return fma(d" |
| "-c,e,c);}$pure float2 tessellate_filled_curve(float2x2 a,float b,float c,float4" |
| " d,float4 e,float f){float2 g;if($l(f)){g=b!=0.?d.zw:(c!=0.?e.xy:d.xy);}else" |
| "{float2 h=d.xy;float2 i=d.zw;float2 j=e.xy;float2 k=e.zw;float l=-1.;float m" |
| ";if($k(f)){l=k.x;m=$r(a*h,a*i,a*j,l);i*=l;k=j;}else{m=$o(h,i,j,k,a);}if(b>m" |
| "){c=floor(ldexp(c,int(m-b)));b=m;}float n=floor(.5+ldexp(c,int(5.-b)));if(0." |
| "<n&&n<32.){float o=n*.03125;float2 p=mix(h,i,o);float2 q=mix(i,j,o);float2 r" |
| "=mix(j,k,o);float2 s=mix(p,q,o);float2 t=mix(q,r,o);float2 x=mix(s,t,o);float" |
| " y=mix(1.,l,o);float z=(l+1.)-y;float A=mix(y,z,o);g=l<0.?x:s/A;}else{g=n==" |
| "0.?h:k;}}return g;}$pure float4 tessellate_stroked_curve(float a,float b,float2x2" |
| " c,float2 d,float e,float4 f,float4 g,float2 h,float2 i,float j){float2 k=f" |
| ".xy;float2 l=f.zw;float2 m=g.xy;float2 n=g.zw;float o=-1.;if($k(j)){o=n.x;n" |
| "=m;}float p;if(o<0.){if(k==l&&m==n){p=1.;}else{p=$n(k,l,m,n,c);}}else{p=$q(" |
| "c*k,c*l,c*m,o);}float q=i.x;float r=i.y;bool s=i.x==0.;float t;if(s){t=$v(1." |
| ");q=.5;}else{t=$v(e*i.x);}if(s){k=c*k;l=c*l;m=c*m;n=c*n;h=c*h;}float2 u=$s(" |
| "k==l?(l==m?n:m):l,k);float2 v=$s(n,n==m?(m==l?k:l):m);if(u==float2(0.)){u=float2" |
| "(1.,0.);v=float2(-1.,0.);}float x;if(r>=0.){x=(sign(r)+1.)+2.;}else{float2 y" |
| "=$s(k,h);float z=acos($t(y,u));float A=max(ceil(z*t),1.);x=A+2.;x=min(x,b-2." |
| ");}float y=cross_length_2d(m-k,n-l);float z=abs(a)-x;if(z<0.){v=u;if(h!=k){" |
| "u=$s(k,h);}y=cross_length_2d(u,v);}float A=$t(u,v);float B=acos(A);if(y<0.)" |
| "{B=-B;}float C;float D=sign(a);if(z<0.){C=x-2.;p=1.;n=(m=(l=k));z+=C+1.;float" |
| " E=.01;bool F=abs(y)*inversesqrt(dot(u,u)*dot(v,v))<E;if(!F||dot(u,v)<0.){if" |
| "(z>=0.){D=y<0.?min(D,0.):max(D,0.);}}z=max(z,0.);}else{float E=(b-x)-1.;C=max" |
| "(ceil(abs(B)*t),1.);C=min(C,E);p=min(p,(E-C)+1.);}float E=B/C;float F=(p+C)" |
| "-1.;bool G=z>=F;if(z>F){D=0.;}if(abs(a)==2.&&r>0.){D*=$u(A,r);}float2 H;float2" |
| " I;if(z!=0.&&!G){float2 J;float2 K;float2 L=l-k;float2 M=n-k;if(o>=0.){L*=o" |
| ";K=.5*M-L;J=(o-1.)*M;l*=o;}else{float2 N=m-l;K=N-L;J=fma(float2(-3.),N,M);}" |
| "float2 N=K*(p*2.);float2 O=L*(p*p);float P=0.;float Q=min(p-1.,z);float R=-" |
| "abs(E);float S=(1.+z)*abs(E);for(int U=4;U>=0;--U){float V=P+exp2(float(U))" |
| ";if(V<=Q){float2 W=fma(float2(V),J,N);W=fma(float2(V),W,O);float X=dot(normalize" |
| "(W),u);float Y=fma(V,R,S);Y=min(Y,3.14159274);if(X>=cos(Y)){P=V;}}}float U=" |
| "P/p;float V=z-P;float W=acos(clamp(u.x,-1.,1.));W=u.y>=0.?W:-W;float X=fma(" |
| "V,E,W);H=float2(cos(X),sin(X));float2 Y=float2(-H.y,H.x);float Z=dot(Y,J);float" |
| " aa=dot(Y,K);float ac=dot(Y,L);float ad=max(aa*aa-Z*ac,0.);float ae=sqrt(ad" |
| ");if(aa>0.){ae=-ae;}ae-=aa;float af=(-.5*ae)*Z;float2 ag=abs(fma(ae,ae,af))" |
| "<abs(fma(Z,ac,af))?float2(ae,Z):float2(ac,ae);float ah=ag.y!=0.?ag.x/ag.y:0." |
| ";ah=clamp(ah,0.,1.);if(V==0.){ah=0.;}float ai=max(U,ah);float2 aj=$w(k,l,ai" |
| ");float2 ak=$w(l,m,ai);float2 al=$w(m,n,ai);float2 am=$w(aj,ak,ai);float2 an" |
| "=$w(ak,al,ai);float2 ao=$w(am,an,ai);float ap=$w(1.,o,ai);float aq=(o+1.)-ap" |
| ";float ar=$w(ap,aq,ai);if(ai!=ah){H=o>=0.?$s(ak*ap,aj*aq):$s(an,am);}I=o>=0." |
| "?am/ar:ao;}else{H=z==0.?u:v;I=z==0.?k:n;}float2 J=float2(H.y,-H.x);I+=J*(q*" |
| "D);if(s){return float4(I+d,inverse(c)*I);}else{return float4(c*I+d,I);}}float4" |
| " analytic_rrect_vertex_fn(float2 a,float2 b,float c,float d,float4 e,float4" |
| " f,float4 g,float4 h,float i,float3x3 j,out float4 k,out float4 l,out float4" |
| " m,out float4 n,out float2 o,out float2 p,out float2 q){float w=1.;bool x=h" |
| ".z<=0.;bool y=false;float4 z;float4 A;float4 B=float4(1.);bool C=false;if(e" |
| ".x<-1.){C=e.y>0.;z=C?g.xxzz:g.xzzx;A=g.yyww;if(e.y<0.){m=-e-2.;n=f;o=float2" |
| "(0.,1.);}else{m=f;n=m;o=e.zw;if(o.y<0.){w=.414213568;}else if(o.y==0.){w=0." |
| ";}}}else if(any(greaterThan(e,float4(0.)))){z=g.xzzx;A=g.yyww;m=e;n=f;o=float2" |
| "(0.,-1.);}else{z=f;A=g;B=-e;m=float4(0.);n=float4(0.);o=float2(0.,1.);y=true" |
| ";}int D=sk_VertexID/9;float2 E=float2(m[D],n[D]);if(D%2!=0){E=E.yx;}float2 F" |
| "=float2(1.);if(E.x>0.&&E.y>0.){w=.414213568;F=E.yx;}float4 G=z-z.wxyz;float4" |
| " H=A-A.wxyz;float4 I=G*G+H*H;float4 J=sign(I);float4 K=float4(0.);float2 L=" |
| "float2(o.x);if(any(equal(J,float4(0.)))){if(all(equal(J,float4(0.)))){G=float4" |
| "(0.,1.,0.,-1.);H=float4(-1.,0.,1.,0.);I=float4(1.);}else{bool M=((J.x+J.y)+" |
| "J.z)+J.w>2.5;float4 N=M?G.yzwx:H.yzwx;float4 O=M?H.yzwx:-G.yzwx;G=mix(N,G,J" |
| ");H=mix(O,H,J);I=mix(I.yzwx,I,J);B=mix(B.yzwx,B,J);if(!M&&w==0.){L*=float2(" |
| "J[D],J.yzwx[D]);K=(J-1.)*o.x;o.y=1.;w=1.;}}}float4 M=inversesqrt(I);G*=M;H*=" |
| "M;float2 N=-float2(G.yzwx[D],H.yzwx[D]);float2 O=float2(G[D],H[D]);float2 P" |
| ";bool Q=false;if(c<0.){if(h.w<0.||d*h.z!=0.){Q=true;}else{float R=h.w;float2" |
| " S=E+(x?-L:L);if((w==1.||S.x<=R)||S.y<=R){P=S-R;}else{P=S*a-R*b;}}}else{P=(" |
| "E+L)*(a+w*a.yx);}if(Q){P=h.xy;}else{P-=E;P=(float2(z[D],A[D])+N*P.x)+O*P.y;" |
| "}l=(H*(z-P.x)-G*(A-P.y))+K;float3x3 R=inverse(j);float3 S=j*float3(P,1.);k=" |
| "float4(R[0].xy-R[0].z*P,R[1].xy-R[1].z*P);if(y){float4 T=-H*(R[0].x-R[0].z*" |
| "z)+G*(R[0].y-R[0].z*A);float4 U=-H*(R[1].x-R[1].z*z)+G*(R[1].y-R[1].z*A);l*=" |
| "inversesqrt(T*T+U*U);l+=(1.-B)*abs(S.z);bool V=B==float4(1.)&&dot(abs(G*G.yzwx" |
| "+H*H.yzwx),float4(1.))<.00024;if(V){float2 W=l.xy+l.zw;p.y=1.+min(min(W.x,W" |
| ".y),abs(S.z));}else{p.y=1.+abs(S.z);}}if(c>0.&&S.z>0.){float2x2 T=float2x2(" |
| "k);float2 U=float2(B[D],B.yzwx[D])*b;float2 V=((F.x*U.x)*perp(-O))*T;float2" |
| " W=((F.y*U.y)*perp(N))*T;bool X=U.x!=0.&&U.y!=0.;if(w==1.&&X){V=normalize(V" |
| ");W=normalize(W);if(dot(V,W)<-.8){float Y=sign(cross_length_2d(V,W));V=Y*perp" |
| "(V);W=-Y*perp(W);}}S.xy+=S.z*normalize(V+W);if(y){l-=S.z;}else{p.y=-S.z;}}else" |
| " if(!y){p.y=0.;}if(d!=0.){p.x=1.;}else{p.x=float(x?-1.:0.);}if(C){k=float4(" |
| "float2x2(H.x,-H.y,-G.x,G.y)*float2x2(k));}q=P;return float4(S.xy,S.z*i,S.z)" |
| ";}float4 per_edge_aa_quad_vertex_fn(float2 a,float2 b,float c,float d,float4" |
| " e,float4 f,float4 g,float4 h,float i,float3x3 j,out float4 k,out float4 l," |
| "out float4 m,out float4 n,out float2 o,out float2 p,out float2 q){float w=1." |
| ";bool x=h.z<=0.;bool y=false;float4 z;float4 A;float4 B=float4(1.);bool C=false" |
| ";if(e.x<-1.){C=e.y>0.;z=C?g.xxzz:g.xzzx;A=g.yyww;if(e.y<0.){m=-e-2.;n=f;o=float2" |
| "(0.,1.);}else{m=f;n=m;o=e.zw;if(o.y<0.){w=.414213568;}else if(o.y==0.){w=0." |
| ";}}}else if(any(greaterThan(e,float4(0.)))){z=g.xzzx;A=g.yyww;m=e;n=f;o=float2" |
| "(0.,-1.);}else{z=f;A=g;B=-e;m=float4(0.);n=float4(0.);o=float2(0.,1.);y=true" |
| ";}int D=sk_VertexID/9;float2 E=float2(m[D],n[D]);if(D%2!=0){E=E.yx;}float2 F" |
| "=float2(1.);if(E.x>0.&&E.y>0.){w=.414213568;F=E.yx;}float4 G=z-z.wxyz;float4" |
| " H=A-A.wxyz;float4 I=G*G+H*H;float4 J=sign(I);float4 K=float4(0.);float2 L=" |
| "float2(o.x);if(any(equal(J,float4(0.)))){if(all(equal(J,float4(0.)))){G=float4" |
| "(0.,1.,0.,-1.);H=float4(-1.,0.,1.,0.);I=float4(1.);}else{bool M=((J.x+J.y)+" |
| "J.z)+J.w>2.5;float4 N=M?G.yzwx:H.yzwx;float4 O=M?H.yzwx:-G.yzwx;G=mix(N,G,J" |
| ");H=mix(O,H,J);I=mix(I.yzwx,I,J);B=mix(B.yzwx,B,J);if(!M&&w==0.){L*=float2(" |
| "J[D],J.yzwx[D]);K=(J-1.)*o.x;o.y=1.;w=1.;}}}float4 M=inversesqrt(I);G*=M;H*=" |
| "M;float2 N=-float2(G.yzwx[D],H.yzwx[D]);float2 O=float2(G[D],H[D]);float2 P" |
| ";bool Q=false;if(c<0.){if(h.w<0.||d*h.z!=0.){Q=true;}else{float R=h.w;float2" |
| " S=E+(x?-L:L);if((w==1.||S.x<=R)||S.y<=R){P=S-R;}else{P=S*a-R*b;}}}else{P=(" |
| "E+L)*(a+w*a.yx);}if(Q){P=h.xy;}else{P-=E;P=(float2(z[D],A[D])+N*P.x)+O*P.y;" |
| "}l=(H*(z-P.x)-G*(A-P.y))+K;float3x3 R=inverse(j);float3 S=j*float3(P,1.);k=" |
| "float4(R[0].xy-R[0].z*P,R[1].xy-R[1].z*P);if(y){float4 T=-H*(R[0].x-R[0].z*" |
| "z)+G*(R[0].y-R[0].z*A);float4 U=-H*(R[1].x-R[1].z*z)+G*(R[1].y-R[1].z*A);l*=" |
| "inversesqrt(T*T+U*U);l+=(1.-B)*abs(S.z);bool V=B==float4(1.)&&dot(abs(G*G.yzwx" |
| "+H*H.yzwx),float4(1.))<.00024;if(V){float2 W=l.xy+l.zw;p.y=1.+min(min(W.x,W" |
| ".y),abs(S.z));}else{p.y=1.+abs(S.z);}}if(c>0.&&S.z>0.){float2x2 T=float2x2(" |
| "k);float2 U=float2(B[D],B.yzwx[D])*b;float2 V=((F.x*U.x)*perp(-O))*T;float2" |
| " W=((F.y*U.y)*perp(N))*T;bool X=U.x!=0.&&U.y!=0.;if(w==1.&&X){V=normalize(V" |
| ");W=normalize(W);if(dot(V,W)<-.8){float Y=sign(cross_length_2d(V,W));V=Y*perp" |
| "(V);W=-Y*perp(W);}}S.xy+=S.z*normalize(V+W);if(y){l-=S.z;}else{p.y=-S.z;}}else" |
| " if(!y){p.y=0.;}if(d!=0.){p.x=1.;}else{p.x=float(x?-1.:0.);}if(C){k=float4(" |
| "float2x2(H.x,-H.y,-G.x,G.y)*float2x2(k));}q=P;return float4(S.xy,S.z*i,S.z)" |
| ";}float4 text_vertex_fn(float2 a,float4x4 b,float4x4 c,float2 d,float2 e,float2" |
| " f,float2 g,float h,float i,out float2 j,out float2 k,out float2 l){a*=e;float2" |
| " m=h*a+g;float4 n=b*float4(m,0.,1.);l=(c*n).xy;k=a+f;j=k*d;return float4(n." |
| "xy,i*n.w,n.w);}float4 coverage_mask_vertex_fn(float2 a,float3x3 b,float4 c," |
| "float4 d,float2 e,float f,float3x3 g,out float4 h,out float2 i,out half j,out" |
| " float2 k){i=mix(c.xy,c.zw,a);float3 l=b*float3(i+e,1.);float3 m=g*l;k=m.xy" |
| "/m.z;if(all(lessThanEqual(d.xy,d.zw))){h=d;j=0.;}else{h=d.zwxy;j=1.;}return" |
| " float4(l.xy,f*l.z,l.z);}float4 cover_bounds_vertex_fn(float2 a,float4 b,float" |
| " c,float3x3 d,out float2 e){if(all(lessThanEqual(b.xy,b.zw))){a=mix(b.xy,b." |
| "zw,a);float3 f=d*float3(a,1.);e=a;return float4(f.xy,c*f.z,f.z);}else{a=mix" |
| "(b.zw,b.xy,a);float3 f=d*float3(a,1.);e=f.xy/f.z;return float4(a,c,1.);}}"; |