lowp ivec4 imod4_2(lowp ivec4 x)
{
return x - (2 * (x/2));
}
lowp ivec4 parselowbits(lowp int x)
{
// Implement (x % y) where y is known to be the constant 2
// by first dividing x by (8, 4, 2, 1) and then doing a mod
// by (2, 2, 2, 2) to generate an int vector.
lowp ivec4 numerator = ivec4(x);
lowp ivec4 denominator = ivec4(8, 4, 2, 1);
lowp ivec4 modNumerator = numerator / denominator;
lowp ivec4 modResult = imod4_2(modNumerator);
return modResult;
}
lowp ivec4 parsehighbits(lowp int x)
{
// Implement (x % y) where y is known to be the constant 2
// by first dividing by (8*16, 4*16, 2*16, 1*16) and then doing a mod
// by (2, 2, 2, 2) to generate an int vector.
lowp ivec4 numerator = ivec4(x);
lowp ivec4 denominator = ivec4(8*16, 4*16, 2*16, 1*16);
lowp ivec4 modNumerator = numerator / denominator;
lowp ivec4 modResult = imod4_2(modNumerator);
return modResult;
}
bool bitMaskCheck(float value, float check){
return (check == 1.0 &&
(value == 1.0 ||
value == 3.0 ||
value == 5.0 ||
value == 7.0 ||
value == 9.0 ||
value == 11.0 ||
value == 13.0 ||
value == 15.0 ||
value == 17.0 ||
value == 19.0 ||
value == 21.0 ||
value == 23.0 ||
value == 25.0 ||
value == 27.0 ||
value == 29.0 ||
value == 31.0 ||
value == 33.0 ||
value == 35.0 ||
value == 37.0 ||
value == 39.0 ||
value == 41.0 ||
value == 43.0 ||
value == 45.0 ||
value == 47.0 ||
value == 49.0 ||
value == 51.0 ||
value == 53.0 ||
value == 55.0 ||
value == 57.0 ||
value == 59.0 ||
value == 61.0 ||
value == 63.0 ||
value == 65.0 ||
value == 67.0 ||
value == 69.0 ||
value == 71.0 ||
value == 73.0 ||
value == 75.0 ||
value == 77.0 ||
value == 79.0 ||
value == 81.0 ||
value == 83.0 ||
value == 85.0 ||
value == 87.0 ||
value == 89.0 ||
value == 91.0 ||
value == 93.0 ||
value == 95.0 ||
value == 97.0 ||
value == 99.0 ||
value == 101.0 ||
value == 103.0 ||
value == 105.0 ||
value == 107.0 ||
value == 109.0 ||
value == 111.0 ||
value == 113.0 ||
value == 115.0 ||
value == 117.0 ||
value == 119.0 ||
value == 121.0 ||
value == 123.0 ||
value == 125.0 ||
value == 127.0 ||
value == 129.0 ||
value == 131.0 ||
value == 133.0 ||
value == 135.0 ||
value == 137.0 ||
value == 139.0 ||
value == 141.0 ||
value == 143.0 ||
value == 145.0 ||
value == 147.0 ||
value == 149.0 ||
value == 151.0 ||
value == 153.0 ||
value == 155.0 ||
value == 157.0 ||
value == 159.0 ||
value == 161.0 ||
value == 163.0 ||
value == 165.0 ||
value == 167.0 ||
value == 169.0 ||
value == 171.0 ||
value == 173.0 ||
value == 175.0 ||
value == 177.0 ||
value == 179.0 ||
value == 181.0 ||
value == 183.0 ||
value == 185.0 ||
value == 187.0 ||
value == 189.0 ||
value == 191.0 ||
value == 193.0 ||
value == 195.0 ||
value == 197.0 ||
value == 199.0 ||
value == 201.0 ||
value == 203.0 ||
value == 205.0 ||
value == 207.0 ||
value == 209.0 ||
value == 211.0 ||
value == 213.0 ||
value == 215.0 ||
value == 217.0 ||
value == 219.0 ||
value == 221.0 ||
value == 223.0 ||
value == 225.0 ||
value == 227.0 ||
value == 229.0 ||
value == 231.0 ||
value == 233.0 ||
value == 235.0 ||
value == 237.0 ||
value == 239.0 ||
value == 241.0 ||
value == 243.0 ||
value == 245.0 ||
value == 247.0 ||
value == 249.0 ||
value == 251.0 ||
value == 253.0 ||
value == 255.0)) ||
(check == 2.0 &&
(value == 2.0 ||
value == 3.0 ||
value == 6.0 ||
value == 7.0 ||
value == 10.0 ||
value == 11.0 ||
value == 14.0 ||
value == 15.0 ||
value == 18.0 ||
value == 19.0 ||
value == 22.0 ||
value == 23.0 ||
value == 26.0 ||
value == 27.0 ||
value == 30.0 ||
value == 31.0 ||
value == 34.0 ||
value == 35.0 ||
value == 38.0 ||
value == 39.0 ||
value == 42.0 ||
value == 43.0 ||
value == 46.0 ||
value == 47.0 ||
value == 50.0 ||
value == 51.0 ||
value == 54.0 ||
value == 55.0 ||
value == 58.0 ||
value == 59.0 ||
value == 62.0 ||
value == 63.0 ||
value == 66.0 ||
value == 67.0 ||
value == 70.0 ||
value == 71.0 ||
value == 74.0 ||
value == 75.0 ||
value == 78.0 ||
value == 79.0 ||
value == 82.0 ||
value == 83.0 ||
value == 86.0 ||
value == 87.0 ||
value == 90.0 ||
value == 91.0 ||
value == 94.0 ||
value == 95.0 ||
value == 98.0 ||
value == 99.0 ||
value == 102.0 ||
value == 103.0 ||
value == 106.0 ||
value == 107.0 ||
value == 110.0 ||
value == 111.0 ||
value == 114.0 ||
value == 115.0 ||
value == 118.0 ||
value == 119.0 ||
value == 122.0 ||
value == 123.0 ||
value == 126.0 ||
value == 127.0 ||
value == 130.0 ||
value == 131.0 ||
value == 134.0 ||
value == 135.0 ||
value == 138.0 ||
value == 139.0 ||
value == 142.0 ||
value == 143.0 ||
value == 146.0 ||
value == 147.0 ||
value == 150.0 ||
value == 151.0 ||
value == 154.0 ||
value == 155.0 ||
value == 158.0 ||
value == 159.0 ||
value == 162.0 ||
value == 163.0 ||
value == 166.0 ||
value == 167.0 ||
value == 170.0 ||
value == 171.0 ||
value == 174.0 ||
value == 175.0 ||
value == 178.0 ||
value == 179.0 ||
value == 182.0 ||
value == 183.0 ||
value == 186.0 ||
value == 187.0 ||
value == 190.0 ||
value == 191.0 ||
value == 194.0 ||
value == 195.0 ||
value == 198.0 ||
value == 199.0 ||
value == 202.0 ||
value == 203.0 ||
value == 206.0 ||
value == 207.0 ||
value == 210.0 ||
value == 211.0 ||
value == 214.0 ||
value == 215.0 ||
value == 218.0 ||
value == 219.0 ||
value == 222.0 ||
value == 223.0 ||
value == 226.0 ||
value == 227.0 ||
value == 230.0 ||
value == 231.0 ||
value == 234.0 ||
value == 235.0 ||
value == 238.0 ||
value == 239.0 ||
value == 242.0 ||
value == 243.0 ||
value == 246.0 ||
value == 247.0 ||
value == 250.0 ||
value == 251.0 ||
value == 254.0 ||
value == 255.0)) ||
(check == 4.0 &&
(value == 4.0 ||
value == 5.0 ||
value == 6.0 ||
value == 7.0 ||
value == 12.0 ||
value == 13.0 ||
value == 14.0 ||
value == 15.0 ||
value == 20.0 ||
value == 21.0 ||
value == 22.0 ||
value == 23.0 ||
value == 28.0 ||
value == 29.0 ||
value == 30.0 ||
value == 31.0 ||
value == 36.0 ||
value == 37.0 ||
value == 38.0 ||
value == 39.0 ||
value == 44.0 ||
value == 45.0 ||
value == 46.0 ||
value == 47.0 ||
value == 52.0 ||
value == 53.0 ||
value == 54.0 ||
value == 55.0 ||
value == 60.0 ||
value == 61.0 ||
value == 62.0 ||
value == 63.0 ||
value == 68.0 ||
value == 69.0 ||
value == 70.0 ||
value == 71.0 ||
value == 76.0 ||
value == 77.0 ||
value == 78.0 ||
value == 79.0 ||
value == 84.0 ||
value == 85.0 ||
value == 86.0 ||
value == 87.0 ||
value == 92.0 ||
value == 93.0 ||
value == 94.0 ||
value == 95.0 ||
value == 100.0 ||
value == 101.0 ||
value == 102.0 ||
value == 103.0 ||
value == 108.0 ||
value == 109.0 ||
value == 110.0 ||
value == 111.0 ||
value == 116.0 ||
value == 117.0 ||
value == 118.0 ||
value == 119.0 ||
value == 124.0 ||
value == 125.0 ||
value == 126.0 ||
value == 127.0 ||
value == 132.0 ||
value == 133.0 ||
value == 134.0 ||
value == 135.0 ||
value == 140.0 ||
value == 141.0 ||
value == 142.0 ||
value == 143.0 ||
value == 148.0 ||
value == 149.0 ||
value == 150.0 ||
value == 151.0 ||
value == 156.0 ||
value == 157.0 ||
value == 158.0 ||
value == 159.0 ||
value == 164.0 ||
value == 165.0 ||
value == 166.0 ||
value == 167.0 ||
value == 172.0 ||
value == 173.0 ||
value == 174.0 ||
value == 175.0 ||
value == 180.0 ||
value == 181.0 ||
value == 182.0 ||
value == 183.0 ||
value == 188.0 ||
value == 189.0 ||
value == 190.0 ||
value == 191.0 ||
value == 196.0 ||
value == 197.0 ||
value == 198.0 ||
value == 199.0 ||
value == 204.0 ||
value == 205.0 ||
value == 206.0 ||
value == 207.0 ||
value == 212.0 ||
value == 213.0 ||
value == 214.0 ||
value == 215.0 ||
value == 220.0 ||
value == 221.0 ||
value == 222.0 ||
value == 223.0 ||
value == 228.0 ||
value == 229.0 ||
value == 230.0 ||
value == 231.0 ||
value == 236.0 ||
value == 237.0 ||
value == 238.0 ||
value == 239.0 ||
value == 244.0 ||
value == 245.0 ||
value == 246.0 ||
value == 247.0 ||
value == 252.0 ||
value == 253.0 ||
value == 254.0 ||
value == 255.0)) ||
(check == 8.0 &&
(value == 8.0 ||
value == 9.0 ||
value == 10.0 ||
value == 11.0 ||
value == 12.0 ||
value == 13.0 ||
value == 14.0 ||
value == 15.0 ||
value == 24.0 ||
value == 25.0 ||
value == 26.0 ||
value == 27.0 ||
value == 28.0 ||
value == 29.0 ||
value == 30.0 ||
value == 31.0 ||
value == 40.0 ||
value == 41.0 ||
value == 42.0 ||
value == 43.0 ||
value == 44.0 ||
value == 45.0 ||
value == 46.0 ||
value == 47.0 ||
value == 56.0 ||
value == 57.0 ||
value == 58.0 ||
value == 59.0 ||
value == 60.0 ||
value == 61.0 ||
value == 62.0 ||
value == 63.0 ||
value == 72.0 ||
value == 73.0 ||
value == 74.0 ||
value == 75.0 ||
value == 76.0 ||
value == 77.0 ||
value == 78.0 ||
value == 79.0 ||
value == 88.0 ||
value == 89.0 ||
value == 90.0 ||
value == 91.0 ||
value == 92.0 ||
value == 93.0 ||
value == 94.0 ||
value == 95.0 ||
value == 104.0 ||
value == 105.0 ||
value == 106.0 ||
value == 107.0 ||
value == 108.0 ||
value == 109.0 ||
value == 110.0 ||
value == 111.0 ||
value == 120.0 ||
value == 121.0 ||
value == 122.0 ||
value == 123.0 ||
value == 124.0 ||
value == 125.0 ||
value == 126.0 ||
value == 127.0 ||
value == 136.0 ||
value == 137.0 ||
value == 138.0 ||
value == 139.0 ||
value == 140.0 ||
value == 141.0 ||
value == 142.0 ||
value == 143.0 ||
value == 152.0 ||
value == 153.0 ||
value == 154.0 ||
value == 155.0 ||
value == 156.0 ||
value == 157.0 ||
value == 158.0 ||
value == 159.0 ||
value == 168.0 ||
value == 169.0 ||
value == 170.0 ||
value == 171.0 ||
value == 172.0 ||
value == 173.0 ||
value == 174.0 ||
value == 175.0 ||
value == 184.0 ||
value == 185.0 ||
value == 186.0 ||
value == 187.0 ||
value == 188.0 ||
value == 189.0 ||
value == 190.0 ||
value == 191.0 ||
value == 200.0 ||
value == 201.0 ||
value == 202.0 ||
value == 203.0 ||
value == 204.0 ||
value == 205.0 ||
value == 206.0 ||
value == 207.0 ||
value == 216.0 ||
value == 217.0 ||
value == 218.0 ||
value == 219.0 ||
value == 220.0 ||
value == 221.0 ||
value == 222.0 ||
value == 223.0 ||
value == 232.0 ||
value == 233.0 ||
value == 234.0 ||
value == 235.0 ||
value == 236.0 ||
value == 237.0 ||
value == 238.0 ||
value == 239.0 ||
value == 248.0 ||
value == 249.0 ||
value == 250.0 ||
value == 251.0 ||
value == 252.0 ||
value == 253.0 ||
value == 254.0 ||
value == 255.0)) ||
(check == 16.0 &&
(value == 16.0 ||
value == 17.0 ||
value == 18.0 ||
value == 19.0 ||
value == 20.0 ||
value == 21.0 ||
value == 22.0 ||
value == 23.0 ||
value == 24.0 ||
value == 25.0 ||
value == 26.0 ||
value == 27.0 ||
value == 28.0 ||
value == 29.0 ||
value == 30.0 ||
value == 31.0 ||
value == 48.0 ||
value == 49.0 ||
value == 50.0 ||
value == 51.0 ||
value == 52.0 ||
value == 53.0 ||
value == 54.0 ||
value == 55.0 ||
value == 56.0 ||
value == 57.0 ||
value == 58.0 ||
value == 59.0 ||
value == 60.0 ||
value == 61.0 ||
value == 62.0 ||
value == 63.0 ||
value == 80.0 ||
value == 81.0 ||
value == 82.0 ||
value == 83.0 ||
value == 84.0 ||
value == 85.0 ||
value == 86.0 ||
value == 87.0 ||
value == 88.0 ||
value == 89.0 ||
value == 90.0 ||
value == 91.0 ||
value == 92.0 ||
value == 93.0 ||
value == 94.0 ||
value == 95.0 ||
value == 112.0 ||
value == 113.0 ||
value == 114.0 ||
value == 115.0 ||
value == 116.0 ||
value == 117.0 ||
value == 118.0 ||
value == 119.0 ||
value == 120.0 ||
value == 121.0 ||
value == 122.0 ||
value == 123.0 ||
value == 124.0 ||
value == 125.0 ||
value == 126.0 ||
value == 127.0 ||
value == 144.0 ||
value == 145.0 ||
value == 146.0 ||
value == 147.0 ||
value == 148.0 ||
value == 149.0 ||
value == 150.0 ||
value == 151.0 ||
value == 152.0 ||
value == 153.0 ||
value == 154.0 ||
value == 155.0 ||
value == 156.0 ||
value == 157.0 ||
value == 158.0 ||
value == 159.0 ||
value == 176.0 ||
value == 177.0 ||
value == 178.0 ||
value == 179.0 ||
value == 180.0 ||
value == 181.0 ||
value == 182.0 ||
value == 183.0 ||
value == 184.0 ||
value == 185.0 ||
value == 186.0 ||
value == 187.0 ||
value == 188.0 ||
value == 189.0 ||
value == 190.0 ||
value == 191.0 ||
value == 208.0 ||
value == 209.0 ||
value == 210.0 ||
value == 211.0 ||
value == 212.0 ||
value == 213.0 ||
value == 214.0 ||
value == 215.0 ||
value == 216.0 ||
value == 217.0 ||
value == 218.0 ||
value == 219.0 ||
value == 220.0 ||
value == 221.0 ||
value == 222.0 ||
value == 223.0 ||
value == 240.0 ||
value == 241.0 ||
value == 242.0 ||
value == 243.0 ||
value == 244.0 ||
value == 245.0 ||
value == 246.0 ||
value == 247.0 ||
value == 248.0 ||
value == 249.0 ||
value == 250.0 ||
value == 251.0 ||
value == 252.0 ||
value == 253.0 ||
value == 254.0 ||
value == 255.0)) ||
(check == 32.0 &&
(value == 32.0 ||
value == 33.0 ||
value == 34.0 ||
value == 35.0 ||
value == 36.0 ||
value == 37.0 ||
value == 38.0 ||
value == 39.0 ||
value == 40.0 ||
value == 41.0 ||
value == 42.0 ||
value == 43.0 ||
value == 44.0 ||
value == 45.0 ||
value == 46.0 ||
value == 47.0 ||
value == 48.0 ||
value == 49.0 ||
value == 50.0 ||
value == 51.0 ||
value == 52.0 ||
value == 53.0 ||
value == 54.0 ||
value == 55.0 ||
value == 56.0 ||
value == 57.0 ||
value == 58.0 ||
value == 59.0 ||
value == 60.0 ||
value == 61.0 ||
value == 62.0 ||
value == 63.0 ||
value == 96.0 ||
value == 97.0 ||
value == 98.0 ||
value == 99.0 ||
value == 100.0 ||
value == 101.0 ||
value == 102.0 ||
value == 103.0 ||
value == 104.0 ||
value == 105.0 ||
value == 106.0 ||
value == 107.0 ||
value == 108.0 ||
value == 109.0 ||
value == 110.0 ||
value == 111.0 ||
value == 112.0 ||
value == 113.0 ||
value == 114.0 ||
value == 115.0 ||
value == 116.0 ||
value == 117.0 ||
value == 118.0 ||
value == 119.0 ||
value == 120.0 ||
value == 121.0 ||
value == 122.0 ||
value == 123.0 ||
value == 124.0 ||
value == 125.0 ||
value == 126.0 ||
value == 127.0 ||
value == 160.0 ||
value == 161.0 ||
value == 162.0 ||
value == 163.0 ||
value == 164.0 ||
value == 165.0 ||
value == 166.0 ||
value == 167.0 ||
value == 168.0 ||
value == 169.0 ||
value == 170.0 ||
value == 171.0 ||
value == 172.0 ||
value == 173.0 ||
value == 174.0 ||
value == 175.0 ||
value == 176.0 ||
value == 177.0 ||
value == 178.0 ||
value == 179.0 ||
value == 180.0 ||
value == 181.0 ||
value == 182.0 ||
value == 183.0 ||
value == 184.0 ||
value == 185.0 ||
value == 186.0 ||
value == 187.0 ||
value == 188.0 ||
value == 189.0 ||
value == 190.0 ||
value == 191.0 ||
value == 224.0 ||
value == 225.0 ||
value == 226.0 ||
value == 227.0 ||
value == 228.0 ||
value == 229.0 ||
value == 230.0 ||
value == 231.0 ||
value == 232.0 ||
value == 233.0 ||
value == 234.0 ||
value == 235.0 ||
value == 236.0 ||
value == 237.0 ||
value == 238.0 ||
value == 239.0 ||
value == 240.0 ||
value == 241.0 ||
value == 242.0 ||
value == 243.0 ||
value == 244.0 ||
value == 245.0 ||
value == 246.0 ||
value == 247.0 ||
value == 248.0 ||
value == 249.0 ||
value == 250.0 ||
value == 251.0 ||
value == 252.0 ||
value == 253.0 ||
value == 254.0 ||
value == 255.0)) ||
(check == 64.0 &&
(value == 64.0 ||
value == 65.0 ||
value == 66.0 ||
value == 67.0 ||
value == 68.0 ||
value == 69.0 ||
value == 70.0 ||
value == 71.0 ||
value == 72.0 ||
value == 73.0 ||
value == 74.0 ||
value == 75.0 ||
value == 76.0 ||
value == 77.0 ||
value == 78.0 ||
value == 79.0 ||
value == 80.0 ||
value == 81.0 ||
value == 82.0 ||
value == 83.0 ||
value == 84.0 ||
value == 85.0 ||
value == 86.0 ||
value == 87.0 ||
value == 88.0 ||
value == 89.0 ||
value == 90.0 ||
value == 91.0 ||
value == 92.0 ||
value == 93.0 ||
value == 94.0 ||
value == 95.0 ||
value == 96.0 ||
value == 97.0 ||
value == 98.0 ||
value == 99.0 ||
value == 100.0 ||
value == 101.0 ||
value == 102.0 ||
value == 103.0 ||
value == 104.0 ||
value == 105.0 ||
value == 106.0 ||
value == 107.0 ||
value == 108.0 ||
value == 109.0 ||
value == 110.0 ||
value == 111.0 ||
value == 112.0 ||
value == 113.0 ||
value == 114.0 ||
value == 115.0 ||
value == 116.0 ||
value == 117.0 ||
value == 118.0 ||
value == 119.0 ||
value == 120.0 ||
value == 121.0 ||
value == 122.0 ||
value == 123.0 ||
value == 124.0 ||
value == 125.0 ||
value == 126.0 ||
value == 127.0 ||
value == 192.0 ||
value == 193.0 ||
value == 194.0 ||
value == 195.0 ||
value == 196.0 ||
value == 197.0 ||
value == 198.0 ||
value == 199.0 ||
value == 200.0 ||
value == 201.0 ||
value == 202.0 ||
value == 203.0 ||
value == 204.0 ||
value == 205.0 ||
value == 206.0 ||
value == 207.0 ||
value == 208.0 ||
value == 209.0 ||
value == 210.0 ||
value == 211.0 ||
value == 212.0 ||
value == 213.0 ||
value == 214.0 ||
value == 215.0 ||
value == 216.0 ||
value == 217.0 ||
value == 218.0 ||
value == 219.0 ||
value == 220.0 ||
value == 221.0 ||
value == 222.0 ||
value == 223.0 ||
value == 224.0 ||
value == 225.0 ||
value == 226.0 ||
value == 227.0 ||
value == 228.0 ||
value == 229.0 ||
value == 230.0 ||
value == 231.0 ||
value == 232.0 ||
value == 233.0 ||
value == 234.0 ||
value == 235.0 ||
value == 236.0 ||
value == 237.0 ||
value == 238.0 ||
value == 239.0 ||
value == 240.0 ||
value == 241.0 ||
value == 242.0 ||
value == 243.0 ||
value == 244.0 ||
value == 245.0 ||
value == 246.0 ||
value == 247.0 ||
value == 248.0 ||
value == 249.0 ||
value == 250.0 ||
value == 251.0 ||
value == 252.0 ||
value == 253.0 ||
value == 254.0 ||
value == 255.0)) ||
(check == 128.0 &&
(value == 128.0 ||
value == 129.0 ||
value == 130.0 ||
value == 131.0 ||
value == 132.0 ||
value == 133.0 ||
value == 134.0 ||
value == 135.0 ||
value == 136.0 ||
value == 137.0 ||
value == 138.0 ||
value == 139.0 ||
value == 140.0 ||
value == 141.0 ||
value == 142.0 ||
value == 143.0 ||
value == 144.0 ||
value == 145.0 ||
value == 146.0 ||
value == 147.0 ||
value == 148.0 ||
value == 149.0 ||
value == 150.0 ||
value == 151.0 ||
value == 152.0 ||
value == 153.0 ||
value == 154.0 ||
value == 155.0 ||
value == 156.0 ||
value == 157.0 ||
value == 158.0 ||
value == 159.0 ||
value == 160.0 ||
value == 161.0 ||
value == 162.0 ||
value == 163.0 ||
value == 164.0 ||
value == 165.0 ||
value == 166.0 ||
value == 167.0 ||
value == 168.0 ||
value == 169.0 ||
value == 170.0 ||
value == 171.0 ||
value == 172.0 ||
value == 173.0 ||
value == 174.0 ||
value == 175.0 ||
value == 176.0 ||
value == 177.0 ||
value == 178.0 ||
value == 179.0 ||
value == 180.0 ||
value == 181.0 ||
value == 182.0 ||
value == 183.0 ||
value == 184.0 ||
value == 185.0 ||
value == 186.0 ||
value == 187.0 ||
value == 188.0 ||
value == 189.0 ||
value == 190.0 ||
value == 191.0 ||
value == 192.0 ||
value == 193.0 ||
value == 194.0 ||
value == 195.0 ||
value == 196.0 ||
value == 197.0 ||
value == 198.0 ||
value == 199.0 ||
value == 200.0 ||
value == 201.0 ||
value == 202.0 ||
value == 203.0 ||
value == 204.0 ||
value == 205.0 ||
value == 206.0 ||
value == 207.0 ||
value == 208.0 ||
value == 209.0 ||
value == 210.0 ||
value == 211.0 ||
value == 212.0 ||
value == 213.0 ||
value == 214.0 ||
value == 215.0 ||
value == 216.0 ||
value == 217.0 ||
value == 218.0 ||
value == 219.0 ||
value == 220.0 ||
value == 221.0 ||
value == 222.0 ||
value == 223.0 ||
value == 224.0 ||
value == 225.0 ||
value == 226.0 ||
value == 227.0 ||
value == 228.0 ||
value == 229.0 ||
value == 230.0 ||
value == 231.0 ||
value == 232.0 ||
value == 233.0 ||
value == 234.0 ||
value == 235.0 ||
value == 236.0 ||
value == 237.0 ||
value == 238.0 ||
value == 239.0 ||
value == 240.0 ||
value == 241.0 ||
value == 242.0 ||
value == 243.0 ||
value == 244.0 ||
value == 245.0 ||
value == 246.0 ||
value == 247.0 ||
value == 248.0 ||
value == 249.0 ||
value == 250.0 ||
value == 251.0 ||
value == 252.0 ||
value == 253.0 ||
value == 254.0 ||
value == 255.0));
}
// Usage
// 0b10000
#define MY_BITWISE 16
// 0b10101
float someValue = 21;
if(bitMaskCheck(someValue, MY_BITWISE)){
// some logic here
}
// This is the same as (someValue & MY_BITWISE) == MY_BITWISE
3条答案
按热度按时间gv8xihay1#
所有SM 3兼容(~OpenGL 2.1)的硬件都支持 * 有限 * 的整数功能。这通常是通过用浮点模拟整数来实现的,并且 * 不 * 包括位操作。
对于位运算,需要GLSL 1.3或EXT_gpu_shader4。
如果您只有OpenGL 2.1的原因是您的驱动程序有些过时,那么您可能很幸运仍然有EXT_gpu_shader4(在这种情况下,更新驱动程序可能是一个好主意)。
如果原因是你的显卡根本不支持更好的东西,你就倒霉了。
如果确实具有EXT_gpu_shader4(检查扩展字符串),则可以添加:
到GLSL 1.2着色器,应该可以工作。
nhaq1z212#
这应该能帮你入门。
上述函数作用于输入向量的.r .g等分量的高半字节和低半字节(4位)。当然,您需要读入值并乘以255以进行反规格化。然后,实现AND就很容易了:
yyhrrdl83#
如果你想要按位与
(A & B) == B
,这里有一个非常愚蠢的解决方案(最大值为255):