ezuikit-js 7.7.0 → 7.7.2

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 (134) hide show
  1. package/CHANGELOG.md +115 -101
  2. package/README.md +490 -474
  3. package/ezuikit.js +75442 -1
  4. package/ezuikit_static/v65/v1/css/theme.css +465 -0
  5. package/ezuikit_static/v65/v1/imgs/bg.png +0 -0
  6. package/ezuikit_static/v65/v1/imgs/bg.svg +33 -0
  7. package/ezuikit_static/v65/v1/imgs/end.png +0 -0
  8. package/ezuikit_static/v65/v1/imgs/start.png +0 -0
  9. package/ezuikit_static/v65/v1/js/jsPluginV1-1.0.0.min.js +4 -18
  10. package/ezuikit_static/v65/v3/css/theme.css +19 -0
  11. package/ezuikit_static/v65/v3/imgs/bg.png +0 -0
  12. package/ezuikit_static/v65/v3/imgs/end.png +0 -0
  13. package/ezuikit_static/v65/v3/imgs/start.png +0 -0
  14. package/ezuikit_static/v65/v3/js/jsPluginV3-1.0.0.min.js +466 -59
  15. package/package.json +6 -1
  16. package/demos/EZUIKitHD/EZUIKitHD.html +0 -171
  17. package/demos/EZUIKitHD/js/jsWebControl-1.0.0.min.js +0 -80
  18. package/demos/base-demo/base.html +0 -118
  19. package/demos/base-demo/ezuikit.js +0 -1
  20. package/demos/base-demo/ezuikit_static/v65/v1/css/theme.css +0 -121
  21. package/demos/base-demo/ezuikit_static/v65/v1/js/AudioRenderer.js +0 -225
  22. package/demos/base-demo/ezuikit_static/v65/v1/js/SuperRender_10.js +0 -397
  23. package/demos/base-demo/ezuikit_static/v65/v1/js/SystemTransform.js +0 -22
  24. package/demos/base-demo/ezuikit_static/v65/v1/js/SystemTransform.js.mem +0 -0
  25. package/demos/base-demo/ezuikit_static/v65/v1/js/jsPluginV1-1.0.0.min.js +0 -26
  26. package/demos/base-demo/ezuikit_static/v65/v1/js/playctrl/AudioRenderer.js +0 -225
  27. package/demos/base-demo/ezuikit_static/v65/v1/js/playctrl/DecodeWorker.js +0 -616
  28. package/demos/base-demo/ezuikit_static/v65/v1/js/playctrl/DecodeWorkerString.js +0 -616
  29. package/demos/base-demo/ezuikit_static/v65/v1/js/playctrl/Decoder.js +0 -1
  30. package/demos/base-demo/ezuikit_static/v65/v1/js/playctrl/JSPlaySDKInterface.js +0 -2139
  31. package/demos/base-demo/ezuikit_static/v65/v1/js/playctrl/SuperRender_10.js +0 -397
  32. package/demos/base-demo/ezuikit_static/v65/v1/js/playctrl/SuperRender_20.js +0 -1
  33. package/demos/base-demo/ezuikit_static/v65/v1/js/transform/SystemTransform.js +0 -22
  34. package/demos/base-demo/ezuikit_static/v65/v1/js/transform/SystemTransform.js.mem +0 -0
  35. package/demos/base-demo/ezuikit_static/v65/v1/js/transform/systemTransform-worker.min.js +0 -1
  36. package/demos/base-demo/ezuikit_static/v65/v1/js/tts-v4.js +0 -346
  37. package/demos/base-demo/ezuikit_static/v65/v1/rec/datepicker.js +0 -1522
  38. package/demos/base-demo/ezuikit_static/v65/v1/rec/datepicker.min.css +0 -36
  39. package/demos/base-demo/ezuikit_static/v65/v1/rec/datepicker.zh-CN.js +0 -19
  40. package/demos/base-demo/ezuikit_static/v65/v1/rec/jquery.min.js +0 -2
  41. package/demos/base-demo/ezuikit_static/v65/v1/speed/speed.css +0 -145
  42. package/demos/base-demo/ezuikit_static/v65/v1/talk/adapeter.js +0 -5497
  43. package/demos/base-demo/ezuikit_static/v65/v1/talk/janus.js +0 -3507
  44. package/demos/base-demo/ezuikit_static/v65/v1/talk/tts-v4.js +0 -346
  45. package/demos/base-demo/ezuikit_static/v65/v3/css/theme.css +0 -121
  46. package/demos/base-demo/ezuikit_static/v65/v3/js/PlayCtrlWasm/hasWorker/Decoder.js +0 -21
  47. package/demos/base-demo/ezuikit_static/v65/v3/js/PlayCtrlWasm/hasWorker/Decoder.wasm +0 -0
  48. package/demos/base-demo/ezuikit_static/v65/v3/js/PlayCtrlWasm/hasWorker/Decoder.worker.js +0 -1
  49. package/demos/base-demo/ezuikit_static/v65/v3/js/PlayCtrlWasm/noWorker/Decoder.js +0 -21
  50. package/demos/base-demo/ezuikit_static/v65/v3/js/PlayCtrlWasm/noWorker/Decoder.wasm +0 -0
  51. package/demos/base-demo/ezuikit_static/v65/v3/js/PlayCtrlWasm/noWorker/Decoder.worker.js +0 -1
  52. package/demos/base-demo/ezuikit_static/v65/v3/js/jsPluginV3-1.0.0.min.js +0 -16136
  53. package/demos/base-demo/ezuikit_static/v65/v3/js/wasmplayer.min.js +0 -1
  54. package/demos/base-demo/ezuikit_static/v65/v3/rec/datepicker.js +0 -1522
  55. package/demos/base-demo/ezuikit_static/v65/v3/rec/datepicker.min.css +0 -36
  56. package/demos/base-demo/ezuikit_static/v65/v3/rec/datepicker.zh-CN.js +0 -19
  57. package/demos/base-demo/ezuikit_static/v65/v3/rec/jquery.min.js +0 -2
  58. package/demos/base-demo/ezuikit_static/v65/v3/speed/speed.css +0 -145
  59. package/demos/base-demo/ezuikit_static/v65/v3/talk/adapeter.js +0 -5497
  60. package/demos/base-demo/ezuikit_static/v65/v3/talk/janus.js +0 -3507
  61. package/demos/base-demo/ezuikit_static/v65/v3/talk/tts-v4.js +0 -343
  62. package/demos/base-demo/hls.html +0 -24
  63. package/demos/base-demo/index.html +0 -117
  64. package/demos/base-demo/localDecoder.html +0 -118
  65. package/demos/base-demo/mobileLive.html +0 -117
  66. package/demos/base-demo/mobileRec.html +0 -116
  67. package/demos/base-demo/multi.html +0 -129
  68. package/demos/base-demo/pcLive.html +0 -117
  69. package/demos/base-demo/pcRec.html +0 -116
  70. package/demos/base-demo/template.html +0 -124
  71. package/demos/base-demo/themeData.html +0 -232
  72. package/demos/nginx-demo/conf/fastcgi.conf +0 -26
  73. package/demos/nginx-demo/conf/fastcgi_params +0 -25
  74. package/demos/nginx-demo/conf/koi-utf +0 -109
  75. package/demos/nginx-demo/conf/koi-win +0 -103
  76. package/demos/nginx-demo/conf/mime.types +0 -95
  77. package/demos/nginx-demo/conf/nginx.conf +0 -121
  78. package/demos/nginx-demo/conf/scgi_params +0 -17
  79. package/demos/nginx-demo/conf/uwsgi_params +0 -17
  80. package/demos/nginx-demo/conf/win-utf +0 -126
  81. package/demos/nginx-demo/contrib/README +0 -21
  82. package/demos/nginx-demo/contrib/geo2nginx.pl +0 -58
  83. package/demos/nginx-demo/contrib/unicode2nginx/koi-utf +0 -131
  84. package/demos/nginx-demo/contrib/unicode2nginx/unicode-to-nginx.pl +0 -48
  85. package/demos/nginx-demo/contrib/unicode2nginx/win-utf +0 -130
  86. package/demos/nginx-demo/contrib/vim/ftdetect/nginx.vim +0 -4
  87. package/demos/nginx-demo/contrib/vim/ftplugin/nginx.vim +0 -1
  88. package/demos/nginx-demo/contrib/vim/indent/nginx.vim +0 -11
  89. package/demos/nginx-demo/contrib/vim/syntax/nginx.vim +0 -2268
  90. package/demos/nginx-demo/docs/CHANGES +0 -8115
  91. package/demos/nginx-demo/docs/CHANGES.ru +0 -8252
  92. package/demos/nginx-demo/docs/LICENSE +0 -26
  93. package/demos/nginx-demo/docs/OpenSSL.LICENSE +0 -127
  94. package/demos/nginx-demo/docs/PCRE.LICENCE +0 -93
  95. package/demos/nginx-demo/docs/README +0 -3
  96. package/demos/nginx-demo/docs/zlib.LICENSE +0 -20
  97. package/demos/nginx-demo/html/50x.html +0 -21
  98. package/demos/nginx-demo/html/ezuikit5/ezuikit.js +0 -36107
  99. package/demos/nginx-demo/html/ezuikit5/index.html +0 -117
  100. package/demos/nginx-demo/html/ezuikit5/server.js +0 -67
  101. package/demos/nginx-demo/html/index.html +0 -16
  102. package/demos/nginx-demo/html/js/adapeter.js +0 -5497
  103. package/demos/nginx-demo/html/js/janus.js +0 -3507
  104. package/demos/nginx-demo/html/js/jquery.min.js +0 -2
  105. package/demos/nginx-demo/html/js/sts.js +0 -340
  106. package/demos/nginx-demo/logs/access.log +0 -109
  107. package/demos/nginx-demo/logs/error.log +0 -15
  108. package/demos/nginx-demo/logs/nginx.pid +0 -1
  109. package/demos/nginx-demo/nginx.exe +0 -0
  110. package/demos/react-demo/README.md +0 -68
  111. package/demos/react-demo/package.json +0 -36
  112. package/demos/react-demo/public/favicon.ico +0 -0
  113. package/demos/react-demo/public/index.html +0 -43
  114. package/demos/react-demo/public/logo192.png +0 -0
  115. package/demos/react-demo/public/logo512.png +0 -0
  116. package/demos/react-demo/public/manifest.json +0 -25
  117. package/demos/react-demo/public/robots.txt +0 -3
  118. package/demos/react-demo/src/App.css +0 -38
  119. package/demos/react-demo/src/App.js +0 -114
  120. package/demos/react-demo/src/App.test.js +0 -9
  121. package/demos/react-demo/src/index.css +0 -13
  122. package/demos/react-demo/src/index.js +0 -17
  123. package/demos/react-demo/src/logo.svg +0 -7
  124. package/demos/react-demo/src/serviceWorker.js +0 -141
  125. package/demos/react-demo/src/setupTests.js +0 -5
  126. package/demos/vue-demo/README.md +0 -24
  127. package/demos/vue-demo/babel.config.js +0 -5
  128. package/demos/vue-demo/package.json +0 -43
  129. package/demos/vue-demo/public/favicon.ico +0 -0
  130. package/demos/vue-demo/public/index.html +0 -17
  131. package/demos/vue-demo/src/App.vue +0 -27
  132. package/demos/vue-demo/src/assets/logo.png +0 -0
  133. package/demos/vue-demo/src/components/EZUIKitJs.vue +0 -115
  134. package/demos/vue-demo/src/main.js +0 -8
