xref: /aosp_15_r20/external/skia/resources/sksl/shared/InoutParameters.sksl (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1uniform half4 colorGreen;
2
3inline void outParameterWrite(out half4 x) {
4    x = colorGreen;
5}
6
7inline void outParameterWriteIndirect(out half4 c) {
8    outParameterWrite(c);
9}
10
11inline void inoutParameterWrite(inout half4 x) {
12    x *= x;
13}
14
15inline void inoutParameterWriteIndirect(inout half4 x) {
16    inoutParameterWrite(x);
17}
18
19inline void inoutParameterRead(inout half4 x) {
20    half4 scratch = x * x;
21}
22
23inline void inoutParameterIgnore(inout half4 x) {
24    half4 scratch = colorGreen * colorGreen;
25}
26
27half4 main(float2 coords) {
28    half4 c;
29
30    // These functions write to their `out` param.
31    outParameterWrite(c);
32    outParameterWriteIndirect(c);
33    inoutParameterWrite(c);
34    inoutParameterWriteIndirect(c);
35
36    // These functions don't write to their `out` param.
37    inoutParameterRead(c);
38    inoutParameterIgnore(c);
39
40    return c;
41}
42