25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
823 B

  1. #version 450 core
  2. #pragma include ./shared.glsl
  3. #pragma include ../misc/camera.glsl
  4. layout (location = 0) in vec2 inPosMin;
  5. layout (location = 1) in vec2 inPosMax;
  6. layout (location = 2) in vec2 inTexMin;
  7. layout (location = 3) in vec2 inTexMax;
  8. layout (location = 4) in vec4 inColor;
  9. layout (location = 2) uniform vec2 uOffset;
  10. out VertexData vertexData;
  11. void main() {
  12. mat4 ortho = mat4(
  13. vec4(2.0 / uCamera.size.x, 0.0, 0.0, 0.0),
  14. vec4(0.0, -2.0 / uCamera.size.y, 0.0, 0.0),
  15. vec4(0.0, 0.0, 1.0, 0.0),
  16. vec4(-1.0, 1.0, 1.0, 1.0)
  17. );
  18. vertexData.posMin = (ortho * vec4(inPosMin + uOffset, 0.0, 1.0)).xy;
  19. vertexData.posMax = (ortho * vec4(inPosMax + uOffset, 0.0, 1.0)).xy;
  20. vertexData.texMin = inTexMin;
  21. vertexData.texMax = inTexMax;
  22. vertexData.color = inColor;
  23. }