1617a3babSopenharmony_ci#version 140 2617a3babSopenharmony_ci 3617a3babSopenharmony_civoid main() 4617a3babSopenharmony_ci{ 5617a3babSopenharmony_ci struct s { 6617a3babSopenharmony_ci float y[5]; 7617a3babSopenharmony_ci } str; 8617a3babSopenharmony_ci 9617a3babSopenharmony_ci float t; 10617a3babSopenharmony_ci int index = 5; // all indexing is 4 11617a3babSopenharmony_ci 12617a3babSopenharmony_ci str.y[4] = 2.0; // 2.0 13617a3babSopenharmony_ci t = ++str.y[--index]; // 3.0 14617a3babSopenharmony_ci str.y[4] += t; // 6.0 15617a3babSopenharmony_ci t = str.y[4]--; // 5.0 (t = 6.0) 16617a3babSopenharmony_ci str.y[index++] += t; // 11.0 17617a3babSopenharmony_ci --str.y[--index]; // 10.0 18617a3babSopenharmony_ci 19617a3babSopenharmony_ci float x = str.y[4]; 20617a3babSopenharmony_ci ++x; 21617a3babSopenharmony_ci --x; 22617a3babSopenharmony_ci x++; 23617a3babSopenharmony_ci x--; 24617a3babSopenharmony_ci 25617a3babSopenharmony_ci // x is 10.0 26617a3babSopenharmony_ci 27617a3babSopenharmony_ci float y = x * ++x; // 10 * 11 28617a3babSopenharmony_ci float z = y * x--; // 110 * 11 29617a3babSopenharmony_ci 30617a3babSopenharmony_ci // x is 10.0 31617a3babSopenharmony_ci // z is 1210.0 32617a3babSopenharmony_ci 33617a3babSopenharmony_ci vec4 v = vec4(1.0, 2.0, 3.0, 4.0); 34617a3babSopenharmony_ci v.y = v.z--; // (1,3,2,4) 35617a3babSopenharmony_ci v.x = --v.w; // (3,3,2,3) 36617a3babSopenharmony_ci 37617a3babSopenharmony_ci gl_FragColor = z * v;// (3630.0, 3630.0, 2420.0, 3630.0) 38617a3babSopenharmony_ci} 39