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