2
0

Ui.ankiprog 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <!--
  2. Copyright (C) 2009-2018, 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 vec4 in_col;
  17. #if TEXTURE_TYPE > 0
  18. layout(location = 2) in vec2 in_uv;
  19. #endif
  20. #if TEXTURE_TYPE > 0
  21. layout(location = 0) out vec2 out_uv;
  22. #endif
  23. layout(location = 1) out vec4 out_col;
  24. out gl_PerVertex
  25. {
  26. vec4 gl_Position;
  27. };
  28. layout(ANKI_UBO_BINDING(0, 0)) uniform u_
  29. {
  30. vec4 u_transform; // x: x scale, y: y scale, z: x transl, w: y transl
  31. };
  32. void main()
  33. {
  34. #if TEXTURE_TYPE > 0
  35. out_uv = in_uv;
  36. #endif
  37. out_col = in_col;
  38. vec2 pos = u_transform.xy * in_pos + u_transform.zw;
  39. gl_Position = vec4(pos, 0.0, 1.0);
  40. }
  41. ]]></source>
  42. </shader>
  43. <shader type="frag">
  44. <source><![CDATA[
  45. #include "shaders/Common.glsl"
  46. #if TEXTURE_TYPE > 0
  47. layout(location = 0) in vec2 in_uv;
  48. #endif
  49. layout(location = 1) in vec4 in_col;
  50. layout(location = 0) out vec4 out_col;
  51. #if TEXTURE_TYPE > 0
  52. layout(ANKI_TEX_BINDING(0, 0)) uniform sampler2D u_tex;
  53. #endif
  54. void main()
  55. {
  56. #if TEXTURE_TYPE == 0
  57. out_col = in_col;
  58. #elif TEXTURE_TYPE == 1
  59. out_col = in_col * texture(u_tex, in_uv);
  60. #endif
  61. }
  62. ]]></source>
  63. </shader>
  64. </shaders>
  65. </shaderProgram>