cover.vert 975 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #version 310 es
  2. // SPDX-License-Identifier: Unlicense OR MIT
  3. #extension GL_GOOGLE_include_directive : enable
  4. precision highp float;
  5. #include "common.h"
  6. layout(push_constant) uniform Block {
  7. vec4 transform;
  8. vec4 uvCoverTransform;
  9. vec4 uvTransformR1;
  10. vec4 uvTransformR2;
  11. // fbo is set if blitting to a FBO, otherwise the window.
  12. float fbo;
  13. } _block;
  14. layout(location = 0) in vec2 pos;
  15. layout(location = 0) out vec2 vCoverUV;
  16. layout(location = 1) in vec2 uv;
  17. layout(location = 1) out vec2 vUV;
  18. void main() {
  19. vec2 p = vec2(pos*_block.transform.xy + _block.transform.zw);
  20. if (_block.fbo != 0.0) {
  21. gl_Position = vec4(transform3x2(fboTransform, vec3(p, 0)), 1);
  22. } else {
  23. gl_Position = vec4(transform3x2(windowTransform, vec3(p, 0)), 1);
  24. }
  25. vUV = transform3x2(m3x2(_block.uvTransformR1.xyz, _block.uvTransformR2.xyz), vec3(uv,1)).xy;
  26. vec3 uv3 = vec3(uv, 1.0);
  27. vCoverUV = (uv3*vec3(_block.uvCoverTransform.xy, 1.0)+vec3(_block.uvCoverTransform.zw, 0.0)).xy;
  28. }