Ui.ankiprog 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <!--
  2. Copyright (C) 2009-2017, Panagiotis Christopoulos Charitos and contributors.
  3. All rights reserved.
  4. Code licensed under the BSD License.
  5. http://www.anki3d.org/LICENSE
  6. -->
  7. <shaderProgram>
  8. <mutators>
  9. <mutator name="TEXTURE_TYPE" values="0 1"/> <!-- 0: no tex, 1: rgba tex -->
  10. </mutators>
  11. <shaders>
  12. <shader type="vert">
  13. <source><![CDATA[
  14. #include "shaders/Common.glsl"
  15. layout(location = 0) in vec2 in_pos;
  16. layout(location = 1) in vec2 in_uv;
  17. layout(location = 2) in vec4 in_col;
  18. #if TEXTURE_TYPE > 0
  19. layout(location = 0) out vec2 out_uv;
  20. #endif
  21. layout(location = 1) out vec4 out_col;
  22. out gl_PerVertex
  23. {
  24. vec4 gl_Position;
  25. };
  26. layout(ANKI_UBO_BINDING(0, 0)) uniform u_
  27. {
  28. vec4 u_transform; // x: x scale, y: y scale, z: x transl, w: y transl
  29. };
  30. void main()
  31. {
  32. #if TEXTURE_TYPE > 0
  33. out_uv = in_uv;
  34. #endif
  35. out_col = in_col;
  36. vec2 pos = u_transform.xy * in_pos + u_transform.zw;
  37. gl_Position = vec4(pos, 0.0, 1.0);
  38. }
  39. ]]></source>
  40. </shader>
  41. <shader type="frag">
  42. <source><![CDATA[
  43. #include "shaders/Common.glsl"
  44. #if TEXTURE_TYPE > 0
  45. layout(location = 0) in vec2 in_uv;
  46. #endif
  47. layout(location = 1) in vec4 in_col;
  48. layout(location = 0) out vec4 out_col;
  49. #if TEXTURE_TYPE > 0
  50. layout(ANKI_TEX_BINDING(0, 0)) uniform sampler2D u_tex;
  51. #endif
  52. void main()
  53. {
  54. #if TEXTURE_TYPE == 0
  55. out_col = in_col;
  56. #elif TEXTURE_TYPE == 1
  57. out_col = in_col * texture(u_tex, in_uv);
  58. #endif
  59. }
  60. ]]></source>
  61. </shader>
  62. </shaders>
  63. </shaderProgram>