@@ -1,397 +0,0 @@
1
- "use strict";
2
- //顶点着色器
3
- //attribute修饰符用于声明由浏览器(javascript)传输给顶点着色器的变量值;
4
- // vertexPos即我们定义的顶点坐标;
5
- // gl_Position是一个内建的传出变量。
6
- var vertexYUVShader = [
7
- 'attribute vec4 vertexPos;',
8
- 'attribute vec2 texturePos;',
9
- 'varying vec2 textureCoord;',
10
-
11
- 'void main()',
12
- '{',
13
- 'gl_Position = vertexPos;',
14
- 'textureCoord = texturePos;',
15
- '}'
16
- ].join('\n');
17
- //像素着色器(yuv->rgb)
18
- var fragmentYUVShader = [
19
- 'precision highp float;',
20
- 'varying highp vec2 textureCoord;',
21
- 'uniform sampler2D ySampler;',
22
- 'uniform sampler2D uSampler;',
23
- 'uniform sampler2D vSampler;',
24
- 'const mat4 YUV2RGB = mat4',
25
- '(',
26
- '1.1643828125, 0, 1.59602734375, -.87078515625,',
27
- '1.1643828125, -.39176171875, -.81296875, .52959375,',
28
- '1.1643828125, 2.017234375, 0, -1.081390625,',
29
- '0, 0, 0, 1',
30
- ');',
31
-
32
- 'void main(void) {',
33
- 'highp float y = texture2D(ySampler, textureCoord).r;',
34
- 'highp float u = texture2D(uSampler, textureCoord).r;',
35
- 'highp float v = texture2D(vSampler, textureCoord).r;',
36
- 'gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;',
37
- '}'
38
- ].join('\n');
39
-
40
- (function (root, factory) {
41
- // root.SuperRender = factory();
42
- window.SuperRender = factory();
43
- }(this, function () {
44
-
45
- function RenderManager(canvas) {
46
-
47
- this.canvasElement = document.getElementById(canvas);
48
-
49
- this.initContextGL();
50
-
51
- if(this.contextGL) {
52
- this.YUVProgram = this.initProgram(vertexYUVShader, fragmentYUVShader);
53
- this.initBuffers();
54
- this.initTextures();
55
- }
56
- };
57
-
58
- /**
59
- * 初始化WebGL上下文
60
- */
61
- RenderManager.prototype.initContextGL = function() {
62
-
63
- var canvas = this.canvasElement;
64
-
65
- var gl = null;
66
-
67
- try {
68
- gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
69
- } catch (e) {
70
- gl = null;
71
- }
72
-
73
- if(!gl || typeof gl.getParameter !== "function") {
74
- gl = null;
75
- }
76
-
77
- this.contextGL = gl;
78
-
79
- console.log("WebGL1.0");
80
- };
81
-
82
- /**
83
- * 初始化着色器程序
84
- * @param vertexShaderScript 顶点着色器脚本
85
- * @param fragmentShaderScript 片段着色器脚本
86
- */
87
- RenderManager.prototype.initProgram = function(vertexShaderScript, fragmentShaderScript) {
88
-
89
- var gl = this.contextGL;
90
-
91
- var vertexShader = gl.createShader(gl.VERTEX_SHADER); //创建定点着色器
92
- gl.shaderSource(vertexShader, vertexShaderScript);
93
- gl.compileShader(vertexShader);
94
- if(!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {
95
- console.log('Vertex shader failed to compile: ' + gl.getShaderInfoLog(vertexShader));
96
- }
97
-
98
- var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
99
- gl.shaderSource(fragmentShader, fragmentShaderScript);
100
- gl.compileShader(fragmentShader);
101
- if(!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {
102
- console.log('Fragment shader failed to compile: ' + gl.getShaderInfoLog(fragmentShader));
103
- }
104
-
105
- var program = gl.createProgram();
106
- gl.attachShader(program, vertexShader);
107
- gl.attachShader(program, fragmentShader);
108
- gl.linkProgram(program);
109
- if(!gl.getProgramParameter(program, gl.LINK_STATUS)) {
110
- console.log('Program failed to compile: ' + gl.getProgramInfoLog(program));
111
- }
112
-
113
- gl.deleteShader(vertexShader);
114
- gl.deleteShader(fragmentShader);
115
-
116
- return program;
117
- };
118
-
119
- /**
120
- * 初始化数据缓存
121
- */
122
- RenderManager.prototype.initBuffers = function() {
123
-
124
- var gl = this.contextGL;
125
-
126
- var vertexPosBuffer = gl.createBuffer();
127
- gl.bindBuffer(gl.ARRAY_BUFFER, vertexPosBuffer);
128
- gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 1, -1, 1, 1, -1, -1, -1]), gl.STATIC_DRAW);
129
- gl.bindBuffer(gl.ARRAY_BUFFER, null);
130
-
131
- var texturePosBuffer = gl.createBuffer();
132
- gl.bindBuffer(gl.ARRAY_BUFFER, texturePosBuffer);
133
- gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 0, 0, 0, 1, 1, 0, 1]), gl.DYNAMIC_DRAW);
134
- gl.bindBuffer(gl.ARRAY_BUFFER, null);
135
-
136
- this.vertexPosBuffer = vertexPosBuffer;
137
- this.texturePosBuffer = texturePosBuffer;
138
- };
139
-
140
- /**
141
- * 创建纹理
142
- */
143
- RenderManager.prototype.initTexture = function() {
144
-
145
- var gl = this.contextGL;
146
-
147
- var textureRef = gl.createTexture();
148
- gl.bindTexture(gl.TEXTURE_2D, textureRef);
149
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
150
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
151
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
152
- gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
153
- gl.bindTexture(gl.TEXTURE_2D, null);
154
-
155
- return textureRef;
156
- };
157
-
158
- /**
159
- * 初始化YUV纹理
160
- */
161
- RenderManager.prototype.initTextures = function() {
162
-
163
- var gl = this.contextGL;
164
-
165
- var program = this.YUVProgram;
166
- gl.useProgram(program);
167
-
168
- var yTextureRef = this.initTexture();
169
- var ySamplerRef = gl.getUniformLocation(program, 'ySampler');
170
- gl.uniform1i(ySamplerRef, 0);
171
- this.yTextureRef = yTextureRef;
172
-
173
- var uTextureRef = this.initTexture();
174
- var uSamplerRef = gl.getUniformLocation(program, 'uSampler');
175
- gl.uniform1i(uSamplerRef, 1);
176
- this.uTextureRef = uTextureRef;
177
-
178
- var vTextureRef = this.initTexture();
179
- var vSamplerRef = gl.getUniformLocation(program, 'vSampler');
180
- gl.uniform1i(vSamplerRef, 2);
181
- this.vTextureRef = vTextureRef;
182
-
183
- gl.useProgram(null);
184
- };
185
-
186
- /**
187
- * 显示帧数据
188
- * @param nWidth 宽度
189
- * @param nHeight 高度
190
- * @param nHeight 帧数据
191
- */
192
- RenderManager.prototype.SR_DisplayFrameData = function(nWidth, nHeight, pData,dWidth,dHeight) {
193
-
194
- if(nWidth <= 0 || nHeight <= 0)
195
- {
196
- return;
197
- }
198
-
199
- var gl = this.contextGL;
200
-
201
- if(null == pData)
202
- {
203
- gl.clearColor(0.0, 0.0, 0.0, 0.0);
204
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
205
- return;
206
- }
207
-
208
- var canvas = this.canvasElement;
209
-
210
- this.nWindowWidth = canvas.width;
211
- this.nWindowHeight = canvas.height;
212
-
213
- var nWindowWidth = this.nWindowWidth;
214
- var nWindowHeight = this.nWindowHeight;
215
-
216
- gl.clearColor(0.8, 0.8, 1.0, 1.0);
217
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
218
-
219
- gl.viewport(0, 0, nWindowWidth, nWindowHeight);
220
-
221
- this.updateFrameData(nWidth, nHeight, pData,dWidth,dHeight);
222
-
223
- var program = this.YUVProgram;
224
- gl.useProgram(program);
225
-
226
- var vertexPosBuffer = this.vertexPosBuffer;
227
- gl.bindBuffer(gl.ARRAY_BUFFER, vertexPosBuffer);
228
- var vertexPosRef = gl.getAttribLocation(program, 'vertexPos');
229
- gl.enableVertexAttribArray(vertexPosRef);
230
- gl.vertexAttribPointer(vertexPosRef, 2, gl.FLOAT, false, 0, 0);
231
- gl.bindBuffer(gl.ARRAY_BUFFER, null);
232
-
233
- var texturePosBuffer = this.texturePosBuffer;
234
- gl.bindBuffer(gl.ARRAY_BUFFER, texturePosBuffer);
235
- var texturePosRef = gl.getAttribLocation(program, 'texturePos');
236
- gl.enableVertexAttribArray(texturePosRef);
237
- gl.vertexAttribPointer(texturePosRef, 2, gl.FLOAT, false, 0, 0);
238
- gl.bindBuffer(gl.ARRAY_BUFFER, null);
239
-
240
- gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
241
-
242
- gl.disableVertexAttribArray(vertexPosRef);
243
- gl.disableVertexAttribArray(texturePosRef);
244
-
245
- gl.useProgram(null);
246
- };
247
-
248
- /**
249
- * 上传YUV数据到纹理
250
- * @param nWidth 宽度
251
- * @param nHeight 高度
252
- * @param nHeight 帧数据
253
- */
254
- RenderManager.prototype.updateFrameData = function(width, height, data,dWidth,dHeight) {
255
-
256
- var gl = this.contextGL;
257
-
258
- var yTextureRef = this.yTextureRef;
259
- var uTextureRef = this.uTextureRef;
260
- var vTextureRef = this.vTextureRef;
261
-
262
- var i420Data = data;
263
- // debugger;
264
- if(width == dWidth && height == dHeight)
265
- {
266
- var yDataLength = width * height;
267
- var yData = i420Data.subarray(0, yDataLength);
268
- gl.activeTexture(gl.TEXTURE0);
269
- gl.bindTexture(gl.TEXTURE_2D, yTextureRef);
270
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, width, height, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, yData);
271
-
272
- var cbDataLength = width/2 * height/2;
273
- var cbData = i420Data.subarray(width*height, width*height + cbDataLength);
274
- gl.activeTexture(gl.TEXTURE2);
275
- gl.bindTexture(gl.TEXTURE_2D, vTextureRef);
276
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, width/2, height/2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, cbData);
277
-
278
- var crDataLength = cbDataLength;
279
- var crData = i420Data.subarray(width*height + width*height/4, width*height + width*height/4 + crDataLength);
280
- gl.activeTexture(gl.TEXTURE1);
281
- gl.bindTexture(gl.TEXTURE_2D, uTextureRef);
282
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, width/2, height/2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, crData);
283
-
284
- }
285
- else
286
- {
287
- // //裁剪宽
288
- var yDataLength = dWidth * dHeight;
289
- var yData=new Uint8Array(yDataLength) ;
290
- for(var i=0;i<dHeight;i++)
291
- {
292
- //var ySonData=new Uint8Array(dWidth) ;
293
- var ySonData = i420Data.subarray(i*width, i*width+dWidth);
294
- for (var j = 0; j < dWidth; j++) {
295
- yData[i*dWidth + j] = ySonData[j];
296
- }
297
- }
298
- gl.activeTexture(gl.TEXTURE0);
299
- gl.bindTexture(gl.TEXTURE_2D, yTextureRef);
300
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, dWidth, dHeight, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, yData);
301
- yData=null;
302
- ySonData=null;
303
-
304
- var cbDataLength = dWidth/2 * dHeight/2;
305
- var cbData =new Uint8Array(cbDataLength);
306
- //var cbSonData=new Uint8Array(dWidth/2) ;
307
- for(var i=0;i<dHeight/2;i++)
308
- {
309
- var cbSonData = i420Data.subarray(width*height+i*width/2, width*height+i*width/2+dWidth/2);
310
- for (var j = 0; j < dWidth/2; j++) {
311
- cbData[i*dWidth/2 + j] = cbSonData[j];
312
- }
313
- }
314
- gl.activeTexture(gl.TEXTURE2);
315
- gl.bindTexture(gl.TEXTURE_2D, vTextureRef);
316
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, dWidth/2, dHeight/2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, cbData);
317
- cbData=null;
318
- cbSonData=null;
319
-
320
- var crDataLength = cbDataLength;
321
- var crData = new Uint8Array(crDataLength);
322
- for(var i=0;i<dHeight/2;i++)
323
- {
324
- var crSonData = i420Data.subarray(width*height*5/4+i*width/2, width*height*5/4+i*width/2+dWidth/2);
325
- for (var j = 0; j < dWidth/2; j++) {
326
- crData[i*dWidth/2 + j] = crSonData[j];
327
- }
328
- }
329
- gl.activeTexture(gl.TEXTURE1);
330
- gl.bindTexture(gl.TEXTURE_2D, uTextureRef);
331
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, dWidth/2, dHeight/2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, crData);
332
- crData=null;
333
- crSonData=null;
334
- }
335
-
336
- };
337
-
338
- /**
339
- * 设置显示区域
340
- * @param stDisplayRect 显示区域
341
- */
342
- RenderManager.prototype.SR_SetDisplayRect = function(stDisplayRect) {
343
-
344
- var gl = this.contextGL;
345
-
346
- var nWindowWidth = this.nWindowWidth;
347
- var nWindowHeight = this.nWindowHeight;
348
-
349
- var texturePosValues = null;
350
-
351
- if(stDisplayRect && nWindowWidth > 0 && nWindowHeight > 0) {
352
- var fLeft = stDisplayRect.left / nWindowWidth;
353
- var fTop = stDisplayRect.top / nWindowHeight;
354
- var fRight = stDisplayRect.right / nWindowWidth;
355
- var fBottom = stDisplayRect.bottom / nWindowHeight;
356
-
357
- texturePosValues = new Float32Array([fRight, fTop, fLeft, fTop, fRight, fBottom, fLeft, fBottom]);
358
- }
359
- else {
360
- texturePosValues = new Float32Array([1, 0, 0, 0, 1, 1, 0, 1]);
361
- }
362
-
363
- var texturePosBuffer = this.texturePosBuffer;
364
-
365
- gl.bindBuffer(gl.ARRAY_BUFFER, texturePosBuffer);
366
- gl.bufferSubData(gl.ARRAY_BUFFER, 0, texturePosValues);
367
- gl.bindBuffer(gl.ARRAY_BUFFER, null);
368
- };
369
-
370
- /**
371
- * 释放显示资源
372
- */
373
- RenderManager.prototype.SR_Destroy = function() {
374
-
375
- var gl = this.contextGL;
376
-
377
- var YUVProgram = this.YUVProgram;
378
- gl.deleteProgram(YUVProgram);
379
-
380
- var vertexPosBuffer = this.vertexPosBuffer;
381
- var texturePosBuffer = this.texturePosBuffer;
382
-
383
- gl.deleteBuffer(vertexPosBuffer);
384
- gl.deleteBuffer(texturePosBuffer);
385
-
386
- var yTextureRef = this.yTextureRef;
387
- var uTextureRef = this.uTextureRef;
388
- var vTextureRef = this.vTextureRef;
389
- gl.deleteTexture(yTextureRef);
390
- gl.deleteTexture(uTextureRef);
391
- gl.deleteTexture(vTextureRef);
392
- //gl.getExtension('WEBGL_lose_context').loseContext();
393
- };
394
-
395
- return RenderManager;
396
-
397
- }));
@@ -1 +0,0 @@
1
- "use strict";var vertexYUVShader=["#version 300 es","layout(location = 0) in vec4 vertexPos;","layout(location = 1) in vec2 texturePos;","out vec2 textureCoord;","void main()","{","gl_Position = vertexPos;","textureCoord = texturePos;","}"].join("\n");var fragmentYUVShader=["#version 300 es","precision highp float;","in vec2 textureCoord;","out vec4 fragColor;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","float y = texture(ySampler, textureCoord).r;","float u = texture(uSampler, textureCoord).r;","float v = texture(vSampler, textureCoord).r;","fragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join("\n");var vertexLineShader=["#version 300 es","layout(location = 0) in vec4 vertexPosLine;","void main()","{","gl_Position = vertexPosLine;","}"].join("\n");var fragmentLineShader=["#version 300 es","precision highp float;","uniform mediump float fRcom;","uniform mediump float fGcom;","uniform mediump float fBcom;","out vec4 fragColor;","void main()","{","fragColor = vec4(fRcom,fGcom,fBcom,1.0);","}"].join("\n");(function(e,r){e.SuperRender2=r()})(this,function(){function e(e){this.canvasElement=document.getElementById(e);this.initContextGL();if(this.contextGL){this.YUVProgram=this.initProgram(vertexYUVShader,fragmentYUVShader);this.LineProgram=this.initProgram(vertexLineShader,fragmentLineShader);this.initBuffers();this.initTextures()}}e.prototype.initContextGL=function(){var e=this.canvasElement;var r=null;try{r=e.getContext("webgl2")}catch(e){r=null}if(!r||typeof r.getParameter!=="function"){r=null}this.contextGL=r;console.log("WebGL2.0")};e.prototype.initProgram=function(e,r){var t=this.contextGL;var a=t.createShader(t.VERTEX_SHADER);t.shaderSource(a,e);t.compileShader(a);if(!t.getShaderParameter(a,t.COMPILE_STATUS)){console.log("Vertex shader failed to compile: "+t.getShaderInfoLog(a))}var i=t.createShader(t.FRAGMENT_SHADER);t.shaderSource(i,r);t.compileShader(i);if(!t.getShaderParameter(i,t.COMPILE_STATUS)){console.log("Fragment shader failed to compile: "+t.getShaderInfoLog(i))}var o=t.createProgram();t.attachShader(o,a);t.attachShader(o,i);t.linkProgram(o);if(!t.getProgramParameter(o,t.LINK_STATUS)){console.log("Program failed to compile: "+t.getProgramInfoLog(o))}t.deleteShader(a);t.deleteShader(i);return o};e.prototype.initBuffers=function(){var e=this.contextGL;var r=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,r);e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),e.STATIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,null);var t=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,t);e.bufferData(e.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),e.DYNAMIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,null);var a=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,a);e.bufferData(e.ARRAY_BUFFER,16,e.DYNAMIC_DRAW);e.bindBuffer(e.ARRAY_BUFFER,null);this.vertexPosBuffer=r;this.texturePosBuffer=t;this.vertexLineBuffer=a};e.prototype.initTextures=function(){var e=this.contextGL;var r=this.YUVProgram;e.useProgram(r);var t=this.initTexture();var a=e.getUniformLocation(r,"ySampler");e.uniform1i(a,0);this.yTextureRef=t;var i=this.initTexture();var o=e.getUniformLocation(r,"uSampler");e.uniform1i(o,1);this.uTextureRef=i;var n=this.initTexture();var f=e.getUniformLocation(r,"vSampler");e.uniform1i(f,2);this.vTextureRef=n;e.useProgram(null)};e.prototype.initTexture=function(){var e=this.contextGL;var r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);e.bindTexture(e.TEXTURE_2D,null);return r};e.prototype.SR_DisplayFrameData=function(e,r,t){if(e<=0||r<=0){return}var a=this.contextGL;if(null==t){a.clearColor(0,0,0,0);a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);return}var i=this.canvasElement;this.nWindowWidth=i.width;this.nWindowHeight=i.height;var o=this.nWindowWidth;var n=this.nWindowHeight;a.clearColor(.8,.8,1,1);a.clear(a.COLOR_BUFFER_BIT|a.DEPTH_BUFFER_BIT);a.viewport(0,0,o,n);this.updateFrameData(e,r,t);var f=this.YUVProgram;a.useProgram(f);var u=this.vertexPosBuffer;a.bindBuffer(a.ARRAY_BUFFER,u);var s=a.getAttribLocation(f,"vertexPos");a.enableVertexAttribArray(s);a.vertexAttribPointer(s,2,a.FLOAT,false,0,0);a.bindBuffer(a.ARRAY_BUFFER,null);var v=this.texturePosBuffer;a.bindBuffer(a.ARRAY_BUFFER,v);var l=a.getAttribLocation(f,"texturePos");a.enableVertexAttribArray(l);a.vertexAttribPointer(l,2,a.FLOAT,false,0,0);a.bindBuffer(a.ARRAY_BUFFER,null);a.drawArrays(a.TRIANGLE_STRIP,0,4);a.disableVertexAttribArray(s);a.disableVertexAttribArray(l);a.useProgram(null)};e.prototype.updateFrameData=function(e,r,t){var a=this.contextGL;var i=this.yTextureRef;var o=this.uTextureRef;var n=this.vTextureRef;var f=t;var u=e*r;var s=f.subarray(0,u);a.activeTexture(a.TEXTURE0);a.bindTexture(a.TEXTURE_2D,i);a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e,r,0,a.LUMINANCE,a.UNSIGNED_BYTE,s);var v=e/2*r/2;var l=f.subarray(u,u+v);a.activeTexture(a.TEXTURE1);a.bindTexture(a.TEXTURE_2D,o);a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,r/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,l);var R=v;var m=f.subarray(u+v,u+v+R);a.activeTexture(a.TEXTURE2);a.bindTexture(a.TEXTURE_2D,n);a.texImage2D(a.TEXTURE_2D,0,a.LUMINANCE,e/2,r/2,0,a.LUMINANCE,a.UNSIGNED_BYTE,m)};e.prototype.SR_DrawLine=function(e,r,t,a){var i=this.contextGL;var o=this.nWindowWidth;var n=this.nWindowHeight;var f=this.LineProgram;i.useProgram(f);var u=i.getUniformLocation(f,"fRcom");i.uniform1f(u,t.fR);var s=i.getUniformLocation(f,"fGcom");i.uniform1f(s,t.fG);var v=i.getUniformLocation(f,"fBcom");i.uniform1f(v,t.fB);var l=e.fX/o*2-1;var R=-(e.fY/n)*2+1;var m=r.fX/o*2-1;var h=-(r.fY/n)*2+1;var E=this.vertexLineBuffer;i.bindBuffer(i.ARRAY_BUFFER,E);i.bufferSubData(i.ARRAY_BUFFER,0,new Float32Array([l,R,m,h]));var T=i.getAttribLocation(f,"vertexPosLine");i.enableVertexAttribArray(T);i.vertexAttribPointer(T,2,i.FLOAT,false,0,0);i.bindBuffer(i.ARRAY_BUFFER,null);i.drawArrays(i.LINES,0,2);i.disableVertexAttribArray(T);i.useProgram(null)};e.prototype.SR_SetDisplayRect=function(e){var r=this.contextGL;var t=this.nWindowWidth;var a=this.nWindowHeight;var i=null;if(e&&t>0&&a>0){var o=e.left/t;var n=e.top/a;var f=e.right/t;var u=e.bottom/a;i=new Float32Array([f,n,o,n,f,u,o,u])}else{i=new Float32Array([1,0,0,0,1,1,0,1])}var s=this.texturePosBuffer;r.bindBuffer(r.ARRAY_BUFFER,s);r.bufferSubData(r.ARRAY_BUFFER,0,i);r.bindBuffer(r.ARRAY_BUFFER,null)};e.prototype.SR_Destroy=function(){var e=this.contextGL;var r=this.YUVProgram;e.deleteProgram(r);var t=this.LineProgram;e.deleteProgram(t);var a=this.vertexPosBuffer;var i=this.texturePosBuffer;var o=this.vertexLineBuffer;e.deleteBuffer(a);e.deleteBuffer(i);e.deleteBuffer(o);var n=this.yTextureRef;var f=this.uTextureRef;var u=this.vTextureRef;e.deleteTexture(n);e.deleteTexture(f);e.deleteTexture(u)};return e});