@vpmedia/phaser 1.82.0 → 1.83.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.md +2 -2
  2. package/coverage/{lcov-report/block-navigation.js → block-navigation.js} +1 -1
  3. package/coverage/index.html +236 -0
  4. package/coverage/{lcov-report/sorter.js → sorter.js} +21 -7
  5. package/coverage/{lcov-report/core → src}/index.html +23 -23
  6. package/coverage/src/index.js.html +241 -0
  7. package/coverage/src/phaser/core/animation.js.html +1450 -0
  8. package/coverage/src/phaser/core/animation_manager.js.html +1117 -0
  9. package/coverage/src/phaser/core/animation_parser.js.html +373 -0
  10. package/coverage/src/phaser/core/array_set.js.html +562 -0
  11. package/coverage/src/phaser/core/cache.js.html +2404 -0
  12. package/coverage/{lcov-report → src/phaser}/core/const.js.html +284 -284
  13. package/coverage/src/phaser/core/device.js.html +373 -0
  14. package/coverage/src/phaser/core/device_util.js.html +850 -0
  15. package/coverage/src/phaser/core/dom.js.html +1042 -0
  16. package/coverage/src/phaser/core/error_code.js.html +109 -0
  17. package/coverage/src/phaser/core/event_manager.js.html +1264 -0
  18. package/coverage/src/phaser/core/factory.js.html +436 -0
  19. package/coverage/src/phaser/core/frame.js.html +415 -0
  20. package/coverage/src/phaser/core/frame_data.js.html +478 -0
  21. package/coverage/src/phaser/core/frame_util.js.html +169 -0
  22. package/coverage/src/phaser/core/game.js.html +1075 -0
  23. package/coverage/src/phaser/core/index.html +731 -0
  24. package/coverage/src/phaser/core/input.js.html +1576 -0
  25. package/coverage/src/phaser/core/input_handler.js.html +2959 -0
  26. package/coverage/src/phaser/core/input_mouse.js.html +988 -0
  27. package/coverage/src/phaser/core/input_mspointer.js.html +754 -0
  28. package/coverage/src/phaser/core/input_pointer.js.html +1645 -0
  29. package/coverage/src/phaser/core/input_touch.js.html +643 -0
  30. package/coverage/src/phaser/core/loader.js.html +3676 -0
  31. package/coverage/src/phaser/core/loader_parser.js.html +397 -0
  32. package/coverage/src/phaser/core/raf.js.html +184 -0
  33. package/coverage/src/phaser/core/scale_manager.js.html +3082 -0
  34. package/coverage/src/phaser/core/scene.js.html +265 -0
  35. package/coverage/src/phaser/core/scene_manager.js.html +1030 -0
  36. package/coverage/src/phaser/core/signal.js.html +859 -0
  37. package/coverage/src/phaser/core/signal_binding.js.html +388 -0
  38. package/coverage/src/phaser/core/sound.js.html +1678 -0
  39. package/coverage/src/phaser/core/sound_manager.js.html +1594 -0
  40. package/coverage/src/phaser/core/sound_sprite.js.html +265 -0
  41. package/coverage/src/phaser/core/stage.js.html +505 -0
  42. package/coverage/src/phaser/core/time.js.html +829 -0
  43. package/coverage/src/phaser/core/timer.js.html +1231 -0
  44. package/coverage/src/phaser/core/timer_event.js.html +157 -0
  45. package/coverage/src/phaser/core/tween.js.html +1486 -0
  46. package/coverage/src/phaser/core/tween_data.js.html +976 -0
  47. package/coverage/src/phaser/core/tween_easing.js.html +1099 -0
  48. package/coverage/src/phaser/core/tween_manager.js.html +826 -0
  49. package/coverage/src/phaser/core/world.js.html +139 -0
  50. package/coverage/src/phaser/display/bitmap_text.js.html +1423 -0
  51. package/coverage/src/phaser/display/button.js.html +916 -0
  52. package/coverage/src/phaser/display/canvas/buffer.js.html +232 -0
  53. package/coverage/src/phaser/display/canvas/graphics.js.html +766 -0
  54. package/coverage/src/phaser/display/canvas/index.html +206 -0
  55. package/coverage/src/phaser/display/canvas/masker.js.html +184 -0
  56. package/coverage/src/phaser/display/canvas/pool.js.html +445 -0
  57. package/coverage/src/phaser/display/canvas/renderer.js.html +589 -0
  58. package/coverage/src/phaser/display/canvas/tinter.js.html +658 -0
  59. package/coverage/src/phaser/display/canvas/util.js.html +544 -0
  60. package/coverage/src/phaser/display/display_object.js.html +2494 -0
  61. package/coverage/src/phaser/display/graphics.js.html +2815 -0
  62. package/coverage/src/phaser/display/graphics_data.js.html +187 -0
  63. package/coverage/src/phaser/display/graphics_data_util.js.html +139 -0
  64. package/coverage/src/phaser/display/group.js.html +1000 -0
  65. package/coverage/src/phaser/display/image.js.html +1222 -0
  66. package/coverage/src/phaser/display/index.html +266 -0
  67. package/coverage/src/phaser/display/sprite_batch.js.html +121 -0
  68. package/coverage/src/phaser/display/sprite_util.js.html +883 -0
  69. package/coverage/src/phaser/display/text.js.html +4597 -0
  70. package/coverage/src/phaser/display/webgl/abstract_filter.js.html +157 -0
  71. package/coverage/src/phaser/display/webgl/base_texture.js.html +322 -0
  72. package/coverage/src/phaser/display/webgl/blend_manager.js.html +208 -0
  73. package/coverage/src/phaser/display/webgl/earcut.js.html +2137 -0
  74. package/coverage/src/phaser/display/webgl/earcut_node.js.html +160 -0
  75. package/coverage/src/phaser/display/webgl/fast_sprite_batch.js.html +877 -0
  76. package/coverage/src/phaser/display/webgl/filter_manager.js.html +271 -0
  77. package/coverage/src/phaser/display/webgl/filter_texture.js.html +298 -0
  78. package/coverage/src/phaser/display/webgl/graphics.js.html +1942 -0
  79. package/coverage/src/phaser/display/webgl/graphics_data.js.html +214 -0
  80. package/coverage/src/phaser/display/webgl/index.html +386 -0
  81. package/coverage/src/phaser/display/webgl/mask_manager.js.html +199 -0
  82. package/coverage/src/phaser/display/webgl/render_texture.js.html +406 -0
  83. package/coverage/src/phaser/display/webgl/renderer.js.html +1003 -0
  84. package/coverage/src/phaser/display/webgl/shader/complex.js.html +316 -0
  85. package/coverage/src/phaser/display/webgl/shader/fast.js.html +406 -0
  86. package/coverage/src/phaser/display/webgl/shader/index.html +176 -0
  87. package/coverage/src/phaser/display/webgl/shader/normal.js.html +826 -0
  88. package/coverage/src/phaser/display/webgl/shader/primitive.js.html +310 -0
  89. package/coverage/src/phaser/display/webgl/shader/strip.js.html +325 -0
  90. package/coverage/src/phaser/display/webgl/shader_manager.js.html +385 -0
  91. package/coverage/src/phaser/display/webgl/sprite_batch.js.html +1135 -0
  92. package/coverage/src/phaser/display/webgl/stencil_manager.js.html +655 -0
  93. package/coverage/src/phaser/display/webgl/texture.js.html +490 -0
  94. package/coverage/src/phaser/display/webgl/texture_util.js.html +169 -0
  95. package/coverage/src/phaser/display/webgl/util.js.html +451 -0
  96. package/coverage/{lcov-report → src/phaser}/geom/circle.js.html +252 -252
  97. package/coverage/{lcov-report → src/phaser}/geom/ellipse.js.html +79 -79
  98. package/coverage/{lcov-report → src/phaser}/geom/index.html +67 -67
  99. package/coverage/{lcov-report → src/phaser}/geom/line.js.html +287 -287
  100. package/coverage/{lcov-report → src/phaser}/geom/matrix.js.html +135 -135
  101. package/coverage/{lcov-report → src/phaser}/geom/point.js.html +251 -251
  102. package/coverage/{lcov-report → src/phaser}/geom/polygon.js.html +147 -147
  103. package/coverage/{lcov-report → src/phaser}/geom/rectangle.js.html +408 -408
  104. package/coverage/{lcov-report → src/phaser}/geom/rounded_rectangle.js.html +45 -45
  105. package/coverage/{lcov-report → src/phaser}/geom/util/circle.js.html +104 -104
  106. package/coverage/{lcov-report → src/phaser}/geom/util/ellipse.js.html +29 -29
  107. package/coverage/{lcov-report → src/phaser}/geom/util/index.html +76 -76
  108. package/coverage/{lcov-report → src/phaser}/geom/util/line.js.html +123 -123
  109. package/coverage/{lcov-report → src/phaser}/geom/util/matrix.js.html +45 -45
  110. package/coverage/{lcov-report → src/phaser}/geom/util/point.js.html +274 -274
  111. package/coverage/{lcov-report → src/phaser}/geom/util/polygon.js.html +21 -21
  112. package/coverage/{lcov-report → src/phaser}/geom/util/rectangle.js.html +218 -218
  113. package/coverage/{lcov-report → src/phaser}/geom/util/rounded_rectangle.js.html +21 -21
  114. package/coverage/{lcov-report → src/phaser}/util/index.html +28 -28
  115. package/coverage/{lcov-report → src/phaser}/util/math.js.html +283 -283
  116. package/eslint.config.js +5 -3
  117. package/package.json +21 -21
  118. package/pnpm-workspace.yaml +2 -0
  119. package/coverage/clover.xml +0 -1092
  120. package/coverage/coverage-final.json +0 -19
  121. package/coverage/lcov-report/index.html +0 -161
  122. package/coverage/lcov.info +0 -2179
  123. /package/coverage/{lcov-report/base.css → base.css} +0 -0
  124. /package/coverage/{lcov-report/favicon.png → favicon.png} +0 -0
  125. /package/coverage/{lcov-report/prettify.css → prettify.css} +0 -0
  126. /package/coverage/{lcov-report/prettify.js → prettify.js} +0 -0
  127. /package/coverage/{lcov-report/sort-arrow-sprite.png → sort-arrow-sprite.png} +0 -0
