From 72abca7d34bc0f6465bea89d088483d5adf1ec3d Mon Sep 17 00:00:00 2001 From: FalsePattern Date: Tue, 14 Jan 2025 01:09:38 +0100 Subject: [PATCH 1/5] fixed incorrect swizzle constants in glsl-vector-structs (cherry picked from commit 1859c7abb982297afd7d79660a6c84ae0e5d19fc) --- .../builtin-objects/glsl-vector-structs.glsl | 2203 +++++++++-------- src/test/java/VectorStructGen.java | 76 + 2 files changed, 1178 insertions(+), 1101 deletions(-) create mode 100644 src/test/java/VectorStructGen.java diff --git a/src/main/resources/builtin-objects/glsl-vector-structs.glsl b/src/main/resources/builtin-objects/glsl-vector-structs.glsl index 0b2e0ff..db4f0ac 100644 --- a/src/main/resources/builtin-objects/glsl-vector-structs.glsl +++ b/src/main/resources/builtin-objects/glsl-vector-structs.glsl @@ -466,7 +466,7 @@ struct Vec4 { float a; float s; float t; - float r; + float p; float q; vec2 xx; vec2 xy; @@ -502,19 +502,19 @@ struct Vec4 { vec2 aa; vec2 ss; vec2 st; - vec2 sr; + vec2 sp; vec2 sq; vec2 ts; vec2 tt; - vec2 tr; + vec2 tp; vec2 tq; - vec2 rs; - vec2 rt; - vec2 rr; - vec2 rq; + vec2 ps; + vec2 pt; + vec2 pp; + vec2 pq; vec2 qs; vec2 qt; - vec2 qr; + vec2 qp; vec2 qq; vec3 xxx; vec3 xxy; @@ -646,67 +646,67 @@ struct Vec4 { vec3 aaa; vec3 sss; vec3 sst; - vec3 ssr; + vec3 ssp; vec3 ssq; vec3 sts; vec3 stt; - vec3 str; + vec3 stp; vec3 stq; - vec3 srs; - vec3 srt; - vec3 srr; - vec3 srq; + vec3 sps; + vec3 spt; + vec3 spp; + vec3 spq; vec3 sqs; vec3 sqt; - vec3 sqr; + vec3 sqp; vec3 sqq; vec3 tss; vec3 tst; - vec3 tsr; + vec3 tsp; vec3 tsq; vec3 tts; vec3 ttt; - vec3 ttr; + vec3 ttp; vec3 ttq; - vec3 trs; - vec3 trt; - vec3 trr; - vec3 trq; + vec3 tps; + vec3 tpt; + vec3 tpp; + vec3 tpq; vec3 tqs; vec3 tqt; - vec3 tqr; + vec3 tqp; vec3 tqq; - vec3 rss; - vec3 rst; - vec3 rsr; - vec3 rsq; - vec3 rts; - vec3 rtt; - vec3 rtr; - vec3 rtq; - vec3 rrs; - vec3 rrt; - vec3 rrr; - vec3 rrq; - vec3 rqs; - vec3 rqt; - vec3 rqr; - vec3 rqq; + vec3 pss; + vec3 pst; + vec3 psp; + vec3 psq; + vec3 pts; + vec3 ptt; + vec3 ptp; + vec3 ptq; + vec3 pps; + vec3 ppt; + vec3 ppp; + vec3 ppq; + vec3 pqs; + vec3 pqt; + vec3 pqp; + vec3 pqq; vec3 qss; vec3 qst; - vec3 qsr; + vec3 qsp; vec3 qsq; vec3 qts; vec3 qtt; - vec3 qtr; + vec3 qtp; vec3 qtq; - vec3 qrs; - vec3 qrt; - vec3 qrr; - vec3 qrq; + vec3 qps; + vec3 qpt; + vec3 qpp; + vec3 qpq; vec3 qqs; vec3 qqt; - vec3 qqr; + vec3 qqp; vec3 qqq; vec4 xxxx; vec4 xxxy; @@ -1222,259 +1222,259 @@ struct Vec4 { vec4 aaaa; vec4 ssss; vec4 ssst; - vec4 sssr; + vec4 sssp; vec4 sssq; vec4 ssts; vec4 sstt; - vec4 sstr; + vec4 sstp; vec4 sstq; - vec4 ssrs; - vec4 ssrt; - vec4 ssrr; - vec4 ssrq; + vec4 ssps; + vec4 sspt; + vec4 sspp; + vec4 sspq; vec4 ssqs; vec4 ssqt; - vec4 ssqr; + vec4 ssqp; vec4 ssqq; vec4 stss; vec4 stst; - vec4 stsr; + vec4 stsp; vec4 stsq; vec4 stts; vec4 sttt; - vec4 sttr; + vec4 sttp; vec4 sttq; - vec4 strs; - vec4 strt; - vec4 strr; - vec4 strq; + vec4 stps; + vec4 stpt; + vec4 stpp; + vec4 stpq; vec4 stqs; vec4 stqt; - vec4 stqr; + vec4 stqp; vec4 stqq; - vec4 srss; - vec4 srst; - vec4 srsr; - vec4 srsq; - vec4 srts; - vec4 srtt; - vec4 srtr; - vec4 srtq; - vec4 srrs; - vec4 srrt; - vec4 srrr; - vec4 srrq; - vec4 srqs; - vec4 srqt; - vec4 srqr; - vec4 srqq; + vec4 spss; + vec4 spst; + vec4 spsp; + vec4 spsq; + vec4 spts; + vec4 sptt; + vec4 sptp; + vec4 sptq; + vec4 spps; + vec4 sppt; + vec4 sppp; + vec4 sppq; + vec4 spqs; + vec4 spqt; + vec4 spqp; + vec4 spqq; vec4 sqss; vec4 sqst; - vec4 sqsr; + vec4 sqsp; vec4 sqsq; vec4 sqts; vec4 sqtt; - vec4 sqtr; + vec4 sqtp; vec4 sqtq; - vec4 sqrs; - vec4 sqrt; - vec4 sqrr; - vec4 sqrq; + vec4 sqps; + vec4 sqpt; + vec4 sqpp; + vec4 sqpq; vec4 sqqs; vec4 sqqt; - vec4 sqqr; + vec4 sqqp; vec4 sqqq; vec4 tsss; vec4 tsst; - vec4 tssr; + vec4 tssp; vec4 tssq; vec4 tsts; vec4 tstt; - vec4 tstr; + vec4 tstp; vec4 tstq; - vec4 tsrs; - vec4 tsrt; - vec4 tsrr; - vec4 tsrq; + vec4 tsps; + vec4 tspt; + vec4 tspp; + vec4 tspq; vec4 tsqs; vec4 tsqt; - vec4 tsqr; + vec4 tsqp; vec4 tsqq; vec4 ttss; vec4 ttst; - vec4 ttsr; + vec4 ttsp; vec4 ttsq; vec4 ttts; vec4 tttt; - vec4 tttr; + vec4 tttp; vec4 tttq; - vec4 ttrs; - vec4 ttrt; - vec4 ttrr; - vec4 ttrq; + vec4 ttps; + vec4 ttpt; + vec4 ttpp; + vec4 ttpq; vec4 ttqs; vec4 ttqt; - vec4 ttqr; + vec4 ttqp; vec4 ttqq; - vec4 trss; - vec4 trst; - vec4 trsr; - vec4 trsq; - vec4 trts; - vec4 trtt; - vec4 trtr; - vec4 trtq; - vec4 trrs; - vec4 trrt; - vec4 trrr; - vec4 trrq; - vec4 trqs; - vec4 trqt; - vec4 trqr; - vec4 trqq; + vec4 tpss; + vec4 tpst; + vec4 tpsp; + vec4 tpsq; + vec4 tpts; + vec4 tptt; + vec4 tptp; + vec4 tptq; + vec4 tpps; + vec4 tppt; + vec4 tppp; + vec4 tppq; + vec4 tpqs; + vec4 tpqt; + vec4 tpqp; + vec4 tpqq; vec4 tqss; vec4 tqst; - vec4 tqsr; + vec4 tqsp; vec4 tqsq; vec4 tqts; vec4 tqtt; - vec4 tqtr; + vec4 tqtp; vec4 tqtq; - vec4 tqrs; - vec4 tqrt; - vec4 tqrr; - vec4 tqrq; + vec4 tqps; + vec4 tqpt; + vec4 tqpp; + vec4 tqpq; vec4 tqqs; vec4 tqqt; - vec4 tqqr; + vec4 tqqp; vec4 tqqq; - vec4 rsss; - vec4 rsst; - vec4 rssr; - vec4 rssq; - vec4 rsts; - vec4 rstt; - vec4 rstr; - vec4 rstq; - vec4 rsrs; - vec4 rsrt; - vec4 rsrr; - vec4 rsrq; - vec4 rsqs; - vec4 rsqt; - vec4 rsqr; - vec4 rsqq; - vec4 rtss; - vec4 rtst; - vec4 rtsr; - vec4 rtsq; - vec4 rtts; - vec4 rttt; - vec4 rttr; - vec4 rttq; - vec4 rtrs; - vec4 rtrt; - vec4 rtrr; - vec4 rtrq; - vec4 rtqs; - vec4 rtqt; - vec4 rtqr; - vec4 rtqq; - vec4 rrss; - vec4 rrst; - vec4 rrsr; - vec4 rrsq; - vec4 rrts; - vec4 rrtt; - vec4 rrtr; - vec4 rrtq; - vec4 rrrs; - vec4 rrrt; - vec4 rrrr; - vec4 rrrq; - vec4 rrqs; - vec4 rrqt; - vec4 rrqr; - vec4 rrqq; - vec4 rqss; - vec4 rqst; - vec4 rqsr; - vec4 rqsq; - vec4 rqts; - vec4 rqtt; - vec4 rqtr; - vec4 rqtq; - vec4 rqrs; - vec4 rqrt; - vec4 rqrr; - vec4 rqrq; - vec4 rqqs; - vec4 rqqt; - vec4 rqqr; - vec4 rqqq; + vec4 psss; + vec4 psst; + vec4 pssp; + vec4 pssq; + vec4 psts; + vec4 pstt; + vec4 pstp; + vec4 pstq; + vec4 psps; + vec4 pspt; + vec4 pspp; + vec4 pspq; + vec4 psqs; + vec4 psqt; + vec4 psqp; + vec4 psqq; + vec4 ptss; + vec4 ptst; + vec4 ptsp; + vec4 ptsq; + vec4 ptts; + vec4 pttt; + vec4 pttp; + vec4 pttq; + vec4 ptps; + vec4 ptpt; + vec4 ptpp; + vec4 ptpq; + vec4 ptqs; + vec4 ptqt; + vec4 ptqp; + vec4 ptqq; + vec4 ppss; + vec4 ppst; + vec4 ppsp; + vec4 ppsq; + vec4 ppts; + vec4 pptt; + vec4 pptp; + vec4 pptq; + vec4 ppps; + vec4 pppt; + vec4 pppp; + vec4 pppq; + vec4 ppqs; + vec4 ppqt; + vec4 ppqp; + vec4 ppqq; + vec4 pqss; + vec4 pqst; + vec4 pqsp; + vec4 pqsq; + vec4 pqts; + vec4 pqtt; + vec4 pqtp; + vec4 pqtq; + vec4 pqps; + vec4 pqpt; + vec4 pqpp; + vec4 pqpq; + vec4 pqqs; + vec4 pqqt; + vec4 pqqp; + vec4 pqqq; vec4 qsss; vec4 qsst; - vec4 qssr; + vec4 qssp; vec4 qssq; vec4 qsts; vec4 qstt; - vec4 qstr; + vec4 qstp; vec4 qstq; - vec4 qsrs; - vec4 qsrt; - vec4 qsrr; - vec4 qsrq; + vec4 qsps; + vec4 qspt; + vec4 qspp; + vec4 qspq; vec4 qsqs; vec4 qsqt; - vec4 qsqr; + vec4 qsqp; vec4 qsqq; vec4 qtss; vec4 qtst; - vec4 qtsr; + vec4 qtsp; vec4 qtsq; vec4 qtts; vec4 qttt; - vec4 qttr; + vec4 qttp; vec4 qttq; - vec4 qtrs; - vec4 qtrt; - vec4 qtrr; - vec4 qtrq; + vec4 qtps; + vec4 qtpt; + vec4 qtpp; + vec4 qtpq; vec4 qtqs; vec4 qtqt; - vec4 qtqr; + vec4 qtqp; vec4 qtqq; - vec4 qrss; - vec4 qrst; - vec4 qrsr; - vec4 qrsq; - vec4 qrts; - vec4 qrtt; - vec4 qrtr; - vec4 qrtq; - vec4 qrrs; - vec4 qrrt; - vec4 qrrr; - vec4 qrrq; - vec4 qrqs; - vec4 qrqt; - vec4 qrqr; - vec4 qrqq; + vec4 qpss; + vec4 qpst; + vec4 qpsp; + vec4 qpsq; + vec4 qpts; + vec4 qptt; + vec4 qptp; + vec4 qptq; + vec4 qpps; + vec4 qppt; + vec4 qppp; + vec4 qppq; + vec4 qpqs; + vec4 qpqt; + vec4 qpqp; + vec4 qpqq; vec4 qqss; vec4 qqst; - vec4 qqsr; + vec4 qqsp; vec4 qqsq; vec4 qqts; vec4 qqtt; - vec4 qqtr; + vec4 qqtp; vec4 qqtq; - vec4 qqrs; - vec4 qqrt; - vec4 qqrr; - vec4 qqrq; + vec4 qqps; + vec4 qqpt; + vec4 qqpp; + vec4 qqpq; vec4 qqqs; vec4 qqqt; - vec4 qqqr; + vec4 qqqp; vec4 qqqq; }; @@ -1945,7 +1945,7 @@ struct IVec4 { int a; int s; int t; - int r; + int p; int q; ivec2 xx; ivec2 xy; @@ -1981,19 +1981,19 @@ struct IVec4 { ivec2 aa; ivec2 ss; ivec2 st; - ivec2 sr; + ivec2 sp; ivec2 sq; ivec2 ts; ivec2 tt; - ivec2 tr; + ivec2 tp; ivec2 tq; - ivec2 rs; - ivec2 rt; - ivec2 rr; - ivec2 rq; + ivec2 ps; + ivec2 pt; + ivec2 pp; + ivec2 pq; ivec2 qs; ivec2 qt; - ivec2 qr; + ivec2 qp; ivec2 qq; ivec3 xxx; ivec3 xxy; @@ -2125,67 +2125,67 @@ struct IVec4 { ivec3 aaa; ivec3 sss; ivec3 sst; - ivec3 ssr; + ivec3 ssp; ivec3 ssq; ivec3 sts; ivec3 stt; - ivec3 str; + ivec3 stp; ivec3 stq; - ivec3 srs; - ivec3 srt; - ivec3 srr; - ivec3 srq; + ivec3 sps; + ivec3 spt; + ivec3 spp; + ivec3 spq; ivec3 sqs; ivec3 sqt; - ivec3 sqr; + ivec3 sqp; ivec3 sqq; ivec3 tss; ivec3 tst; - ivec3 tsr; + ivec3 tsp; ivec3 tsq; ivec3 tts; ivec3 ttt; - ivec3 ttr; + ivec3 ttp; ivec3 ttq; - ivec3 trs; - ivec3 trt; - ivec3 trr; - ivec3 trq; + ivec3 tps; + ivec3 tpt; + ivec3 tpp; + ivec3 tpq; ivec3 tqs; ivec3 tqt; - ivec3 tqr; + ivec3 tqp; ivec3 tqq; - ivec3 rss; - ivec3 rst; - ivec3 rsr; - ivec3 rsq; - ivec3 rts; - ivec3 rtt; - ivec3 rtr; - ivec3 rtq; - ivec3 rrs; - ivec3 rrt; - ivec3 rrr; - ivec3 rrq; - ivec3 rqs; - ivec3 rqt; - ivec3 rqr; - ivec3 rqq; + ivec3 pss; + ivec3 pst; + ivec3 psp; + ivec3 psq; + ivec3 pts; + ivec3 ptt; + ivec3 ptp; + ivec3 ptq; + ivec3 pps; + ivec3 ppt; + ivec3 ppp; + ivec3 ppq; + ivec3 pqs; + ivec3 pqt; + ivec3 pqp; + ivec3 pqq; ivec3 qss; ivec3 qst; - ivec3 qsr; + ivec3 qsp; ivec3 qsq; ivec3 qts; ivec3 qtt; - ivec3 qtr; + ivec3 qtp; ivec3 qtq; - ivec3 qrs; - ivec3 qrt; - ivec3 qrr; - ivec3 qrq; + ivec3 qps; + ivec3 qpt; + ivec3 qpp; + ivec3 qpq; ivec3 qqs; ivec3 qqt; - ivec3 qqr; + ivec3 qqp; ivec3 qqq; ivec4 xxxx; ivec4 xxxy; @@ -2701,259 +2701,259 @@ struct IVec4 { ivec4 aaaa; ivec4 ssss; ivec4 ssst; - ivec4 sssr; + ivec4 sssp; ivec4 sssq; ivec4 ssts; ivec4 sstt; - ivec4 sstr; + ivec4 sstp; ivec4 sstq; - ivec4 ssrs; - ivec4 ssrt; - ivec4 ssrr; - ivec4 ssrq; + ivec4 ssps; + ivec4 sspt; + ivec4 sspp; + ivec4 sspq; ivec4 ssqs; ivec4 ssqt; - ivec4 ssqr; + ivec4 ssqp; ivec4 ssqq; ivec4 stss; ivec4 stst; - ivec4 stsr; + ivec4 stsp; ivec4 stsq; ivec4 stts; ivec4 sttt; - ivec4 sttr; + ivec4 sttp; ivec4 sttq; - ivec4 strs; - ivec4 strt; - ivec4 strr; - ivec4 strq; + ivec4 stps; + ivec4 stpt; + ivec4 stpp; + ivec4 stpq; ivec4 stqs; ivec4 stqt; - ivec4 stqr; + ivec4 stqp; ivec4 stqq; - ivec4 srss; - ivec4 srst; - ivec4 srsr; - ivec4 srsq; - ivec4 srts; - ivec4 srtt; - ivec4 srtr; - ivec4 srtq; - ivec4 srrs; - ivec4 srrt; - ivec4 srrr; - ivec4 srrq; - ivec4 srqs; - ivec4 srqt; - ivec4 srqr; - ivec4 srqq; + ivec4 spss; + ivec4 spst; + ivec4 spsp; + ivec4 spsq; + ivec4 spts; + ivec4 sptt; + ivec4 sptp; + ivec4 sptq; + ivec4 spps; + ivec4 sppt; + ivec4 sppp; + ivec4 sppq; + ivec4 spqs; + ivec4 spqt; + ivec4 spqp; + ivec4 spqq; ivec4 sqss; ivec4 sqst; - ivec4 sqsr; + ivec4 sqsp; ivec4 sqsq; ivec4 sqts; ivec4 sqtt; - ivec4 sqtr; + ivec4 sqtp; ivec4 sqtq; - ivec4 sqrs; - ivec4 sqrt; - ivec4 sqrr; - ivec4 sqrq; + ivec4 sqps; + ivec4 sqpt; + ivec4 sqpp; + ivec4 sqpq; ivec4 sqqs; ivec4 sqqt; - ivec4 sqqr; + ivec4 sqqp; ivec4 sqqq; ivec4 tsss; ivec4 tsst; - ivec4 tssr; + ivec4 tssp; ivec4 tssq; ivec4 tsts; ivec4 tstt; - ivec4 tstr; + ivec4 tstp; ivec4 tstq; - ivec4 tsrs; - ivec4 tsrt; - ivec4 tsrr; - ivec4 tsrq; + ivec4 tsps; + ivec4 tspt; + ivec4 tspp; + ivec4 tspq; ivec4 tsqs; ivec4 tsqt; - ivec4 tsqr; + ivec4 tsqp; ivec4 tsqq; ivec4 ttss; ivec4 ttst; - ivec4 ttsr; + ivec4 ttsp; ivec4 ttsq; ivec4 ttts; ivec4 tttt; - ivec4 tttr; + ivec4 tttp; ivec4 tttq; - ivec4 ttrs; - ivec4 ttrt; - ivec4 ttrr; - ivec4 ttrq; + ivec4 ttps; + ivec4 ttpt; + ivec4 ttpp; + ivec4 ttpq; ivec4 ttqs; ivec4 ttqt; - ivec4 ttqr; + ivec4 ttqp; ivec4 ttqq; - ivec4 trss; - ivec4 trst; - ivec4 trsr; - ivec4 trsq; - ivec4 trts; - ivec4 trtt; - ivec4 trtr; - ivec4 trtq; - ivec4 trrs; - ivec4 trrt; - ivec4 trrr; - ivec4 trrq; - ivec4 trqs; - ivec4 trqt; - ivec4 trqr; - ivec4 trqq; + ivec4 tpss; + ivec4 tpst; + ivec4 tpsp; + ivec4 tpsq; + ivec4 tpts; + ivec4 tptt; + ivec4 tptp; + ivec4 tptq; + ivec4 tpps; + ivec4 tppt; + ivec4 tppp; + ivec4 tppq; + ivec4 tpqs; + ivec4 tpqt; + ivec4 tpqp; + ivec4 tpqq; ivec4 tqss; ivec4 tqst; - ivec4 tqsr; + ivec4 tqsp; ivec4 tqsq; ivec4 tqts; ivec4 tqtt; - ivec4 tqtr; + ivec4 tqtp; ivec4 tqtq; - ivec4 tqrs; - ivec4 tqrt; - ivec4 tqrr; - ivec4 tqrq; + ivec4 tqps; + ivec4 tqpt; + ivec4 tqpp; + ivec4 tqpq; ivec4 tqqs; ivec4 tqqt; - ivec4 tqqr; + ivec4 tqqp; ivec4 tqqq; - ivec4 rsss; - ivec4 rsst; - ivec4 rssr; - ivec4 rssq; - ivec4 rsts; - ivec4 rstt; - ivec4 rstr; - ivec4 rstq; - ivec4 rsrs; - ivec4 rsrt; - ivec4 rsrr; - ivec4 rsrq; - ivec4 rsqs; - ivec4 rsqt; - ivec4 rsqr; - ivec4 rsqq; - ivec4 rtss; - ivec4 rtst; - ivec4 rtsr; - ivec4 rtsq; - ivec4 rtts; - ivec4 rttt; - ivec4 rttr; - ivec4 rttq; - ivec4 rtrs; - ivec4 rtrt; - ivec4 rtrr; - ivec4 rtrq; - ivec4 rtqs; - ivec4 rtqt; - ivec4 rtqr; - ivec4 rtqq; - ivec4 rrss; - ivec4 rrst; - ivec4 rrsr; - ivec4 rrsq; - ivec4 rrts; - ivec4 rrtt; - ivec4 rrtr; - ivec4 rrtq; - ivec4 rrrs; - ivec4 rrrt; - ivec4 rrrr; - ivec4 rrrq; - ivec4 rrqs; - ivec4 rrqt; - ivec4 rrqr; - ivec4 rrqq; - ivec4 rqss; - ivec4 rqst; - ivec4 rqsr; - ivec4 rqsq; - ivec4 rqts; - ivec4 rqtt; - ivec4 rqtr; - ivec4 rqtq; - ivec4 rqrs; - ivec4 rqrt; - ivec4 rqrr; - ivec4 rqrq; - ivec4 rqqs; - ivec4 rqqt; - ivec4 rqqr; - ivec4 rqqq; + ivec4 psss; + ivec4 psst; + ivec4 pssp; + ivec4 pssq; + ivec4 psts; + ivec4 pstt; + ivec4 pstp; + ivec4 pstq; + ivec4 psps; + ivec4 pspt; + ivec4 pspp; + ivec4 pspq; + ivec4 psqs; + ivec4 psqt; + ivec4 psqp; + ivec4 psqq; + ivec4 ptss; + ivec4 ptst; + ivec4 ptsp; + ivec4 ptsq; + ivec4 ptts; + ivec4 pttt; + ivec4 pttp; + ivec4 pttq; + ivec4 ptps; + ivec4 ptpt; + ivec4 ptpp; + ivec4 ptpq; + ivec4 ptqs; + ivec4 ptqt; + ivec4 ptqp; + ivec4 ptqq; + ivec4 ppss; + ivec4 ppst; + ivec4 ppsp; + ivec4 ppsq; + ivec4 ppts; + ivec4 pptt; + ivec4 pptp; + ivec4 pptq; + ivec4 ppps; + ivec4 pppt; + ivec4 pppp; + ivec4 pppq; + ivec4 ppqs; + ivec4 ppqt; + ivec4 ppqp; + ivec4 ppqq; + ivec4 pqss; + ivec4 pqst; + ivec4 pqsp; + ivec4 pqsq; + ivec4 pqts; + ivec4 pqtt; + ivec4 pqtp; + ivec4 pqtq; + ivec4 pqps; + ivec4 pqpt; + ivec4 pqpp; + ivec4 pqpq; + ivec4 pqqs; + ivec4 pqqt; + ivec4 pqqp; + ivec4 pqqq; ivec4 qsss; ivec4 qsst; - ivec4 qssr; + ivec4 qssp; ivec4 qssq; ivec4 qsts; ivec4 qstt; - ivec4 qstr; + ivec4 qstp; ivec4 qstq; - ivec4 qsrs; - ivec4 qsrt; - ivec4 qsrr; - ivec4 qsrq; + ivec4 qsps; + ivec4 qspt; + ivec4 qspp; + ivec4 qspq; ivec4 qsqs; ivec4 qsqt; - ivec4 qsqr; + ivec4 qsqp; ivec4 qsqq; ivec4 qtss; ivec4 qtst; - ivec4 qtsr; + ivec4 qtsp; ivec4 qtsq; ivec4 qtts; ivec4 qttt; - ivec4 qttr; + ivec4 qttp; ivec4 qttq; - ivec4 qtrs; - ivec4 qtrt; - ivec4 qtrr; - ivec4 qtrq; + ivec4 qtps; + ivec4 qtpt; + ivec4 qtpp; + ivec4 qtpq; ivec4 qtqs; ivec4 qtqt; - ivec4 qtqr; + ivec4 qtqp; ivec4 qtqq; - ivec4 qrss; - ivec4 qrst; - ivec4 qrsr; - ivec4 qrsq; - ivec4 qrts; - ivec4 qrtt; - ivec4 qrtr; - ivec4 qrtq; - ivec4 qrrs; - ivec4 qrrt; - ivec4 qrrr; - ivec4 qrrq; - ivec4 qrqs; - ivec4 qrqt; - ivec4 qrqr; - ivec4 qrqq; + ivec4 qpss; + ivec4 qpst; + ivec4 qpsp; + ivec4 qpsq; + ivec4 qpts; + ivec4 qptt; + ivec4 qptp; + ivec4 qptq; + ivec4 qpps; + ivec4 qppt; + ivec4 qppp; + ivec4 qppq; + ivec4 qpqs; + ivec4 qpqt; + ivec4 qpqp; + ivec4 qpqq; ivec4 qqss; ivec4 qqst; - ivec4 qqsr; + ivec4 qqsp; ivec4 qqsq; ivec4 qqts; ivec4 qqtt; - ivec4 qqtr; + ivec4 qqtp; ivec4 qqtq; - ivec4 qqrs; - ivec4 qqrt; - ivec4 qqrr; - ivec4 qqrq; + ivec4 qqps; + ivec4 qqpt; + ivec4 qqpp; + ivec4 qqpq; ivec4 qqqs; ivec4 qqqt; - ivec4 qqqr; + ivec4 qqqp; ivec4 qqqq; }; @@ -3424,7 +3424,7 @@ struct BVec4 { bool a; bool s; bool t; - bool r; + bool p; bool q; bvec2 xx; bvec2 xy; @@ -3460,19 +3460,19 @@ struct BVec4 { bvec2 aa; bvec2 ss; bvec2 st; - bvec2 sr; + bvec2 sp; bvec2 sq; bvec2 ts; bvec2 tt; - bvec2 tr; + bvec2 tp; bvec2 tq; - bvec2 rs; - bvec2 rt; - bvec2 rr; - bvec2 rq; + bvec2 ps; + bvec2 pt; + bvec2 pp; + bvec2 pq; bvec2 qs; bvec2 qt; - bvec2 qr; + bvec2 qp; bvec2 qq; bvec3 xxx; bvec3 xxy; @@ -3604,67 +3604,67 @@ struct BVec4 { bvec3 aaa; bvec3 sss; bvec3 sst; - bvec3 ssr; + bvec3 ssp; bvec3 ssq; bvec3 sts; bvec3 stt; - bvec3 str; + bvec3 stp; bvec3 stq; - bvec3 srs; - bvec3 srt; - bvec3 srr; - bvec3 srq; + bvec3 sps; + bvec3 spt; + bvec3 spp; + bvec3 spq; bvec3 sqs; bvec3 sqt; - bvec3 sqr; + bvec3 sqp; bvec3 sqq; bvec3 tss; bvec3 tst; - bvec3 tsr; + bvec3 tsp; bvec3 tsq; bvec3 tts; bvec3 ttt; - bvec3 ttr; + bvec3 ttp; bvec3 ttq; - bvec3 trs; - bvec3 trt; - bvec3 trr; - bvec3 trq; + bvec3 tps; + bvec3 tpt; + bvec3 tpp; + bvec3 tpq; bvec3 tqs; bvec3 tqt; - bvec3 tqr; + bvec3 tqp; bvec3 tqq; - bvec3 rss; - bvec3 rst; - bvec3 rsr; - bvec3 rsq; - bvec3 rts; - bvec3 rtt; - bvec3 rtr; - bvec3 rtq; - bvec3 rrs; - bvec3 rrt; - bvec3 rrr; - bvec3 rrq; - bvec3 rqs; - bvec3 rqt; - bvec3 rqr; - bvec3 rqq; + bvec3 pss; + bvec3 pst; + bvec3 psp; + bvec3 psq; + bvec3 pts; + bvec3 ptt; + bvec3 ptp; + bvec3 ptq; + bvec3 pps; + bvec3 ppt; + bvec3 ppp; + bvec3 ppq; + bvec3 pqs; + bvec3 pqt; + bvec3 pqp; + bvec3 pqq; bvec3 qss; bvec3 qst; - bvec3 qsr; + bvec3 qsp; bvec3 qsq; bvec3 qts; bvec3 qtt; - bvec3 qtr; + bvec3 qtp; bvec3 qtq; - bvec3 qrs; - bvec3 qrt; - bvec3 qrr; - bvec3 qrq; + bvec3 qps; + bvec3 qpt; + bvec3 qpp; + bvec3 qpq; bvec3 qqs; bvec3 qqt; - bvec3 qqr; + bvec3 qqp; bvec3 qqq; bvec4 xxxx; bvec4 xxxy; @@ -4180,259 +4180,259 @@ struct BVec4 { bvec4 aaaa; bvec4 ssss; bvec4 ssst; - bvec4 sssr; + bvec4 sssp; bvec4 sssq; bvec4 ssts; bvec4 sstt; - bvec4 sstr; + bvec4 sstp; bvec4 sstq; - bvec4 ssrs; - bvec4 ssrt; - bvec4 ssrr; - bvec4 ssrq; + bvec4 ssps; + bvec4 sspt; + bvec4 sspp; + bvec4 sspq; bvec4 ssqs; bvec4 ssqt; - bvec4 ssqr; + bvec4 ssqp; bvec4 ssqq; bvec4 stss; bvec4 stst; - bvec4 stsr; + bvec4 stsp; bvec4 stsq; bvec4 stts; bvec4 sttt; - bvec4 sttr; + bvec4 sttp; bvec4 sttq; - bvec4 strs; - bvec4 strt; - bvec4 strr; - bvec4 strq; + bvec4 stps; + bvec4 stpt; + bvec4 stpp; + bvec4 stpq; bvec4 stqs; bvec4 stqt; - bvec4 stqr; + bvec4 stqp; bvec4 stqq; - bvec4 srss; - bvec4 srst; - bvec4 srsr; - bvec4 srsq; - bvec4 srts; - bvec4 srtt; - bvec4 srtr; - bvec4 srtq; - bvec4 srrs; - bvec4 srrt; - bvec4 srrr; - bvec4 srrq; - bvec4 srqs; - bvec4 srqt; - bvec4 srqr; - bvec4 srqq; + bvec4 spss; + bvec4 spst; + bvec4 spsp; + bvec4 spsq; + bvec4 spts; + bvec4 sptt; + bvec4 sptp; + bvec4 sptq; + bvec4 spps; + bvec4 sppt; + bvec4 sppp; + bvec4 sppq; + bvec4 spqs; + bvec4 spqt; + bvec4 spqp; + bvec4 spqq; bvec4 sqss; bvec4 sqst; - bvec4 sqsr; + bvec4 sqsp; bvec4 sqsq; bvec4 sqts; bvec4 sqtt; - bvec4 sqtr; + bvec4 sqtp; bvec4 sqtq; - bvec4 sqrs; - bvec4 sqrt; - bvec4 sqrr; - bvec4 sqrq; + bvec4 sqps; + bvec4 sqpt; + bvec4 sqpp; + bvec4 sqpq; bvec4 sqqs; bvec4 sqqt; - bvec4 sqqr; + bvec4 sqqp; bvec4 sqqq; bvec4 tsss; bvec4 tsst; - bvec4 tssr; + bvec4 tssp; bvec4 tssq; bvec4 tsts; bvec4 tstt; - bvec4 tstr; + bvec4 tstp; bvec4 tstq; - bvec4 tsrs; - bvec4 tsrt; - bvec4 tsrr; - bvec4 tsrq; + bvec4 tsps; + bvec4 tspt; + bvec4 tspp; + bvec4 tspq; bvec4 tsqs; bvec4 tsqt; - bvec4 tsqr; + bvec4 tsqp; bvec4 tsqq; bvec4 ttss; bvec4 ttst; - bvec4 ttsr; + bvec4 ttsp; bvec4 ttsq; bvec4 ttts; bvec4 tttt; - bvec4 tttr; + bvec4 tttp; bvec4 tttq; - bvec4 ttrs; - bvec4 ttrt; - bvec4 ttrr; - bvec4 ttrq; + bvec4 ttps; + bvec4 ttpt; + bvec4 ttpp; + bvec4 ttpq; bvec4 ttqs; bvec4 ttqt; - bvec4 ttqr; + bvec4 ttqp; bvec4 ttqq; - bvec4 trss; - bvec4 trst; - bvec4 trsr; - bvec4 trsq; - bvec4 trts; - bvec4 trtt; - bvec4 trtr; - bvec4 trtq; - bvec4 trrs; - bvec4 trrt; - bvec4 trrr; - bvec4 trrq; - bvec4 trqs; - bvec4 trqt; - bvec4 trqr; - bvec4 trqq; + bvec4 tpss; + bvec4 tpst; + bvec4 tpsp; + bvec4 tpsq; + bvec4 tpts; + bvec4 tptt; + bvec4 tptp; + bvec4 tptq; + bvec4 tpps; + bvec4 tppt; + bvec4 tppp; + bvec4 tppq; + bvec4 tpqs; + bvec4 tpqt; + bvec4 tpqp; + bvec4 tpqq; bvec4 tqss; bvec4 tqst; - bvec4 tqsr; + bvec4 tqsp; bvec4 tqsq; bvec4 tqts; bvec4 tqtt; - bvec4 tqtr; + bvec4 tqtp; bvec4 tqtq; - bvec4 tqrs; - bvec4 tqrt; - bvec4 tqrr; - bvec4 tqrq; + bvec4 tqps; + bvec4 tqpt; + bvec4 tqpp; + bvec4 tqpq; bvec4 tqqs; bvec4 tqqt; - bvec4 tqqr; + bvec4 tqqp; bvec4 tqqq; - bvec4 rsss; - bvec4 rsst; - bvec4 rssr; - bvec4 rssq; - bvec4 rsts; - bvec4 rstt; - bvec4 rstr; - bvec4 rstq; - bvec4 rsrs; - bvec4 rsrt; - bvec4 rsrr; - bvec4 rsrq; - bvec4 rsqs; - bvec4 rsqt; - bvec4 rsqr; - bvec4 rsqq; - bvec4 rtss; - bvec4 rtst; - bvec4 rtsr; - bvec4 rtsq; - bvec4 rtts; - bvec4 rttt; - bvec4 rttr; - bvec4 rttq; - bvec4 rtrs; - bvec4 rtrt; - bvec4 rtrr; - bvec4 rtrq; - bvec4 rtqs; - bvec4 rtqt; - bvec4 rtqr; - bvec4 rtqq; - bvec4 rrss; - bvec4 rrst; - bvec4 rrsr; - bvec4 rrsq; - bvec4 rrts; - bvec4 rrtt; - bvec4 rrtr; - bvec4 rrtq; - bvec4 rrrs; - bvec4 rrrt; - bvec4 rrrr; - bvec4 rrrq; - bvec4 rrqs; - bvec4 rrqt; - bvec4 rrqr; - bvec4 rrqq; - bvec4 rqss; - bvec4 rqst; - bvec4 rqsr; - bvec4 rqsq; - bvec4 rqts; - bvec4 rqtt; - bvec4 rqtr; - bvec4 rqtq; - bvec4 rqrs; - bvec4 rqrt; - bvec4 rqrr; - bvec4 rqrq; - bvec4 rqqs; - bvec4 rqqt; - bvec4 rqqr; - bvec4 rqqq; + bvec4 psss; + bvec4 psst; + bvec4 pssp; + bvec4 pssq; + bvec4 psts; + bvec4 pstt; + bvec4 pstp; + bvec4 pstq; + bvec4 psps; + bvec4 pspt; + bvec4 pspp; + bvec4 pspq; + bvec4 psqs; + bvec4 psqt; + bvec4 psqp; + bvec4 psqq; + bvec4 ptss; + bvec4 ptst; + bvec4 ptsp; + bvec4 ptsq; + bvec4 ptts; + bvec4 pttt; + bvec4 pttp; + bvec4 pttq; + bvec4 ptps; + bvec4 ptpt; + bvec4 ptpp; + bvec4 ptpq; + bvec4 ptqs; + bvec4 ptqt; + bvec4 ptqp; + bvec4 ptqq; + bvec4 ppss; + bvec4 ppst; + bvec4 ppsp; + bvec4 ppsq; + bvec4 ppts; + bvec4 pptt; + bvec4 pptp; + bvec4 pptq; + bvec4 ppps; + bvec4 pppt; + bvec4 pppp; + bvec4 pppq; + bvec4 ppqs; + bvec4 ppqt; + bvec4 ppqp; + bvec4 ppqq; + bvec4 pqss; + bvec4 pqst; + bvec4 pqsp; + bvec4 pqsq; + bvec4 pqts; + bvec4 pqtt; + bvec4 pqtp; + bvec4 pqtq; + bvec4 pqps; + bvec4 pqpt; + bvec4 pqpp; + bvec4 pqpq; + bvec4 pqqs; + bvec4 pqqt; + bvec4 pqqp; + bvec4 pqqq; bvec4 qsss; bvec4 qsst; - bvec4 qssr; + bvec4 qssp; bvec4 qssq; bvec4 qsts; bvec4 qstt; - bvec4 qstr; + bvec4 qstp; bvec4 qstq; - bvec4 qsrs; - bvec4 qsrt; - bvec4 qsrr; - bvec4 qsrq; + bvec4 qsps; + bvec4 qspt; + bvec4 qspp; + bvec4 qspq; bvec4 qsqs; bvec4 qsqt; - bvec4 qsqr; + bvec4 qsqp; bvec4 qsqq; bvec4 qtss; bvec4 qtst; - bvec4 qtsr; + bvec4 qtsp; bvec4 qtsq; bvec4 qtts; bvec4 qttt; - bvec4 qttr; + bvec4 qttp; bvec4 qttq; - bvec4 qtrs; - bvec4 qtrt; - bvec4 qtrr; - bvec4 qtrq; + bvec4 qtps; + bvec4 qtpt; + bvec4 qtpp; + bvec4 qtpq; bvec4 qtqs; bvec4 qtqt; - bvec4 qtqr; + bvec4 qtqp; bvec4 qtqq; - bvec4 qrss; - bvec4 qrst; - bvec4 qrsr; - bvec4 qrsq; - bvec4 qrts; - bvec4 qrtt; - bvec4 qrtr; - bvec4 qrtq; - bvec4 qrrs; - bvec4 qrrt; - bvec4 qrrr; - bvec4 qrrq; - bvec4 qrqs; - bvec4 qrqt; - bvec4 qrqr; - bvec4 qrqq; + bvec4 qpss; + bvec4 qpst; + bvec4 qpsp; + bvec4 qpsq; + bvec4 qpts; + bvec4 qptt; + bvec4 qptp; + bvec4 qptq; + bvec4 qpps; + bvec4 qppt; + bvec4 qppp; + bvec4 qppq; + bvec4 qpqs; + bvec4 qpqt; + bvec4 qpqp; + bvec4 qpqq; bvec4 qqss; bvec4 qqst; - bvec4 qqsr; + bvec4 qqsp; bvec4 qqsq; bvec4 qqts; bvec4 qqtt; - bvec4 qqtr; + bvec4 qqtp; bvec4 qqtq; - bvec4 qqrs; - bvec4 qqrt; - bvec4 qqrr; - bvec4 qqrq; + bvec4 qqps; + bvec4 qqpt; + bvec4 qqpp; + bvec4 qqpq; bvec4 qqqs; bvec4 qqqt; - bvec4 qqqr; + bvec4 qqqp; bvec4 qqqq; }; @@ -4903,7 +4903,7 @@ struct DVec4 { double a; double s; double t; - double r; + double p; double q; dvec2 xx; dvec2 xy; @@ -4939,19 +4939,19 @@ struct DVec4 { dvec2 aa; dvec2 ss; dvec2 st; - dvec2 sr; + dvec2 sp; dvec2 sq; dvec2 ts; dvec2 tt; - dvec2 tr; + dvec2 tp; dvec2 tq; - dvec2 rs; - dvec2 rt; - dvec2 rr; - dvec2 rq; + dvec2 ps; + dvec2 pt; + dvec2 pp; + dvec2 pq; dvec2 qs; dvec2 qt; - dvec2 qr; + dvec2 qp; dvec2 qq; dvec3 xxx; dvec3 xxy; @@ -5083,67 +5083,67 @@ struct DVec4 { dvec3 aaa; dvec3 sss; dvec3 sst; - dvec3 ssr; + dvec3 ssp; dvec3 ssq; dvec3 sts; dvec3 stt; - dvec3 str; + dvec3 stp; dvec3 stq; - dvec3 srs; - dvec3 srt; - dvec3 srr; - dvec3 srq; + dvec3 sps; + dvec3 spt; + dvec3 spp; + dvec3 spq; dvec3 sqs; dvec3 sqt; - dvec3 sqr; + dvec3 sqp; dvec3 sqq; dvec3 tss; dvec3 tst; - dvec3 tsr; + dvec3 tsp; dvec3 tsq; dvec3 tts; dvec3 ttt; - dvec3 ttr; + dvec3 ttp; dvec3 ttq; - dvec3 trs; - dvec3 trt; - dvec3 trr; - dvec3 trq; + dvec3 tps; + dvec3 tpt; + dvec3 tpp; + dvec3 tpq; dvec3 tqs; dvec3 tqt; - dvec3 tqr; + dvec3 tqp; dvec3 tqq; - dvec3 rss; - dvec3 rst; - dvec3 rsr; - dvec3 rsq; - dvec3 rts; - dvec3 rtt; - dvec3 rtr; - dvec3 rtq; - dvec3 rrs; - dvec3 rrt; - dvec3 rrr; - dvec3 rrq; - dvec3 rqs; - dvec3 rqt; - dvec3 rqr; - dvec3 rqq; + dvec3 pss; + dvec3 pst; + dvec3 psp; + dvec3 psq; + dvec3 pts; + dvec3 ptt; + dvec3 ptp; + dvec3 ptq; + dvec3 pps; + dvec3 ppt; + dvec3 ppp; + dvec3 ppq; + dvec3 pqs; + dvec3 pqt; + dvec3 pqp; + dvec3 pqq; dvec3 qss; dvec3 qst; - dvec3 qsr; + dvec3 qsp; dvec3 qsq; dvec3 qts; dvec3 qtt; - dvec3 qtr; + dvec3 qtp; dvec3 qtq; - dvec3 qrs; - dvec3 qrt; - dvec3 qrr; - dvec3 qrq; + dvec3 qps; + dvec3 qpt; + dvec3 qpp; + dvec3 qpq; dvec3 qqs; dvec3 qqt; - dvec3 qqr; + dvec3 qqp; dvec3 qqq; dvec4 xxxx; dvec4 xxxy; @@ -5659,259 +5659,259 @@ struct DVec4 { dvec4 aaaa; dvec4 ssss; dvec4 ssst; - dvec4 sssr; + dvec4 sssp; dvec4 sssq; dvec4 ssts; dvec4 sstt; - dvec4 sstr; + dvec4 sstp; dvec4 sstq; - dvec4 ssrs; - dvec4 ssrt; - dvec4 ssrr; - dvec4 ssrq; + dvec4 ssps; + dvec4 sspt; + dvec4 sspp; + dvec4 sspq; dvec4 ssqs; dvec4 ssqt; - dvec4 ssqr; + dvec4 ssqp; dvec4 ssqq; dvec4 stss; dvec4 stst; - dvec4 stsr; + dvec4 stsp; dvec4 stsq; dvec4 stts; dvec4 sttt; - dvec4 sttr; + dvec4 sttp; dvec4 sttq; - dvec4 strs; - dvec4 strt; - dvec4 strr; - dvec4 strq; + dvec4 stps; + dvec4 stpt; + dvec4 stpp; + dvec4 stpq; dvec4 stqs; dvec4 stqt; - dvec4 stqr; + dvec4 stqp; dvec4 stqq; - dvec4 srss; - dvec4 srst; - dvec4 srsr; - dvec4 srsq; - dvec4 srts; - dvec4 srtt; - dvec4 srtr; - dvec4 srtq; - dvec4 srrs; - dvec4 srrt; - dvec4 srrr; - dvec4 srrq; - dvec4 srqs; - dvec4 srqt; - dvec4 srqr; - dvec4 srqq; + dvec4 spss; + dvec4 spst; + dvec4 spsp; + dvec4 spsq; + dvec4 spts; + dvec4 sptt; + dvec4 sptp; + dvec4 sptq; + dvec4 spps; + dvec4 sppt; + dvec4 sppp; + dvec4 sppq; + dvec4 spqs; + dvec4 spqt; + dvec4 spqp; + dvec4 spqq; dvec4 sqss; dvec4 sqst; - dvec4 sqsr; + dvec4 sqsp; dvec4 sqsq; dvec4 sqts; dvec4 sqtt; - dvec4 sqtr; + dvec4 sqtp; dvec4 sqtq; - dvec4 sqrs; - dvec4 sqrt; - dvec4 sqrr; - dvec4 sqrq; + dvec4 sqps; + dvec4 sqpt; + dvec4 sqpp; + dvec4 sqpq; dvec4 sqqs; dvec4 sqqt; - dvec4 sqqr; + dvec4 sqqp; dvec4 sqqq; dvec4 tsss; dvec4 tsst; - dvec4 tssr; + dvec4 tssp; dvec4 tssq; dvec4 tsts; dvec4 tstt; - dvec4 tstr; + dvec4 tstp; dvec4 tstq; - dvec4 tsrs; - dvec4 tsrt; - dvec4 tsrr; - dvec4 tsrq; + dvec4 tsps; + dvec4 tspt; + dvec4 tspp; + dvec4 tspq; dvec4 tsqs; dvec4 tsqt; - dvec4 tsqr; + dvec4 tsqp; dvec4 tsqq; dvec4 ttss; dvec4 ttst; - dvec4 ttsr; + dvec4 ttsp; dvec4 ttsq; dvec4 ttts; dvec4 tttt; - dvec4 tttr; + dvec4 tttp; dvec4 tttq; - dvec4 ttrs; - dvec4 ttrt; - dvec4 ttrr; - dvec4 ttrq; + dvec4 ttps; + dvec4 ttpt; + dvec4 ttpp; + dvec4 ttpq; dvec4 ttqs; dvec4 ttqt; - dvec4 ttqr; + dvec4 ttqp; dvec4 ttqq; - dvec4 trss; - dvec4 trst; - dvec4 trsr; - dvec4 trsq; - dvec4 trts; - dvec4 trtt; - dvec4 trtr; - dvec4 trtq; - dvec4 trrs; - dvec4 trrt; - dvec4 trrr; - dvec4 trrq; - dvec4 trqs; - dvec4 trqt; - dvec4 trqr; - dvec4 trqq; + dvec4 tpss; + dvec4 tpst; + dvec4 tpsp; + dvec4 tpsq; + dvec4 tpts; + dvec4 tptt; + dvec4 tptp; + dvec4 tptq; + dvec4 tpps; + dvec4 tppt; + dvec4 tppp; + dvec4 tppq; + dvec4 tpqs; + dvec4 tpqt; + dvec4 tpqp; + dvec4 tpqq; dvec4 tqss; dvec4 tqst; - dvec4 tqsr; + dvec4 tqsp; dvec4 tqsq; dvec4 tqts; dvec4 tqtt; - dvec4 tqtr; + dvec4 tqtp; dvec4 tqtq; - dvec4 tqrs; - dvec4 tqrt; - dvec4 tqrr; - dvec4 tqrq; + dvec4 tqps; + dvec4 tqpt; + dvec4 tqpp; + dvec4 tqpq; dvec4 tqqs; dvec4 tqqt; - dvec4 tqqr; + dvec4 tqqp; dvec4 tqqq; - dvec4 rsss; - dvec4 rsst; - dvec4 rssr; - dvec4 rssq; - dvec4 rsts; - dvec4 rstt; - dvec4 rstr; - dvec4 rstq; - dvec4 rsrs; - dvec4 rsrt; - dvec4 rsrr; - dvec4 rsrq; - dvec4 rsqs; - dvec4 rsqt; - dvec4 rsqr; - dvec4 rsqq; - dvec4 rtss; - dvec4 rtst; - dvec4 rtsr; - dvec4 rtsq; - dvec4 rtts; - dvec4 rttt; - dvec4 rttr; - dvec4 rttq; - dvec4 rtrs; - dvec4 rtrt; - dvec4 rtrr; - dvec4 rtrq; - dvec4 rtqs; - dvec4 rtqt; - dvec4 rtqr; - dvec4 rtqq; - dvec4 rrss; - dvec4 rrst; - dvec4 rrsr; - dvec4 rrsq; - dvec4 rrts; - dvec4 rrtt; - dvec4 rrtr; - dvec4 rrtq; - dvec4 rrrs; - dvec4 rrrt; - dvec4 rrrr; - dvec4 rrrq; - dvec4 rrqs; - dvec4 rrqt; - dvec4 rrqr; - dvec4 rrqq; - dvec4 rqss; - dvec4 rqst; - dvec4 rqsr; - dvec4 rqsq; - dvec4 rqts; - dvec4 rqtt; - dvec4 rqtr; - dvec4 rqtq; - dvec4 rqrs; - dvec4 rqrt; - dvec4 rqrr; - dvec4 rqrq; - dvec4 rqqs; - dvec4 rqqt; - dvec4 rqqr; - dvec4 rqqq; + dvec4 psss; + dvec4 psst; + dvec4 pssp; + dvec4 pssq; + dvec4 psts; + dvec4 pstt; + dvec4 pstp; + dvec4 pstq; + dvec4 psps; + dvec4 pspt; + dvec4 pspp; + dvec4 pspq; + dvec4 psqs; + dvec4 psqt; + dvec4 psqp; + dvec4 psqq; + dvec4 ptss; + dvec4 ptst; + dvec4 ptsp; + dvec4 ptsq; + dvec4 ptts; + dvec4 pttt; + dvec4 pttp; + dvec4 pttq; + dvec4 ptps; + dvec4 ptpt; + dvec4 ptpp; + dvec4 ptpq; + dvec4 ptqs; + dvec4 ptqt; + dvec4 ptqp; + dvec4 ptqq; + dvec4 ppss; + dvec4 ppst; + dvec4 ppsp; + dvec4 ppsq; + dvec4 ppts; + dvec4 pptt; + dvec4 pptp; + dvec4 pptq; + dvec4 ppps; + dvec4 pppt; + dvec4 pppp; + dvec4 pppq; + dvec4 ppqs; + dvec4 ppqt; + dvec4 ppqp; + dvec4 ppqq; + dvec4 pqss; + dvec4 pqst; + dvec4 pqsp; + dvec4 pqsq; + dvec4 pqts; + dvec4 pqtt; + dvec4 pqtp; + dvec4 pqtq; + dvec4 pqps; + dvec4 pqpt; + dvec4 pqpp; + dvec4 pqpq; + dvec4 pqqs; + dvec4 pqqt; + dvec4 pqqp; + dvec4 pqqq; dvec4 qsss; dvec4 qsst; - dvec4 qssr; + dvec4 qssp; dvec4 qssq; dvec4 qsts; dvec4 qstt; - dvec4 qstr; + dvec4 qstp; dvec4 qstq; - dvec4 qsrs; - dvec4 qsrt; - dvec4 qsrr; - dvec4 qsrq; + dvec4 qsps; + dvec4 qspt; + dvec4 qspp; + dvec4 qspq; dvec4 qsqs; dvec4 qsqt; - dvec4 qsqr; + dvec4 qsqp; dvec4 qsqq; dvec4 qtss; dvec4 qtst; - dvec4 qtsr; + dvec4 qtsp; dvec4 qtsq; dvec4 qtts; dvec4 qttt; - dvec4 qttr; + dvec4 qttp; dvec4 qttq; - dvec4 qtrs; - dvec4 qtrt; - dvec4 qtrr; - dvec4 qtrq; + dvec4 qtps; + dvec4 qtpt; + dvec4 qtpp; + dvec4 qtpq; dvec4 qtqs; dvec4 qtqt; - dvec4 qtqr; + dvec4 qtqp; dvec4 qtqq; - dvec4 qrss; - dvec4 qrst; - dvec4 qrsr; - dvec4 qrsq; - dvec4 qrts; - dvec4 qrtt; - dvec4 qrtr; - dvec4 qrtq; - dvec4 qrrs; - dvec4 qrrt; - dvec4 qrrr; - dvec4 qrrq; - dvec4 qrqs; - dvec4 qrqt; - dvec4 qrqr; - dvec4 qrqq; + dvec4 qpss; + dvec4 qpst; + dvec4 qpsp; + dvec4 qpsq; + dvec4 qpts; + dvec4 qptt; + dvec4 qptp; + dvec4 qptq; + dvec4 qpps; + dvec4 qppt; + dvec4 qppp; + dvec4 qppq; + dvec4 qpqs; + dvec4 qpqt; + dvec4 qpqp; + dvec4 qpqq; dvec4 qqss; dvec4 qqst; - dvec4 qqsr; + dvec4 qqsp; dvec4 qqsq; dvec4 qqts; dvec4 qqtt; - dvec4 qqtr; + dvec4 qqtp; dvec4 qqtq; - dvec4 qqrs; - dvec4 qqrt; - dvec4 qqrr; - dvec4 qqrq; + dvec4 qqps; + dvec4 qqpt; + dvec4 qqpp; + dvec4 qqpq; dvec4 qqqs; dvec4 qqqt; - dvec4 qqqr; + dvec4 qqqp; dvec4 qqqq; }; @@ -6382,7 +6382,7 @@ struct UVec4 { uint a; uint s; uint t; - uint r; + uint p; uint q; uvec2 xx; uvec2 xy; @@ -6418,19 +6418,19 @@ struct UVec4 { uvec2 aa; uvec2 ss; uvec2 st; - uvec2 sr; + uvec2 sp; uvec2 sq; uvec2 ts; uvec2 tt; - uvec2 tr; + uvec2 tp; uvec2 tq; - uvec2 rs; - uvec2 rt; - uvec2 rr; - uvec2 rq; + uvec2 ps; + uvec2 pt; + uvec2 pp; + uvec2 pq; uvec2 qs; uvec2 qt; - uvec2 qr; + uvec2 qp; uvec2 qq; uvec3 xxx; uvec3 xxy; @@ -6562,67 +6562,67 @@ struct UVec4 { uvec3 aaa; uvec3 sss; uvec3 sst; - uvec3 ssr; + uvec3 ssp; uvec3 ssq; uvec3 sts; uvec3 stt; - uvec3 str; + uvec3 stp; uvec3 stq; - uvec3 srs; - uvec3 srt; - uvec3 srr; - uvec3 srq; + uvec3 sps; + uvec3 spt; + uvec3 spp; + uvec3 spq; uvec3 sqs; uvec3 sqt; - uvec3 sqr; + uvec3 sqp; uvec3 sqq; uvec3 tss; uvec3 tst; - uvec3 tsr; + uvec3 tsp; uvec3 tsq; uvec3 tts; uvec3 ttt; - uvec3 ttr; + uvec3 ttp; uvec3 ttq; - uvec3 trs; - uvec3 trt; - uvec3 trr; - uvec3 trq; + uvec3 tps; + uvec3 tpt; + uvec3 tpp; + uvec3 tpq; uvec3 tqs; uvec3 tqt; - uvec3 tqr; + uvec3 tqp; uvec3 tqq; - uvec3 rss; - uvec3 rst; - uvec3 rsr; - uvec3 rsq; - uvec3 rts; - uvec3 rtt; - uvec3 rtr; - uvec3 rtq; - uvec3 rrs; - uvec3 rrt; - uvec3 rrr; - uvec3 rrq; - uvec3 rqs; - uvec3 rqt; - uvec3 rqr; - uvec3 rqq; + uvec3 pss; + uvec3 pst; + uvec3 psp; + uvec3 psq; + uvec3 pts; + uvec3 ptt; + uvec3 ptp; + uvec3 ptq; + uvec3 pps; + uvec3 ppt; + uvec3 ppp; + uvec3 ppq; + uvec3 pqs; + uvec3 pqt; + uvec3 pqp; + uvec3 pqq; uvec3 qss; uvec3 qst; - uvec3 qsr; + uvec3 qsp; uvec3 qsq; uvec3 qts; uvec3 qtt; - uvec3 qtr; + uvec3 qtp; uvec3 qtq; - uvec3 qrs; - uvec3 qrt; - uvec3 qrr; - uvec3 qrq; + uvec3 qps; + uvec3 qpt; + uvec3 qpp; + uvec3 qpq; uvec3 qqs; uvec3 qqt; - uvec3 qqr; + uvec3 qqp; uvec3 qqq; uvec4 xxxx; uvec4 xxxy; @@ -7138,258 +7138,259 @@ struct UVec4 { uvec4 aaaa; uvec4 ssss; uvec4 ssst; - uvec4 sssr; + uvec4 sssp; uvec4 sssq; uvec4 ssts; uvec4 sstt; - uvec4 sstr; + uvec4 sstp; uvec4 sstq; - uvec4 ssrs; - uvec4 ssrt; - uvec4 ssrr; - uvec4 ssrq; + uvec4 ssps; + uvec4 sspt; + uvec4 sspp; + uvec4 sspq; uvec4 ssqs; uvec4 ssqt; - uvec4 ssqr; + uvec4 ssqp; uvec4 ssqq; uvec4 stss; uvec4 stst; - uvec4 stsr; + uvec4 stsp; uvec4 stsq; uvec4 stts; uvec4 sttt; - uvec4 sttr; + uvec4 sttp; uvec4 sttq; - uvec4 strs; - uvec4 strt; - uvec4 strr; - uvec4 strq; + uvec4 stps; + uvec4 stpt; + uvec4 stpp; + uvec4 stpq; uvec4 stqs; uvec4 stqt; - uvec4 stqr; + uvec4 stqp; uvec4 stqq; - uvec4 srss; - uvec4 srst; - uvec4 srsr; - uvec4 srsq; - uvec4 srts; - uvec4 srtt; - uvec4 srtr; - uvec4 srtq; - uvec4 srrs; - uvec4 srrt; - uvec4 srrr; - uvec4 srrq; - uvec4 srqs; - uvec4 srqt; - uvec4 srqr; - uvec4 srqq; + uvec4 spss; + uvec4 spst; + uvec4 spsp; + uvec4 spsq; + uvec4 spts; + uvec4 sptt; + uvec4 sptp; + uvec4 sptq; + uvec4 spps; + uvec4 sppt; + uvec4 sppp; + uvec4 sppq; + uvec4 spqs; + uvec4 spqt; + uvec4 spqp; + uvec4 spqq; uvec4 sqss; uvec4 sqst; - uvec4 sqsr; + uvec4 sqsp; uvec4 sqsq; uvec4 sqts; uvec4 sqtt; - uvec4 sqtr; + uvec4 sqtp; uvec4 sqtq; - uvec4 sqrs; - uvec4 sqrt; - uvec4 sqrr; - uvec4 sqrq; + uvec4 sqps; + uvec4 sqpt; + uvec4 sqpp; + uvec4 sqpq; uvec4 sqqs; uvec4 sqqt; - uvec4 sqqr; + uvec4 sqqp; uvec4 sqqq; uvec4 tsss; uvec4 tsst; - uvec4 tssr; + uvec4 tssp; uvec4 tssq; uvec4 tsts; uvec4 tstt; - uvec4 tstr; + uvec4 tstp; uvec4 tstq; - uvec4 tsrs; - uvec4 tsrt; - uvec4 tsrr; - uvec4 tsrq; + uvec4 tsps; + uvec4 tspt; + uvec4 tspp; + uvec4 tspq; uvec4 tsqs; uvec4 tsqt; - uvec4 tsqr; + uvec4 tsqp; uvec4 tsqq; uvec4 ttss; uvec4 ttst; - uvec4 ttsr; + uvec4 ttsp; uvec4 ttsq; uvec4 ttts; uvec4 tttt; - uvec4 tttr; + uvec4 tttp; uvec4 tttq; - uvec4 ttrs; - uvec4 ttrt; - uvec4 ttrr; - uvec4 ttrq; + uvec4 ttps; + uvec4 ttpt; + uvec4 ttpp; + uvec4 ttpq; uvec4 ttqs; uvec4 ttqt; - uvec4 ttqr; + uvec4 ttqp; uvec4 ttqq; - uvec4 trss; - uvec4 trst; - uvec4 trsr; - uvec4 trsq; - uvec4 trts; - uvec4 trtt; - uvec4 trtr; - uvec4 trtq; - uvec4 trrs; - uvec4 trrt; - uvec4 trrr; - uvec4 trrq; - uvec4 trqs; - uvec4 trqt; - uvec4 trqr; - uvec4 trqq; + uvec4 tpss; + uvec4 tpst; + uvec4 tpsp; + uvec4 tpsq; + uvec4 tpts; + uvec4 tptt; + uvec4 tptp; + uvec4 tptq; + uvec4 tpps; + uvec4 tppt; + uvec4 tppp; + uvec4 tppq; + uvec4 tpqs; + uvec4 tpqt; + uvec4 tpqp; + uvec4 tpqq; uvec4 tqss; uvec4 tqst; - uvec4 tqsr; + uvec4 tqsp; uvec4 tqsq; uvec4 tqts; uvec4 tqtt; - uvec4 tqtr; + uvec4 tqtp; uvec4 tqtq; - uvec4 tqrs; - uvec4 tqrt; - uvec4 tqrr; - uvec4 tqrq; + uvec4 tqps; + uvec4 tqpt; + uvec4 tqpp; + uvec4 tqpq; uvec4 tqqs; uvec4 tqqt; - uvec4 tqqr; + uvec4 tqqp; uvec4 tqqq; - uvec4 rsss; - uvec4 rsst; - uvec4 rssr; - uvec4 rssq; - uvec4 rsts; - uvec4 rstt; - uvec4 rstr; - uvec4 rstq; - uvec4 rsrs; - uvec4 rsrt; - uvec4 rsrr; - uvec4 rsrq; - uvec4 rsqs; - uvec4 rsqt; - uvec4 rsqr; - uvec4 rsqq; - uvec4 rtss; - uvec4 rtst; - uvec4 rtsr; - uvec4 rtsq; - uvec4 rtts; - uvec4 rttt; - uvec4 rttr; - uvec4 rttq; - uvec4 rtrs; - uvec4 rtrt; - uvec4 rtrr; - uvec4 rtrq; - uvec4 rtqs; - uvec4 rtqt; - uvec4 rtqr; - uvec4 rtqq; - uvec4 rrss; - uvec4 rrst; - uvec4 rrsr; - uvec4 rrsq; - uvec4 rrts; - uvec4 rrtt; - uvec4 rrtr; - uvec4 rrtq; - uvec4 rrrs; - uvec4 rrrt; - uvec4 rrrr; - uvec4 rrrq; - uvec4 rrqs; - uvec4 rrqt; - uvec4 rrqr; - uvec4 rrqq; - uvec4 rqss; - uvec4 rqst; - uvec4 rqsr; - uvec4 rqsq; - uvec4 rqts; - uvec4 rqtt; - uvec4 rqtr; - uvec4 rqtq; - uvec4 rqrs; - uvec4 rqrt; - uvec4 rqrr; - uvec4 rqrq; - uvec4 rqqs; - uvec4 rqqt; - uvec4 rqqr; - uvec4 rqqq; + uvec4 psss; + uvec4 psst; + uvec4 pssp; + uvec4 pssq; + uvec4 psts; + uvec4 pstt; + uvec4 pstp; + uvec4 pstq; + uvec4 psps; + uvec4 pspt; + uvec4 pspp; + uvec4 pspq; + uvec4 psqs; + uvec4 psqt; + uvec4 psqp; + uvec4 psqq; + uvec4 ptss; + uvec4 ptst; + uvec4 ptsp; + uvec4 ptsq; + uvec4 ptts; + uvec4 pttt; + uvec4 pttp; + uvec4 pttq; + uvec4 ptps; + uvec4 ptpt; + uvec4 ptpp; + uvec4 ptpq; + uvec4 ptqs; + uvec4 ptqt; + uvec4 ptqp; + uvec4 ptqq; + uvec4 ppss; + uvec4 ppst; + uvec4 ppsp; + uvec4 ppsq; + uvec4 ppts; + uvec4 pptt; + uvec4 pptp; + uvec4 pptq; + uvec4 ppps; + uvec4 pppt; + uvec4 pppp; + uvec4 pppq; + uvec4 ppqs; + uvec4 ppqt; + uvec4 ppqp; + uvec4 ppqq; + uvec4 pqss; + uvec4 pqst; + uvec4 pqsp; + uvec4 pqsq; + uvec4 pqts; + uvec4 pqtt; + uvec4 pqtp; + uvec4 pqtq; + uvec4 pqps; + uvec4 pqpt; + uvec4 pqpp; + uvec4 pqpq; + uvec4 pqqs; + uvec4 pqqt; + uvec4 pqqp; + uvec4 pqqq; uvec4 qsss; uvec4 qsst; - uvec4 qssr; + uvec4 qssp; uvec4 qssq; uvec4 qsts; uvec4 qstt; - uvec4 qstr; + uvec4 qstp; uvec4 qstq; - uvec4 qsrs; - uvec4 qsrt; - uvec4 qsrr; - uvec4 qsrq; + uvec4 qsps; + uvec4 qspt; + uvec4 qspp; + uvec4 qspq; uvec4 qsqs; uvec4 qsqt; - uvec4 qsqr; + uvec4 qsqp; uvec4 qsqq; uvec4 qtss; uvec4 qtst; - uvec4 qtsr; + uvec4 qtsp; uvec4 qtsq; uvec4 qtts; uvec4 qttt; - uvec4 qttr; + uvec4 qttp; uvec4 qttq; - uvec4 qtrs; - uvec4 qtrt; - uvec4 qtrr; - uvec4 qtrq; + uvec4 qtps; + uvec4 qtpt; + uvec4 qtpp; + uvec4 qtpq; uvec4 qtqs; uvec4 qtqt; - uvec4 qtqr; + uvec4 qtqp; uvec4 qtqq; - uvec4 qrss; - uvec4 qrst; - uvec4 qrsr; - uvec4 qrsq; - uvec4 qrts; - uvec4 qrtt; - uvec4 qrtr; - uvec4 qrtq; - uvec4 qrrs; - uvec4 qrrt; - uvec4 qrrr; - uvec4 qrrq; - uvec4 qrqs; - uvec4 qrqt; - uvec4 qrqr; - uvec4 qrqq; + uvec4 qpss; + uvec4 qpst; + uvec4 qpsp; + uvec4 qpsq; + uvec4 qpts; + uvec4 qptt; + uvec4 qptp; + uvec4 qptq; + uvec4 qpps; + uvec4 qppt; + uvec4 qppp; + uvec4 qppq; + uvec4 qpqs; + uvec4 qpqt; + uvec4 qpqp; + uvec4 qpqq; uvec4 qqss; uvec4 qqst; - uvec4 qqsr; + uvec4 qqsp; uvec4 qqsq; uvec4 qqts; uvec4 qqtt; - uvec4 qqtr; + uvec4 qqtp; uvec4 qqtq; - uvec4 qqrs; - uvec4 qqrt; - uvec4 qqrr; - uvec4 qqrq; + uvec4 qqps; + uvec4 qqpt; + uvec4 qqpp; + uvec4 qqpq; uvec4 qqqs; uvec4 qqqt; - uvec4 qqqr; + uvec4 qqqp; uvec4 qqqq; -}; \ No newline at end of file +}; + diff --git a/src/test/java/VectorStructGen.java b/src/test/java/VectorStructGen.java new file mode 100644 index 0000000..f508075 --- /dev/null +++ b/src/test/java/VectorStructGen.java @@ -0,0 +1,76 @@ +import java.io.IOException; +import java.io.PrintStream; +import java.io.PrintWriter; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.function.Consumer; + +public class VectorStructGen { + private static final String[][] types = new String[][] { + { + "Vec", "vec", "float" + }, + { + "IVec", "ivec", "int" + }, + { + "BVec", "bvec", "bool" + }, + { + "DVec", "dvec", "double" + }, + { + "UVec", "uvec", "uint" + } + }; + private static final char[][] groups = new char[][] { + "xyzw".toCharArray(), + "rgba".toCharArray(), + "stpq".toCharArray() + }; + + public static void main(String[] args) throws IOException { + var out = new PrintWriter(Files.newBufferedWriter(Path.of("glsl-vector-structs.glsl"))); + out.println("int length();"); + for (var type: types) { + generateStruct(type, out); + } + out.close(); + } + + private static void permute(char[] symbols, int symbolCount, int length, Consumer callback) { + int permutations = 1; + for (int i = 0; i < length; i++) { + permutations *= symbolCount; + } + var sb = new StringBuilder(); + for (int i = 0; i < permutations; i++) { + sb.setLength(0); + int current = i; + for (int x = 0; x < length; x++) { + sb.append(symbols[current % symbolCount]); + current /= symbolCount; + } + sb.reverse(); + callback.accept(sb.toString()); + } + } + + private static void generateStruct(String[] type, PrintWriter out) { + var vec = type[1]; + var scalar = type[2]; + for (int source = 2; source <= 4; source++) { + out.printf("struct %s%d {\n", type[0], source); + for (int target = 1; target <= 4; target++) { + String pfx = target == 1 ? scalar : vec + target; + for (var group: groups) { + permute(group, source, target, (str) -> { + out.printf(" %s %s;\n", pfx, str); + }); + } + } + out.println("};\n"); + } + } +} From 925632dce852bb47036bdb90d56bb43dfd81e904 Mon Sep 17 00:00:00 2001 From: FalsePattern Date: Tue, 14 Jan 2025 02:33:02 +0100 Subject: [PATCH 2/5] matrix * vector returns vector (cherry picked from commit 07ce855ad406042283042b62ee3f34eead2c11ef) --- .../kotlin/glsl/plugin/psi/named/types/builtins/GlslMatrix.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/glsl/plugin/psi/named/types/builtins/GlslMatrix.kt b/src/main/kotlin/glsl/plugin/psi/named/types/builtins/GlslMatrix.kt index d89d070..b233fa3 100644 --- a/src/main/kotlin/glsl/plugin/psi/named/types/builtins/GlslMatrix.kt +++ b/src/main/kotlin/glsl/plugin/psi/named/types/builtins/GlslMatrix.kt @@ -45,7 +45,7 @@ abstract class GlslMatrix(node: ASTNode) : GlslBuiltinType(node) { when (other) { is GlslScalar -> return this is GlslVector -> { - if (operation == "*") return this + if (operation == "*") return other val msg = GlslErrorCode.DOES_NOT_OPERATE_ON.message.format(operation, name, other.name) glslError = GlslError(GlslErrorCode.DOES_NOT_OPERATE_ON, msg) return this From 9c19617634cb3ba9036ed956c04262ca60b3c1ee Mon Sep 17 00:00:00 2001 From: FalsePattern Date: Tue, 14 Jan 2025 02:54:05 +0100 Subject: [PATCH 3/5] added compatibility profile uniforms from khronos spec (cherry picked from commit 5c6dee9f47f31bc113d12521861eaddc2a212e2b) --- .../glsl-shader-variables.glsl | 97 ++++++++++++++++++- 1 file changed, 96 insertions(+), 1 deletion(-) diff --git a/src/main/resources/builtin-objects/glsl-shader-variables.glsl b/src/main/resources/builtin-objects/glsl-shader-variables.glsl index 89ac875..ed73ab8 100644 --- a/src/main/resources/builtin-objects/glsl-shader-variables.glsl +++ b/src/main/resources/builtin-objects/glsl-shader-variables.glsl @@ -118,4 +118,99 @@ struct TESE { in vec3 gl_TessCoord; patch in float gl_TessLevelOuter[4]; patch in float gl_TessLevelInner[2]; -}; \ No newline at end of file +}; + +//Compatibility profile +struct COMPAT { + mat4 gl_ModelViewMatrix; + mat4 gl_ProjectionMatrix; + mat4 gl_ModelViewProjectionMatrix; + mat4 gl_TextureMatrix[]; + mat3 gl_NormalMatrix; + mat4 gl_ModelViewMatrixInverse; + mat4 gl_ProjectionMatrixInverse; + mat4 gl_ModelViewProjectionMatrixInverse; + mat4 gl_TextureMatrixInverse[]; + mat4 gl_ModelViewMatrixTranspose; + mat4 gl_ProjectionMatrixTranspose; + mat4 gl_ModelViewProjectionMatrixTranspose; + mat4 gl_TextureMatrixTranspose[]; + mat4 gl_ModelViewMatrixInverseTranspose; + mat4 gl_ProjectionMatrixInverseTranspose; + mat4 gl_ModelViewProjectionMatrixInverseTranspose; + mat4 gl_TextureMatrixInverseTranspose[]; + float gl_NormalScale; + vec4 gl_ClipPlane[]; + struct gl_PointParameters { + float size; + float sizeMin; + float sizeMax; + float fadeThresholdSize; + float distanceConstantAttenuation; + float distanceLinearAttenuation; + float distanceQuadraticAttenuation; + } gl_Point; + struct gl_MaterialParameters { + vec4 emission; + vec4 ambient; + vec4 diffuse; + vec4 specular; + float shininess; + } gl_FrontMaterial; + struct gl_MaterialParameters { + vec4 emission; + vec4 ambient; + vec4 diffuse; + vec4 specular; + float shininess; + } gl_BackMaterial; + struct gl_LightSourceParameters { + vec4 ambient; + vec4 diffuse; + vec4 specular; + vec4 position; + vec4 halfVector; + vec3 spotDirection; + float spotExponent; + float spotCutoff; + float spotCosCutoff; + float constantAttenuation; + float linearAttenuation; + float quadraticAttenuation; + } gl_LightSource[]; + struct gl_LightModelParameters { + vec4 ambient; + } gl_LightModel; + struct gl_LightModelProducts { + vec4 sceneColor; + } gl_FrontLightModelProduct; + struct gl_LightModelProducts { + vec4 sceneColor; + } gl_BackLightModelProduct; + struct gl_LightProducts { + vec4 ambient; + vec4 diffuse; + vec4 specular; + } gl_FrontLightProduct[]; + struct gl_LightProducts { + vec4 ambient; + vec4 diffuse; + vec4 specular; + } gl_BackLightProduct[]; + vec4 gl_TextureEnvColor[]; + vec4 gl_EyePlaneS[]; + vec4 gl_EyePlaneT[]; + vec4 gl_EyePlaneR[]; + vec4 gl_EyePlaneQ[]; + vec4 gl_ObjectPlaneS[]; + vec4 gl_ObjectPlaneT[]; + vec4 gl_ObjectPlaneR[]; + vec4 gl_ObjectPlaneQ[]; + struct gl_FogParameters { + vec4 color; + float density; + float start; + float end; + float scale; + } gl_Fog; +} \ No newline at end of file From 8cd44cbad4a75792f6b704a0b7e26ffb19921bf4 Mon Sep 17 00:00:00 2001 From: FalsePattern Date: Tue, 14 Jan 2025 04:17:34 +0100 Subject: [PATCH 4/5] add ftransform() builtin func (cherry picked from commit 933d222a56ce4fa891d80ab550e6d2562ef34cba) --- src/main/resources/builtin-objects/glsl-builtin-functions.glsl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/builtin-objects/glsl-builtin-functions.glsl b/src/main/resources/builtin-objects/glsl-builtin-functions.glsl index 224a317..fccffa0 100644 --- a/src/main/resources/builtin-objects/glsl-builtin-functions.glsl +++ b/src/main/resources/builtin-objects/glsl-builtin-functions.glsl @@ -1962,3 +1962,4 @@ uint usubBorrow(highp uint x, highp uint y, out lowp uint borrow); uvec2 usubBorrow(highp uvec2 x, highp uvec2 y, out lowp uvec2 borrow); uvec3 usubBorrow(highp uvec3 x, highp uvec3 y, out lowp uvec3 borrow); uvec4 usubBorrow(highp uvec4 x, highp uvec4 y, out lowp uvec4 borrow); +vec4 ftransform(); \ No newline at end of file From 15a89ab9b3c75a95dbb5bb75b42fa6bec717282d Mon Sep 17 00:00:00 2001 From: FalsePattern Date: Tue, 14 Jan 2025 22:26:47 +0100 Subject: [PATCH 5/5] fix nested structs from the shader variable builtins being pulled in (cherry picked from commit f387dda2d9b765583862bf29d45171842b8d214c) --- src/main/kotlin/glsl/plugin/utils/GlslBuiltinUtils.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/glsl/plugin/utils/GlslBuiltinUtils.kt b/src/main/kotlin/glsl/plugin/utils/GlslBuiltinUtils.kt index e38bb34..3b6f5dc 100644 --- a/src/main/kotlin/glsl/plugin/utils/GlslBuiltinUtils.kt +++ b/src/main/kotlin/glsl/plugin/utils/GlslBuiltinUtils.kt @@ -4,6 +4,7 @@ import com.intellij.openapi.project.ProjectManager import com.intellij.psi.PsiFileFactory import com.intellij.psi.util.PsiTreeUtil.findChildOfType import com.intellij.psi.util.PsiTreeUtil.findChildrenOfType +import com.intellij.psi.util.findParentOfType import glsl.data.ShaderType import glsl.data.ShaderType.* import glsl.plugin.language.GlslFile @@ -111,7 +112,7 @@ object GlslBuiltinUtils { */ private fun setShaderVariables() { val shaderVariablesFile = getBuiltinFile("glsl-shader-variables") - val structSpecifiers = findChildrenOfType(shaderVariablesFile, GlslStructSpecifier::class.java).toList() + val structSpecifiers = findChildrenOfType(shaderVariablesFile, GlslStructSpecifier::class.java).filter { it.findParentOfType() == null }.toList() // Initializes map with ShaderType enum shaderVariables = EnumMap(ShaderType::class.java) val allShaderVariables = hashMapOf()