400.vert 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #version 400 core
  2. in double d; // ERROR, no doubles
  3. in dvec3 d3; // ERROR, no doubles
  4. in dmat4 dm4; // ERROR, no doubles
  5. // function selection under type conversion
  6. void foo1(double a, uint b) {}
  7. void foo1(double a, int b) {}
  8. void foo1(double a, float b) {}
  9. void foo1(double a, double b){}
  10. void foo2(double a, float b) {}
  11. void foo2(double a, double b){}
  12. void foo3(double a, float b) {}
  13. void foo3(float a, double b) {}
  14. void ftd( int, float, double) {}
  15. void ftd( uint, float, double) {}
  16. void ftd(float, double, double) {}
  17. void main()
  18. {
  19. double d;
  20. uint u;
  21. int i;
  22. float f;
  23. foo1(d, d);
  24. foo1(d, u);
  25. foo1(d, i);
  26. foo1(d, f);
  27. foo1(f, d);
  28. foo1(f, u);
  29. foo1(f, i);
  30. foo1(f, f);
  31. foo1(u, d);
  32. foo1(u, u);
  33. foo1(u, i);
  34. foo1(u, f);
  35. foo1(i, d);
  36. foo1(i, u);
  37. foo1(i, i);
  38. foo1(i, f);
  39. foo2(d, d);
  40. foo2(d, u);
  41. foo2(d, i);
  42. foo2(d, f);
  43. foo2(f, d);
  44. foo2(f, u);
  45. foo2(f, i);
  46. foo2(f, f);
  47. foo2(u, d);
  48. foo2(u, u);
  49. foo2(u, i);
  50. foo2(u, f);
  51. foo2(i, d);
  52. foo2(i, u);
  53. foo2(i, i);
  54. foo2(i, f);
  55. foo3(d, d); // ERROR, no match
  56. foo3(d, u);
  57. foo3(d, i);
  58. foo3(d, f);
  59. foo3(f, d);
  60. foo3(f, u); // ERROR, ambiguous
  61. foo3(f, i); // ERROR, ambiguous
  62. foo3(f, f); // ERROR, ambiguous
  63. foo3(u, d);
  64. foo3(u, u); // ERROR, ambiguous
  65. foo3(u, i); // ERROR, ambiguous
  66. foo3(u, f); // ERROR, ambiguous
  67. foo3(i, d);
  68. foo3(i, u); // ERROR, ambiguous
  69. foo3(i, i); // ERROR, ambiguous
  70. foo3(i, f); // ERROR, ambiguous
  71. ftd(i, f, f);
  72. ftd(u, f, f);
  73. }
  74. void itf(int, float, int);
  75. void itf(int, double, int);
  76. void tf()
  77. {
  78. double d;
  79. uint u;
  80. int i;
  81. float f;
  82. itf(i, i, i);
  83. itf(i, u, i);
  84. }