@@ -0,0 +1,826 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for src/phaser/display/webgl/shader/normal.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../../../../../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../../../../../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../../../../../index.html">All files</a> / <a href="index.html">src/phaser/display/webgl/shader</a> normal.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">0% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>0/234</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/1</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/1</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">0% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>0/234</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a>
159
+ <a name='L94'></a><a href='#L94'>94</a>
160
+ <a name='L95'></a><a href='#L95'>95</a>
161
+ <a name='L96'></a><a href='#L96'>96</a>
162
+ <a name='L97'></a><a href='#L97'>97</a>
163
+ <a name='L98'></a><a href='#L98'>98</a>
164
+ <a name='L99'></a><a href='#L99'>99</a>
165
+ <a name='L100'></a><a href='#L100'>100</a>
166
+ <a name='L101'></a><a href='#L101'>101</a>
167
+ <a name='L102'></a><a href='#L102'>102</a>
168
+ <a name='L103'></a><a href='#L103'>103</a>
169
+ <a name='L104'></a><a href='#L104'>104</a>
170
+ <a name='L105'></a><a href='#L105'>105</a>
171
+ <a name='L106'></a><a href='#L106'>106</a>
172
+ <a name='L107'></a><a href='#L107'>107</a>
173
+ <a name='L108'></a><a href='#L108'>108</a>
174
+ <a name='L109'></a><a href='#L109'>109</a>
175
+ <a name='L110'></a><a href='#L110'>110</a>
176
+ <a name='L111'></a><a href='#L111'>111</a>
177
+ <a name='L112'></a><a href='#L112'>112</a>
178
+ <a name='L113'></a><a href='#L113'>113</a>
179
+ <a name='L114'></a><a href='#L114'>114</a>
180
+ <a name='L115'></a><a href='#L115'>115</a>
181
+ <a name='L116'></a><a href='#L116'>116</a>
182
+ <a name='L117'></a><a href='#L117'>117</a>
183
+ <a name='L118'></a><a href='#L118'>118</a>
184
+ <a name='L119'></a><a href='#L119'>119</a>
185
+ <a name='L120'></a><a href='#L120'>120</a>
186
+ <a name='L121'></a><a href='#L121'>121</a>
187
+ <a name='L122'></a><a href='#L122'>122</a>
188
+ <a name='L123'></a><a href='#L123'>123</a>
189
+ <a name='L124'></a><a href='#L124'>124</a>
190
+ <a name='L125'></a><a href='#L125'>125</a>
191
+ <a name='L126'></a><a href='#L126'>126</a>
192
+ <a name='L127'></a><a href='#L127'>127</a>
193
+ <a name='L128'></a><a href='#L128'>128</a>
194
+ <a name='L129'></a><a href='#L129'>129</a>
195
+ <a name='L130'></a><a href='#L130'>130</a>
196
+ <a name='L131'></a><a href='#L131'>131</a>
197
+ <a name='L132'></a><a href='#L132'>132</a>
198
+ <a name='L133'></a><a href='#L133'>133</a>
199
+ <a name='L134'></a><a href='#L134'>134</a>
200
+ <a name='L135'></a><a href='#L135'>135</a>
201
+ <a name='L136'></a><a href='#L136'>136</a>
202
+ <a name='L137'></a><a href='#L137'>137</a>
203
+ <a name='L138'></a><a href='#L138'>138</a>
204
+ <a name='L139'></a><a href='#L139'>139</a>
205
+ <a name='L140'></a><a href='#L140'>140</a>
206
+ <a name='L141'></a><a href='#L141'>141</a>
207
+ <a name='L142'></a><a href='#L142'>142</a>
208
+ <a name='L143'></a><a href='#L143'>143</a>
209
+ <a name='L144'></a><a href='#L144'>144</a>
210
+ <a name='L145'></a><a href='#L145'>145</a>
211
+ <a name='L146'></a><a href='#L146'>146</a>
212
+ <a name='L147'></a><a href='#L147'>147</a>
213
+ <a name='L148'></a><a href='#L148'>148</a>
214
+ <a name='L149'></a><a href='#L149'>149</a>
215
+ <a name='L150'></a><a href='#L150'>150</a>
216
+ <a name='L151'></a><a href='#L151'>151</a>
217
+ <a name='L152'></a><a href='#L152'>152</a>
218
+ <a name='L153'></a><a href='#L153'>153</a>
219
+ <a name='L154'></a><a href='#L154'>154</a>
220
+ <a name='L155'></a><a href='#L155'>155</a>
221
+ <a name='L156'></a><a href='#L156'>156</a>
222
+ <a name='L157'></a><a href='#L157'>157</a>
223
+ <a name='L158'></a><a href='#L158'>158</a>
224
+ <a name='L159'></a><a href='#L159'>159</a>
225
+ <a name='L160'></a><a href='#L160'>160</a>
226
+ <a name='L161'></a><a href='#L161'>161</a>
227
+ <a name='L162'></a><a href='#L162'>162</a>
228
+ <a name='L163'></a><a href='#L163'>163</a>
229
+ <a name='L164'></a><a href='#L164'>164</a>
230
+ <a name='L165'></a><a href='#L165'>165</a>
231
+ <a name='L166'></a><a href='#L166'>166</a>
232
+ <a name='L167'></a><a href='#L167'>167</a>
233
+ <a name='L168'></a><a href='#L168'>168</a>
234
+ <a name='L169'></a><a href='#L169'>169</a>
235
+ <a name='L170'></a><a href='#L170'>170</a>
236
+ <a name='L171'></a><a href='#L171'>171</a>
237
+ <a name='L172'></a><a href='#L172'>172</a>
238
+ <a name='L173'></a><a href='#L173'>173</a>
239
+ <a name='L174'></a><a href='#L174'>174</a>
240
+ <a name='L175'></a><a href='#L175'>175</a>
241
+ <a name='L176'></a><a href='#L176'>176</a>
242
+ <a name='L177'></a><a href='#L177'>177</a>
243
+ <a name='L178'></a><a href='#L178'>178</a>
244
+ <a name='L179'></a><a href='#L179'>179</a>
245
+ <a name='L180'></a><a href='#L180'>180</a>
246
+ <a name='L181'></a><a href='#L181'>181</a>
247
+ <a name='L182'></a><a href='#L182'>182</a>
248
+ <a name='L183'></a><a href='#L183'>183</a>
249
+ <a name='L184'></a><a href='#L184'>184</a>
250
+ <a name='L185'></a><a href='#L185'>185</a>
251
+ <a name='L186'></a><a href='#L186'>186</a>
252
+ <a name='L187'></a><a href='#L187'>187</a>
253
+ <a name='L188'></a><a href='#L188'>188</a>
254
+ <a name='L189'></a><a href='#L189'>189</a>
255
+ <a name='L190'></a><a href='#L190'>190</a>
256
+ <a name='L191'></a><a href='#L191'>191</a>
257
+ <a name='L192'></a><a href='#L192'>192</a>
258
+ <a name='L193'></a><a href='#L193'>193</a>
259
+ <a name='L194'></a><a href='#L194'>194</a>
260
+ <a name='L195'></a><a href='#L195'>195</a>
261
+ <a name='L196'></a><a href='#L196'>196</a>
262
+ <a name='L197'></a><a href='#L197'>197</a>
263
+ <a name='L198'></a><a href='#L198'>198</a>
264
+ <a name='L199'></a><a href='#L199'>199</a>
265
+ <a name='L200'></a><a href='#L200'>200</a>
266
+ <a name='L201'></a><a href='#L201'>201</a>
267
+ <a name='L202'></a><a href='#L202'>202</a>
268
+ <a name='L203'></a><a href='#L203'>203</a>
269
+ <a name='L204'></a><a href='#L204'>204</a>
270
+ <a name='L205'></a><a href='#L205'>205</a>
271
+ <a name='L206'></a><a href='#L206'>206</a>
272
+ <a name='L207'></a><a href='#L207'>207</a>
273
+ <a name='L208'></a><a href='#L208'>208</a>
274
+ <a name='L209'></a><a href='#L209'>209</a>
275
+ <a name='L210'></a><a href='#L210'>210</a>
276
+ <a name='L211'></a><a href='#L211'>211</a>
277
+ <a name='L212'></a><a href='#L212'>212</a>
278
+ <a name='L213'></a><a href='#L213'>213</a>
279
+ <a name='L214'></a><a href='#L214'>214</a>
280
+ <a name='L215'></a><a href='#L215'>215</a>
281
+ <a name='L216'></a><a href='#L216'>216</a>
282
+ <a name='L217'></a><a href='#L217'>217</a>
283
+ <a name='L218'></a><a href='#L218'>218</a>
284
+ <a name='L219'></a><a href='#L219'>219</a>
285
+ <a name='L220'></a><a href='#L220'>220</a>
286
+ <a name='L221'></a><a href='#L221'>221</a>
287
+ <a name='L222'></a><a href='#L222'>222</a>
288
+ <a name='L223'></a><a href='#L223'>223</a>
289
+ <a name='L224'></a><a href='#L224'>224</a>
290
+ <a name='L225'></a><a href='#L225'>225</a>
291
+ <a name='L226'></a><a href='#L226'>226</a>
292
+ <a name='L227'></a><a href='#L227'>227</a>
293
+ <a name='L228'></a><a href='#L228'>228</a>
294
+ <a name='L229'></a><a href='#L229'>229</a>
295
+ <a name='L230'></a><a href='#L230'>230</a>
296
+ <a name='L231'></a><a href='#L231'>231</a>
297
+ <a name='L232'></a><a href='#L232'>232</a>
298
+ <a name='L233'></a><a href='#L233'>233</a>
299
+ <a name='L234'></a><a href='#L234'>234</a>
300
+ <a name='L235'></a><a href='#L235'>235</a>
301
+ <a name='L236'></a><a href='#L236'>236</a>
302
+ <a name='L237'></a><a href='#L237'>237</a>
303
+ <a name='L238'></a><a href='#L238'>238</a>
304
+ <a name='L239'></a><a href='#L239'>239</a>
305
+ <a name='L240'></a><a href='#L240'>240</a>
306
+ <a name='L241'></a><a href='#L241'>241</a>
307
+ <a name='L242'></a><a href='#L242'>242</a>
308
+ <a name='L243'></a><a href='#L243'>243</a>
309
+ <a name='L244'></a><a href='#L244'>244</a>
310
+ <a name='L245'></a><a href='#L245'>245</a>
311
+ <a name='L246'></a><a href='#L246'>246</a>
312
+ <a name='L247'></a><a href='#L247'>247</a>
313
+ <a name='L248'></a><a href='#L248'>248</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
314
+ <span class="cline-any cline-no">&nbsp;</span>
315
+ <span class="cline-any cline-neutral">&nbsp;</span>
316
+ <span class="cline-any cline-no">&nbsp;</span>
317
+ <span class="cline-any cline-no">&nbsp;</span>
318
+ <span class="cline-any cline-no">&nbsp;</span>
319
+ <span class="cline-any cline-no">&nbsp;</span>
320
+ <span class="cline-any cline-neutral">&nbsp;</span>
321
+ <span class="cline-any cline-no">&nbsp;</span>
322
+ <span class="cline-any cline-no">&nbsp;</span>
323
+ <span class="cline-any cline-neutral">&nbsp;</span>
324
+ <span class="cline-any cline-no">&nbsp;</span>
325
+ <span class="cline-any cline-no">&nbsp;</span>
326
+ <span class="cline-any cline-neutral">&nbsp;</span>
327
+ <span class="cline-any cline-no">&nbsp;</span>
328
+ <span class="cline-any cline-neutral">&nbsp;</span>
329
+ <span class="cline-any cline-no">&nbsp;</span>
330
+ <span class="cline-any cline-no">&nbsp;</span>
331
+ <span class="cline-any cline-no">&nbsp;</span>
332
+ <span class="cline-any cline-no">&nbsp;</span>
333
+ <span class="cline-any cline-no">&nbsp;</span>
334
+ <span class="cline-any cline-no">&nbsp;</span>
335
+ <span class="cline-any cline-neutral">&nbsp;</span>
336
+ <span class="cline-any cline-no">&nbsp;</span>
337
+ <span class="cline-any cline-neutral">&nbsp;</span>
338
+ <span class="cline-any cline-no">&nbsp;</span>
339
+ <span class="cline-any cline-no">&nbsp;</span>
340
+ <span class="cline-any cline-no">&nbsp;</span>
341
+ <span class="cline-any cline-no">&nbsp;</span>
342
+ <span class="cline-any cline-no">&nbsp;</span>
343
+ <span class="cline-any cline-no">&nbsp;</span>
344
+ <span class="cline-any cline-no">&nbsp;</span>
345
+ <span class="cline-any cline-no">&nbsp;</span>
346
+ <span class="cline-any cline-no">&nbsp;</span>
347
+ <span class="cline-any cline-no">&nbsp;</span>
348
+ <span class="cline-any cline-no">&nbsp;</span>
349
+ <span class="cline-any cline-no">&nbsp;</span>
350
+ <span class="cline-any cline-no">&nbsp;</span>
351
+ <span class="cline-any cline-no">&nbsp;</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-no">&nbsp;</span>
354
+ <span class="cline-any cline-no">&nbsp;</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
357
+ <span class="cline-any cline-no">&nbsp;</span>
358
+ <span class="cline-any cline-no">&nbsp;</span>
359
+ <span class="cline-any cline-no">&nbsp;</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
361
+ <span class="cline-any cline-no">&nbsp;</span>
362
+ <span class="cline-any cline-no">&nbsp;</span>
363
+ <span class="cline-any cline-no">&nbsp;</span>
364
+ <span class="cline-any cline-no">&nbsp;</span>
365
+ <span class="cline-any cline-no">&nbsp;</span>
366
+ <span class="cline-any cline-neutral">&nbsp;</span>
367
+ <span class="cline-any cline-no">&nbsp;</span>
368
+ <span class="cline-any cline-no">&nbsp;</span>
369
+ <span class="cline-any cline-no">&nbsp;</span>
370
+ <span class="cline-any cline-no">&nbsp;</span>
371
+ <span class="cline-any cline-no">&nbsp;</span>
372
+ <span class="cline-any cline-no">&nbsp;</span>
373
+ <span class="cline-any cline-no">&nbsp;</span>
374
+ <span class="cline-any cline-no">&nbsp;</span>
375
+ <span class="cline-any cline-no">&nbsp;</span>
376
+ <span class="cline-any cline-no">&nbsp;</span>
377
+ <span class="cline-any cline-no">&nbsp;</span>
378
+ <span class="cline-any cline-no">&nbsp;</span>
379
+ <span class="cline-any cline-no">&nbsp;</span>
380
+ <span class="cline-any cline-no">&nbsp;</span>
381
+ <span class="cline-any cline-no">&nbsp;</span>
382
+ <span class="cline-any cline-no">&nbsp;</span>
383
+ <span class="cline-any cline-no">&nbsp;</span>
384
+ <span class="cline-any cline-no">&nbsp;</span>
385
+ <span class="cline-any cline-no">&nbsp;</span>
386
+ <span class="cline-any cline-no">&nbsp;</span>
387
+ <span class="cline-any cline-no">&nbsp;</span>
388
+ <span class="cline-any cline-no">&nbsp;</span>
389
+ <span class="cline-any cline-no">&nbsp;</span>
390
+ <span class="cline-any cline-no">&nbsp;</span>
391
+ <span class="cline-any cline-no">&nbsp;</span>
392
+ <span class="cline-any cline-no">&nbsp;</span>
393
+ <span class="cline-any cline-no">&nbsp;</span>
394
+ <span class="cline-any cline-no">&nbsp;</span>
395
+ <span class="cline-any cline-no">&nbsp;</span>
396
+ <span class="cline-any cline-no">&nbsp;</span>
397
+ <span class="cline-any cline-no">&nbsp;</span>
398
+ <span class="cline-any cline-no">&nbsp;</span>
399
+ <span class="cline-any cline-no">&nbsp;</span>
400
+ <span class="cline-any cline-no">&nbsp;</span>
401
+ <span class="cline-any cline-no">&nbsp;</span>
402
+ <span class="cline-any cline-neutral">&nbsp;</span>
403
+ <span class="cline-any cline-no">&nbsp;</span>
404
+ <span class="cline-any cline-no">&nbsp;</span>
405
+ <span class="cline-any cline-no">&nbsp;</span>
406
+ <span class="cline-any cline-no">&nbsp;</span>
407
+ <span class="cline-any cline-no">&nbsp;</span>
408
+ <span class="cline-any cline-no">&nbsp;</span>
409
+ <span class="cline-any cline-no">&nbsp;</span>
410
+ <span class="cline-any cline-no">&nbsp;</span>
411
+ <span class="cline-any cline-no">&nbsp;</span>
412
+ <span class="cline-any cline-no">&nbsp;</span>
413
+ <span class="cline-any cline-no">&nbsp;</span>
414
+ <span class="cline-any cline-no">&nbsp;</span>
415
+ <span class="cline-any cline-no">&nbsp;</span>
416
+ <span class="cline-any cline-no">&nbsp;</span>
417
+ <span class="cline-any cline-no">&nbsp;</span>
418
+ <span class="cline-any cline-no">&nbsp;</span>
419
+ <span class="cline-any cline-no">&nbsp;</span>
420
+ <span class="cline-any cline-no">&nbsp;</span>
421
+ <span class="cline-any cline-no">&nbsp;</span>
422
+ <span class="cline-any cline-no">&nbsp;</span>
423
+ <span class="cline-any cline-no">&nbsp;</span>
424
+ <span class="cline-any cline-no">&nbsp;</span>
425
+ <span class="cline-any cline-no">&nbsp;</span>
426
+ <span class="cline-any cline-no">&nbsp;</span>
427
+ <span class="cline-any cline-no">&nbsp;</span>
428
+ <span class="cline-any cline-no">&nbsp;</span>
429
+ <span class="cline-any cline-no">&nbsp;</span>
430
+ <span class="cline-any cline-no">&nbsp;</span>
431
+ <span class="cline-any cline-no">&nbsp;</span>
432
+ <span class="cline-any cline-no">&nbsp;</span>
433
+ <span class="cline-any cline-no">&nbsp;</span>
434
+ <span class="cline-any cline-no">&nbsp;</span>
435
+ <span class="cline-any cline-no">&nbsp;</span>
436
+ <span class="cline-any cline-no">&nbsp;</span>
437
+ <span class="cline-any cline-no">&nbsp;</span>
438
+ <span class="cline-any cline-no">&nbsp;</span>
439
+ <span class="cline-any cline-no">&nbsp;</span>
440
+ <span class="cline-any cline-no">&nbsp;</span>
441
+ <span class="cline-any cline-no">&nbsp;</span>
442
+ <span class="cline-any cline-no">&nbsp;</span>
443
+ <span class="cline-any cline-no">&nbsp;</span>
444
+ <span class="cline-any cline-no">&nbsp;</span>
445
+ <span class="cline-any cline-no">&nbsp;</span>
446
+ <span class="cline-any cline-neutral">&nbsp;</span>
447
+ <span class="cline-any cline-no">&nbsp;</span>
448
+ <span class="cline-any cline-no">&nbsp;</span>
449
+ <span class="cline-any cline-no">&nbsp;</span>
450
+ <span class="cline-any cline-no">&nbsp;</span>
451
+ <span class="cline-any cline-no">&nbsp;</span>
452
+ <span class="cline-any cline-no">&nbsp;</span>
453
+ <span class="cline-any cline-no">&nbsp;</span>
454
+ <span class="cline-any cline-no">&nbsp;</span>
455
+ <span class="cline-any cline-no">&nbsp;</span>
456
+ <span class="cline-any cline-no">&nbsp;</span>
457
+ <span class="cline-any cline-no">&nbsp;</span>
458
+ <span class="cline-any cline-no">&nbsp;</span>
459
+ <span class="cline-any cline-no">&nbsp;</span>
460
+ <span class="cline-any cline-no">&nbsp;</span>
461
+ <span class="cline-any cline-no">&nbsp;</span>
462
+ <span class="cline-any cline-no">&nbsp;</span>
463
+ <span class="cline-any cline-no">&nbsp;</span>
464
+ <span class="cline-any cline-no">&nbsp;</span>
465
+ <span class="cline-any cline-no">&nbsp;</span>
466
+ <span class="cline-any cline-no">&nbsp;</span>
467
+ <span class="cline-any cline-no">&nbsp;</span>
468
+ <span class="cline-any cline-no">&nbsp;</span>
469
+ <span class="cline-any cline-no">&nbsp;</span>
470
+ <span class="cline-any cline-no">&nbsp;</span>
471
+ <span class="cline-any cline-no">&nbsp;</span>
472
+ <span class="cline-any cline-no">&nbsp;</span>
473
+ <span class="cline-any cline-no">&nbsp;</span>
474
+ <span class="cline-any cline-no">&nbsp;</span>
475
+ <span class="cline-any cline-no">&nbsp;</span>
476
+ <span class="cline-any cline-no">&nbsp;</span>
477
+ <span class="cline-any cline-no">&nbsp;</span>
478
+ <span class="cline-any cline-no">&nbsp;</span>
479
+ <span class="cline-any cline-no">&nbsp;</span>
480
+ <span class="cline-any cline-no">&nbsp;</span>
481
+ <span class="cline-any cline-no">&nbsp;</span>
482
+ <span class="cline-any cline-no">&nbsp;</span>
483
+ <span class="cline-any cline-neutral">&nbsp;</span>
484
+ <span class="cline-any cline-no">&nbsp;</span>
485
+ <span class="cline-any cline-no">&nbsp;</span>
486
+ <span class="cline-any cline-no">&nbsp;</span>
487
+ <span class="cline-any cline-no">&nbsp;</span>
488
+ <span class="cline-any cline-no">&nbsp;</span>
489
+ <span class="cline-any cline-no">&nbsp;</span>
490
+ <span class="cline-any cline-no">&nbsp;</span>
491
+ <span class="cline-any cline-no">&nbsp;</span>
492
+ <span class="cline-any cline-no">&nbsp;</span>
493
+ <span class="cline-any cline-no">&nbsp;</span>
494
+ <span class="cline-any cline-no">&nbsp;</span>
495
+ <span class="cline-any cline-no">&nbsp;</span>
496
+ <span class="cline-any cline-no">&nbsp;</span>
497
+ <span class="cline-any cline-no">&nbsp;</span>
498
+ <span class="cline-any cline-no">&nbsp;</span>
499
+ <span class="cline-any cline-neutral">&nbsp;</span>
500
+ <span class="cline-any cline-no">&nbsp;</span>
501
+ <span class="cline-any cline-no">&nbsp;</span>
502
+ <span class="cline-any cline-no">&nbsp;</span>
503
+ <span class="cline-any cline-no">&nbsp;</span>
504
+ <span class="cline-any cline-no">&nbsp;</span>
505
+ <span class="cline-any cline-no">&nbsp;</span>
506
+ <span class="cline-any cline-no">&nbsp;</span>
507
+ <span class="cline-any cline-no">&nbsp;</span>
508
+ <span class="cline-any cline-no">&nbsp;</span>
509
+ <span class="cline-any cline-no">&nbsp;</span>
510
+ <span class="cline-any cline-no">&nbsp;</span>
511
+ <span class="cline-any cline-no">&nbsp;</span>
512
+ <span class="cline-any cline-no">&nbsp;</span>
513
+ <span class="cline-any cline-no">&nbsp;</span>
514
+ <span class="cline-any cline-no">&nbsp;</span>
515
+ <span class="cline-any cline-no">&nbsp;</span>
516
+ <span class="cline-any cline-no">&nbsp;</span>
517
+ <span class="cline-any cline-no">&nbsp;</span>
518
+ <span class="cline-any cline-no">&nbsp;</span>
519
+ <span class="cline-any cline-no">&nbsp;</span>
520
+ <span class="cline-any cline-no">&nbsp;</span>
521
+ <span class="cline-any cline-no">&nbsp;</span>
522
+ <span class="cline-any cline-no">&nbsp;</span>
523
+ <span class="cline-any cline-no">&nbsp;</span>
524
+ <span class="cline-any cline-no">&nbsp;</span>
525
+ <span class="cline-any cline-no">&nbsp;</span>
526
+ <span class="cline-any cline-no">&nbsp;</span>
527
+ <span class="cline-any cline-no">&nbsp;</span>
528
+ <span class="cline-any cline-no">&nbsp;</span>
529
+ <span class="cline-any cline-no">&nbsp;</span>
530
+ <span class="cline-any cline-no">&nbsp;</span>
531
+ <span class="cline-any cline-no">&nbsp;</span>
532
+ <span class="cline-any cline-no">&nbsp;</span>
533
+ <span class="cline-any cline-no">&nbsp;</span>
534
+ <span class="cline-any cline-no">&nbsp;</span>
535
+ <span class="cline-any cline-no">&nbsp;</span>
536
+ <span class="cline-any cline-no">&nbsp;</span>
537
+ <span class="cline-any cline-no">&nbsp;</span>
538
+ <span class="cline-any cline-no">&nbsp;</span>
539
+ <span class="cline-any cline-no">&nbsp;</span>
540
+ <span class="cline-any cline-no">&nbsp;</span>
541
+ <span class="cline-any cline-no">&nbsp;</span>
542
+ <span class="cline-any cline-no">&nbsp;</span>
543
+ <span class="cline-any cline-no">&nbsp;</span>
544
+ <span class="cline-any cline-no">&nbsp;</span>
545
+ <span class="cline-any cline-no">&nbsp;</span>
546
+ <span class="cline-any cline-no">&nbsp;</span>
547
+ <span class="cline-any cline-no">&nbsp;</span>
548
+ <span class="cline-any cline-no">&nbsp;</span>
549
+ <span class="cline-any cline-neutral">&nbsp;</span>
550
+ <span class="cline-any cline-no">&nbsp;</span>
551
+ <span class="cline-any cline-no">&nbsp;</span>
552
+ <span class="cline-any cline-no">&nbsp;</span>
553
+ <span class="cline-any cline-no">&nbsp;</span>
554
+ <span class="cline-any cline-no">&nbsp;</span>
555
+ <span class="cline-any cline-no">&nbsp;</span>
556
+ <span class="cline-any cline-no">&nbsp;</span>
557
+ <span class="cline-any cline-no">&nbsp;</span>
558
+ <span class="cline-any cline-no">&nbsp;</span>
559
+ <span class="cline-any cline-no">&nbsp;</span>
560
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" >import { v4 as uuidv4 } from 'uuid';<span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" ></span></span></span>
561
+ <span class="cstat-no" title="statement not covered" >import { compileProgram } from '../util.js';</span>
562
+ &nbsp;
563
+ <span class="cstat-no" title="statement not covered" >const defaultVertexSrc = [</span>
564
+ <span class="cstat-no" title="statement not covered" > 'attribute vec2 aVertexPosition;',</span>
565
+ <span class="cstat-no" title="statement not covered" > 'attribute vec2 aTextureCoord;',</span>
566
+ <span class="cstat-no" title="statement not covered" > 'attribute vec4 aColor;',</span>
567
+ &nbsp;
568
+ <span class="cstat-no" title="statement not covered" > 'uniform vec2 projectionVector;',</span>
569
+ <span class="cstat-no" title="statement not covered" > 'uniform vec2 offsetVector;',</span>
570
+ &nbsp;
571
+ <span class="cstat-no" title="statement not covered" > 'varying vec2 vTextureCoord;',</span>
572
+ <span class="cstat-no" title="statement not covered" > 'varying vec4 vColor;',</span>
573
+ &nbsp;
574
+ <span class="cstat-no" title="statement not covered" > 'const vec2 center = vec2(-1.0, 1.0);',</span>
575
+ &nbsp;
576
+ <span class="cstat-no" title="statement not covered" > 'void main(void) {',</span>
577
+ <span class="cstat-no" title="statement not covered" > ' gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);',</span>
578
+ <span class="cstat-no" title="statement not covered" > ' vTextureCoord = aTextureCoord;',</span>
579
+ <span class="cstat-no" title="statement not covered" > ' vColor = vec4(aColor.rgb * aColor.a, aColor.a);',</span>
580
+ <span class="cstat-no" title="statement not covered" > '}',</span>
581
+ <span class="cstat-no" title="statement not covered" >];</span>
582
+ &nbsp;
583
+ <span class="cstat-no" title="statement not covered" >// this shader is used for the default sprite rendering</span>
584
+ &nbsp;
585
+ <span class="cstat-no" title="statement not covered" >export class NormalShader {</span>
586
+ <span class="cstat-no" title="statement not covered" > /**</span>
587
+ <span class="cstat-no" title="statement not covered" > * TBD.</span>
588
+ <span class="cstat-no" title="statement not covered" > * @param {WebGLRenderingContext &amp; { id: number }} gl - TBD.</span>
589
+ <span class="cstat-no" title="statement not covered" > */</span>
590
+ <span class="cstat-no" title="statement not covered" > constructor(gl) {</span>
591
+ <span class="cstat-no" title="statement not covered" > this.gl = gl;</span>
592
+ <span class="cstat-no" title="statement not covered" > this._UID = uuidv4();</span>
593
+ <span class="cstat-no" title="statement not covered" > /** @type {WebGLProgram} */</span>
594
+ <span class="cstat-no" title="statement not covered" > this.program = null;</span>
595
+ <span class="cstat-no" title="statement not covered" > this.fragmentSrc = [</span>
596
+ <span class="cstat-no" title="statement not covered" > 'precision lowp float;',</span>
597
+ <span class="cstat-no" title="statement not covered" > 'varying vec2 vTextureCoord;',</span>
598
+ <span class="cstat-no" title="statement not covered" > 'varying vec4 vColor;',</span>
599
+ <span class="cstat-no" title="statement not covered" > 'uniform sampler2D uSampler;',</span>
600
+ <span class="cstat-no" title="statement not covered" > 'void main(void) {',</span>
601
+ <span class="cstat-no" title="statement not covered" > ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;',</span>
602
+ <span class="cstat-no" title="statement not covered" > '}',</span>
603
+ <span class="cstat-no" title="statement not covered" > ];</span>
604
+ <span class="cstat-no" title="statement not covered" > /** @type {string[]} */</span>
605
+ <span class="cstat-no" title="statement not covered" > this.vertexSrc = null;</span>
606
+ <span class="cstat-no" title="statement not covered" > this.textureCount = 0;</span>
607
+ <span class="cstat-no" title="statement not covered" > this.firstRun = true;</span>
608
+ <span class="cstat-no" title="statement not covered" > this.dirty = true;</span>
609
+ <span class="cstat-no" title="statement not covered" > this.uniforms = {};</span>
610
+ <span class="cstat-no" title="statement not covered" > this.attributes = [];</span>
611
+ <span class="cstat-no" title="statement not covered" > this.init();</span>
612
+ <span class="cstat-no" title="statement not covered" > }</span>
613
+ &nbsp;
614
+ <span class="cstat-no" title="statement not covered" > /**</span>
615
+ <span class="cstat-no" title="statement not covered" > * TBD.</span>
616
+ <span class="cstat-no" title="statement not covered" > */</span>
617
+ <span class="cstat-no" title="statement not covered" > init() {</span>
618
+ <span class="cstat-no" title="statement not covered" > const gl = this.gl;</span>
619
+ <span class="cstat-no" title="statement not covered" > const program = compileProgram(gl, this.vertexSrc || defaultVertexSrc, this.fragmentSrc);</span>
620
+ <span class="cstat-no" title="statement not covered" > gl.useProgram(program);</span>
621
+ <span class="cstat-no" title="statement not covered" > // get and store the uniforms for the shader</span>
622
+ <span class="cstat-no" title="statement not covered" > this.uSampler = gl.getUniformLocation(program, 'uSampler');</span>
623
+ <span class="cstat-no" title="statement not covered" > this.projectionVector = gl.getUniformLocation(program, 'projectionVector');</span>
624
+ <span class="cstat-no" title="statement not covered" > this.offsetVector = gl.getUniformLocation(program, 'offsetVector');</span>
625
+ <span class="cstat-no" title="statement not covered" > this.dimensions = gl.getUniformLocation(program, 'dimensions');</span>
626
+ <span class="cstat-no" title="statement not covered" > // get and store the attributes</span>
627
+ <span class="cstat-no" title="statement not covered" > this.aVertexPosition = gl.getAttribLocation(program, 'aVertexPosition');</span>
628
+ <span class="cstat-no" title="statement not covered" > this.aTextureCoord = gl.getAttribLocation(program, 'aTextureCoord');</span>
629
+ <span class="cstat-no" title="statement not covered" > this.colorAttribute = gl.getAttribLocation(program, 'aColor');</span>
630
+ <span class="cstat-no" title="statement not covered" > // Begin worst hack eva //</span>
631
+ <span class="cstat-no" title="statement not covered" > // WHY??? ONLY on my chrome pixel the line above returns -1 when using filters?</span>
632
+ <span class="cstat-no" title="statement not covered" > // maybe its something to do with the current state of the gl context.</span>
633
+ <span class="cstat-no" title="statement not covered" > // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel</span>
634
+ <span class="cstat-no" title="statement not covered" > // If theres any webGL people that know why could happen please help :)</span>
635
+ <span class="cstat-no" title="statement not covered" > if (this.colorAttribute === -1) {</span>
636
+ <span class="cstat-no" title="statement not covered" > this.colorAttribute = 2;</span>
637
+ <span class="cstat-no" title="statement not covered" > }</span>
638
+ <span class="cstat-no" title="statement not covered" > this.attributes = [this.aVertexPosition, this.aTextureCoord, this.colorAttribute];</span>
639
+ <span class="cstat-no" title="statement not covered" > // End worst hack eva //</span>
640
+ <span class="cstat-no" title="statement not covered" > // add those custom shaders!</span>
641
+ <span class="cstat-no" title="statement not covered" > const keys = Object.keys(this.uniforms);</span>
642
+ <span class="cstat-no" title="statement not covered" > for (let i = 0; i &lt; keys.length; i += 1) {</span>
643
+ <span class="cstat-no" title="statement not covered" > // get the uniform locations..</span>
644
+ <span class="cstat-no" title="statement not covered" > this.uniforms[keys[i]].uniformLocation = gl.getUniformLocation(program, keys[i]);</span>
645
+ <span class="cstat-no" title="statement not covered" > }</span>
646
+ <span class="cstat-no" title="statement not covered" > this.initUniforms();</span>
647
+ <span class="cstat-no" title="statement not covered" > this.program = program;</span>
648
+ <span class="cstat-no" title="statement not covered" > }</span>
649
+ &nbsp;
650
+ <span class="cstat-no" title="statement not covered" > /**</span>
651
+ <span class="cstat-no" title="statement not covered" > * TBD.</span>
652
+ <span class="cstat-no" title="statement not covered" > */</span>
653
+ <span class="cstat-no" title="statement not covered" > initUniforms() {</span>
654
+ <span class="cstat-no" title="statement not covered" > this.textureCount = 1;</span>
655
+ <span class="cstat-no" title="statement not covered" > const gl = this.gl;</span>
656
+ <span class="cstat-no" title="statement not covered" > let uniform;</span>
657
+ <span class="cstat-no" title="statement not covered" > const keys = Object.keys(this.uniforms);</span>
658
+ <span class="cstat-no" title="statement not covered" > for (let i = 0; i &lt; keys.length; i += 1) {</span>
659
+ <span class="cstat-no" title="statement not covered" > const key = keys[i];</span>
660
+ <span class="cstat-no" title="statement not covered" > uniform = this.uniforms[key];</span>
661
+ <span class="cstat-no" title="statement not covered" > const type = uniform.type;</span>
662
+ <span class="cstat-no" title="statement not covered" > if (type === 'sampler2D') {</span>
663
+ <span class="cstat-no" title="statement not covered" > uniform._init = false;</span>
664
+ <span class="cstat-no" title="statement not covered" > if (uniform.value !== null) {</span>
665
+ <span class="cstat-no" title="statement not covered" > this.initSampler2D(uniform);</span>
666
+ <span class="cstat-no" title="statement not covered" > }</span>
667
+ <span class="cstat-no" title="statement not covered" > } else if (type === 'mat2' || type === 'mat3' || type === 'mat4') {</span>
668
+ <span class="cstat-no" title="statement not covered" > // These require special handling</span>
669
+ <span class="cstat-no" title="statement not covered" > uniform.glMatrix = true;</span>
670
+ <span class="cstat-no" title="statement not covered" > uniform.glValueLength = 1;</span>
671
+ <span class="cstat-no" title="statement not covered" > if (type === 'mat2') {</span>
672
+ <span class="cstat-no" title="statement not covered" > uniform.glFunc = gl.uniformMatrix2fv;</span>
673
+ <span class="cstat-no" title="statement not covered" > } else if (type === 'mat3') {</span>
674
+ <span class="cstat-no" title="statement not covered" > uniform.glFunc = gl.uniformMatrix3fv;</span>
675
+ <span class="cstat-no" title="statement not covered" > } else if (type === 'mat4') {</span>
676
+ <span class="cstat-no" title="statement not covered" > uniform.glFunc = gl.uniformMatrix4fv;</span>
677
+ <span class="cstat-no" title="statement not covered" > }</span>
678
+ <span class="cstat-no" title="statement not covered" > } else {</span>
679
+ <span class="cstat-no" title="statement not covered" > // GL function reference</span>
680
+ <span class="cstat-no" title="statement not covered" > uniform.glFunc = gl[`uniform${type}`];</span>
681
+ <span class="cstat-no" title="statement not covered" > if (type === '2f' || type === '2i') {</span>
682
+ <span class="cstat-no" title="statement not covered" > uniform.glValueLength = 2;</span>
683
+ <span class="cstat-no" title="statement not covered" > } else if (type === '3f' || type === '3i') {</span>
684
+ <span class="cstat-no" title="statement not covered" > uniform.glValueLength = 3;</span>
685
+ <span class="cstat-no" title="statement not covered" > } else if (type === '4f' || type === '4i') {</span>
686
+ <span class="cstat-no" title="statement not covered" > uniform.glValueLength = 4;</span>
687
+ <span class="cstat-no" title="statement not covered" > } else {</span>
688
+ <span class="cstat-no" title="statement not covered" > uniform.glValueLength = 1;</span>
689
+ <span class="cstat-no" title="statement not covered" > }</span>
690
+ <span class="cstat-no" title="statement not covered" > }</span>
691
+ <span class="cstat-no" title="statement not covered" > }</span>
692
+ <span class="cstat-no" title="statement not covered" > }</span>
693
+ &nbsp;
694
+ <span class="cstat-no" title="statement not covered" > /**</span>
695
+ <span class="cstat-no" title="statement not covered" > * TBD.</span>
696
+ <span class="cstat-no" title="statement not covered" > * @param {object} uniform - TBD.</span>
697
+ <span class="cstat-no" title="statement not covered" > */</span>
698
+ <span class="cstat-no" title="statement not covered" > initSampler2D(uniform) {</span>
699
+ <span class="cstat-no" title="statement not covered" > if (!uniform.value || !uniform.value.baseTexture || !uniform.value.baseTexture.hasLoaded) {</span>
700
+ <span class="cstat-no" title="statement not covered" > return;</span>
701
+ <span class="cstat-no" title="statement not covered" > }</span>
702
+ <span class="cstat-no" title="statement not covered" > const gl = this.gl;</span>
703
+ <span class="cstat-no" title="statement not covered" > gl.activeTexture(gl[`TEXTURE${this.textureCount}`]);</span>
704
+ <span class="cstat-no" title="statement not covered" > gl.bindTexture(gl.TEXTURE_2D, uniform.value.baseTexture._glTextures[gl.id]);</span>
705
+ <span class="cstat-no" title="statement not covered" > // Extended texture data</span>
706
+ <span class="cstat-no" title="statement not covered" > if (uniform.textureData) {</span>
707
+ <span class="cstat-no" title="statement not covered" > const data = uniform.textureData;</span>
708
+ <span class="cstat-no" title="statement not covered" > // GLTexture = mag linear, min linear_mipmap_linear, wrap repeat + gl.generateMipmap(gl.TEXTURE_2D);</span>
709
+ <span class="cstat-no" title="statement not covered" > // GLTextureLinear = mag/min linear, wrap clamp</span>
710
+ <span class="cstat-no" title="statement not covered" > // GLTextureNearestRepeat = mag/min NEAREST, wrap repeat</span>
711
+ <span class="cstat-no" title="statement not covered" > // GLTextureNearest = mag/min nearest, wrap clamp</span>
712
+ <span class="cstat-no" title="statement not covered" > // AudioTexture = whatever + luminance + width 512, height 2, border 0</span>
713
+ <span class="cstat-no" title="statement not covered" > // KeyTexture = whatever + luminance + width 256, height 2, border 0</span>
714
+ <span class="cstat-no" title="statement not covered" > // magFilter can be: gl.LINEAR, gl.LINEAR_MIPMAP_LINEAR or gl.NEAREST</span>
715
+ <span class="cstat-no" title="statement not covered" > // wrapS/T can be: gl.CLAMP_TO_EDGE or gl.REPEAT</span>
716
+ <span class="cstat-no" title="statement not covered" > const magFilter = data.magFilter ? data.magFilter : gl.LINEAR;</span>
717
+ <span class="cstat-no" title="statement not covered" > const minFilter = data.minFilter ? data.minFilter : gl.LINEAR;</span>
718
+ <span class="cstat-no" title="statement not covered" > let wrapS = data.wrapS ? data.wrapS : gl.CLAMP_TO_EDGE;</span>
719
+ <span class="cstat-no" title="statement not covered" > let wrapT = data.wrapT ? data.wrapT : gl.CLAMP_TO_EDGE;</span>
720
+ <span class="cstat-no" title="statement not covered" > const format = data.luminance ? gl.LUMINANCE : gl.RGBA;</span>
721
+ <span class="cstat-no" title="statement not covered" > if (data.repeat) {</span>
722
+ <span class="cstat-no" title="statement not covered" > wrapS = gl.REPEAT;</span>
723
+ <span class="cstat-no" title="statement not covered" > wrapT = gl.REPEAT;</span>
724
+ <span class="cstat-no" title="statement not covered" > }</span>
725
+ <span class="cstat-no" title="statement not covered" > gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, !!data.flipY);</span>
726
+ <span class="cstat-no" title="statement not covered" > if (data.width) {</span>
727
+ <span class="cstat-no" title="statement not covered" > const width = data.width ? data.width : 512;</span>
728
+ <span class="cstat-no" title="statement not covered" > const height = data.height ? data.height : 2;</span>
729
+ <span class="cstat-no" title="statement not covered" > const border = data.border ? data.border : 0;</span>
730
+ &nbsp;
731
+ <span class="cstat-no" title="statement not covered" > // void texImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, ArrayBufferView? pixels);</span>
732
+ <span class="cstat-no" title="statement not covered" > gl.texImage2D(gl.TEXTURE_2D, 0, format, width, height, border, format, gl.UNSIGNED_BYTE, null);</span>
733
+ <span class="cstat-no" title="statement not covered" > } else {</span>
734
+ <span class="cstat-no" title="statement not covered" > // void texImage2D(GLenum target, GLint level, GLenum internalformat, GLenum format, GLenum type, ImageData? pixels);</span>
735
+ <span class="cstat-no" title="statement not covered" > gl.texImage2D(gl.TEXTURE_2D, 0, format, gl.RGBA, gl.UNSIGNED_BYTE, uniform.value.baseTexture.source);</span>
736
+ <span class="cstat-no" title="statement not covered" > }</span>
737
+ <span class="cstat-no" title="statement not covered" > gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, magFilter);</span>
738
+ <span class="cstat-no" title="statement not covered" > gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, minFilter);</span>
739
+ <span class="cstat-no" title="statement not covered" > gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, wrapS);</span>
740
+ <span class="cstat-no" title="statement not covered" > gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, wrapT);</span>
741
+ <span class="cstat-no" title="statement not covered" > }</span>
742
+ <span class="cstat-no" title="statement not covered" > gl.uniform1i(uniform.uniformLocation, this.textureCount);</span>
743
+ <span class="cstat-no" title="statement not covered" > uniform._init = true;</span>
744
+ <span class="cstat-no" title="statement not covered" > this.textureCount += 1;</span>
745
+ <span class="cstat-no" title="statement not covered" > }</span>
746
+ &nbsp;
747
+ <span class="cstat-no" title="statement not covered" > /**</span>
748
+ <span class="cstat-no" title="statement not covered" > * TBD.</span>
749
+ <span class="cstat-no" title="statement not covered" > */</span>
750
+ <span class="cstat-no" title="statement not covered" > syncUniforms() {</span>
751
+ <span class="cstat-no" title="statement not covered" > this.textureCount = 1;</span>
752
+ <span class="cstat-no" title="statement not covered" > let uniform;</span>
753
+ <span class="cstat-no" title="statement not covered" > const gl = this.gl;</span>
754
+ <span class="cstat-no" title="statement not covered" > // This would probably be faster in an array and it would guarantee key order</span>
755
+ <span class="cstat-no" title="statement not covered" > const keys = Object.keys(this.uniforms);</span>
756
+ <span class="cstat-no" title="statement not covered" > for (let i = 0; i &lt; keys.length; i += 1) {</span>
757
+ <span class="cstat-no" title="statement not covered" > const key = keys[i];</span>
758
+ <span class="cstat-no" title="statement not covered" > uniform = this.uniforms[key];</span>
759
+ <span class="cstat-no" title="statement not covered" > if (uniform.glValueLength === 1) {</span>
760
+ <span class="cstat-no" title="statement not covered" > if (uniform.glMatrix === true) {</span>
761
+ <span class="cstat-no" title="statement not covered" > uniform.glFunc.call(gl, uniform.uniformLocation, uniform.transpose, uniform.value);</span>
762
+ <span class="cstat-no" title="statement not covered" > } else {</span>
763
+ <span class="cstat-no" title="statement not covered" > uniform.glFunc.call(gl, uniform.uniformLocation, uniform.value);</span>
764
+ <span class="cstat-no" title="statement not covered" > }</span>
765
+ <span class="cstat-no" title="statement not covered" > } else if (uniform.glValueLength === 2) {</span>
766
+ <span class="cstat-no" title="statement not covered" > uniform.glFunc.call(gl, uniform.uniformLocation, uniform.value.x, uniform.value.y);</span>
767
+ <span class="cstat-no" title="statement not covered" > } else if (uniform.glValueLength === 3) {</span>
768
+ <span class="cstat-no" title="statement not covered" > uniform.glFunc.call(gl, uniform.uniformLocation, uniform.value.x, uniform.value.y, uniform.value.z);</span>
769
+ <span class="cstat-no" title="statement not covered" > } else if (uniform.glValueLength === 4) {</span>
770
+ <span class="cstat-no" title="statement not covered" > uniform.glFunc.call(</span>
771
+ <span class="cstat-no" title="statement not covered" > gl,</span>
772
+ <span class="cstat-no" title="statement not covered" > uniform.uniformLocation,</span>
773
+ <span class="cstat-no" title="statement not covered" > uniform.value.x,</span>
774
+ <span class="cstat-no" title="statement not covered" > uniform.value.y,</span>
775
+ <span class="cstat-no" title="statement not covered" > uniform.value.z,</span>
776
+ <span class="cstat-no" title="statement not covered" > uniform.value.w</span>
777
+ <span class="cstat-no" title="statement not covered" > );</span>
778
+ <span class="cstat-no" title="statement not covered" > } else if (uniform.type === 'sampler2D') {</span>
779
+ <span class="cstat-no" title="statement not covered" > if (uniform._init) {</span>
780
+ <span class="cstat-no" title="statement not covered" > gl.activeTexture(gl[`TEXTURE${this.textureCount}`]);</span>
781
+ <span class="cstat-no" title="statement not covered" > if (uniform.value.baseTexture._dirty[gl.id]) {</span>
782
+ <span class="cstat-no" title="statement not covered" > window.PhaserRegistry.INSTANCES[gl.id].updateTexture(uniform.value.baseTexture);</span>
783
+ <span class="cstat-no" title="statement not covered" > } else {</span>
784
+ <span class="cstat-no" title="statement not covered" > // bind the current texture</span>
785
+ <span class="cstat-no" title="statement not covered" > gl.bindTexture(gl.TEXTURE_2D, uniform.value.baseTexture._glTextures[gl.id]);</span>
786
+ <span class="cstat-no" title="statement not covered" > }</span>
787
+ <span class="cstat-no" title="statement not covered" > // gl.bindTexture(gl.TEXTURE_2D, uniform.value.baseTexture._glTextures[gl.id] || PIXI.createWebGLTexture( uniform.value.baseTexture, gl));</span>
788
+ <span class="cstat-no" title="statement not covered" > gl.uniform1i(uniform.uniformLocation, this.textureCount);</span>
789
+ <span class="cstat-no" title="statement not covered" > this.textureCount += 1;</span>
790
+ <span class="cstat-no" title="statement not covered" > } else {</span>
791
+ <span class="cstat-no" title="statement not covered" > this.initSampler2D(uniform);</span>
792
+ <span class="cstat-no" title="statement not covered" > }</span>
793
+ <span class="cstat-no" title="statement not covered" > }</span>
794
+ <span class="cstat-no" title="statement not covered" > }</span>
795
+ <span class="cstat-no" title="statement not covered" > }</span>
796
+ &nbsp;
797
+ <span class="cstat-no" title="statement not covered" > /**</span>
798
+ <span class="cstat-no" title="statement not covered" > * TBD.</span>
799
+ <span class="cstat-no" title="statement not covered" > */</span>
800
+ <span class="cstat-no" title="statement not covered" > destroy() {</span>
801
+ <span class="cstat-no" title="statement not covered" > this.gl.deleteProgram(this.program);</span>
802
+ <span class="cstat-no" title="statement not covered" > this.uniforms = null;</span>
803
+ <span class="cstat-no" title="statement not covered" > this.gl = null;</span>
804
+ <span class="cstat-no" title="statement not covered" > this.attributes = null;</span>
805
+ <span class="cstat-no" title="statement not covered" > }</span>
806
+ <span class="cstat-no" title="statement not covered" >}</span>
807
+ &nbsp;</pre></td></tr></table></pre>
808
+
809
+ <div class='push'></div><!-- for sticky footer -->
810
+ </div><!-- /wrapper -->
811
+ <div class='footer quiet pad2 space-top1 center small'>
812
+ Code coverage generated by
813
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
814
+ at 2025-08-19T06:39:20.400Z
815
+ </div>
816
+ <script src="../../../../../prettify.js"></script>
817
+ <script>
818
+ window.onload = function () {
819
+ prettyPrint();
820
+ };
821
+ </script>
822
+ <script src="../../../../../sorter.js"></script>
823
+ <script src="../../../../../block-navigation.js"></script>
824
+ </body>
825
+ </html>
826
+