2
0

draw_rect.kong 633 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #[set(everything)]
  2. const constants: {
  3. pos: float4; // xywh
  4. col: float4;
  5. };
  6. struct vert_in {
  7. pos: float2;
  8. }
  9. struct vert_out {
  10. pos: float4;
  11. col: float4;
  12. }
  13. fun draw_rect_vert(input: vert_in): vert_out {
  14. var output: vert_out;
  15. var cpos: float4 = constants.pos;
  16. output.pos = float4(input.pos, 0.0, 1.0);
  17. output.pos.xy = output.pos.xy * cpos.zw + cpos.xy;
  18. output.pos.xy = output.pos.xy * 2.0 - 1.0;
  19. output.pos.y = -output.pos.y;
  20. output.col = constants.col;
  21. return output;
  22. }
  23. fun draw_rect_frag(input: vert_out): float4 {
  24. return input.col;
  25. }
  26. #[pipe]
  27. struct pipe {
  28. vertex = draw_rect_vert;
  29. fragment = draw_rect_frag;
  30. }