struct FSIn { @builtin(front_facing) sk_Clockwise: bool, @builtin(position) sk_FragCoord: vec4, }; struct FSOut { @location(0) sk_FragColor: vec4, }; fn getColor_h4h(c: f32) -> vec4 { return vec4(c); } fn getFragCoordAugmentedColor_h4h(_stageIn: FSIn, c: f32) -> vec4 { return vec4(_stageIn.sk_FragCoord.xyxy * vec4(getColor_h4h(c))); } fn writeColorToOutput_vh(_stageOut: ptr, c: f32) { (*_stageOut).sk_FragColor = getColor_h4h(c); } fn writeToOutput_v(_stageOut: ptr) { writeColorToOutput_vh(_stageOut, 1.0); } fn modifyOutputColor_v(_stageIn: FSIn, _stageOut: ptr) { (*_stageOut).sk_FragColor += getFragCoordAugmentedColor_h4h(_stageIn, 2.0); } fn main(_stageIn: FSIn, _stageOut: ptr) { writeToOutput_v(_stageOut); modifyOutputColor_v(_stageIn, _stageOut); } @fragment fn fragmentMain(_stageIn: FSIn) -> FSOut { var _stageOut: FSOut; main(_stageIn, &_stageOut); return _stageOut; }