@elastic/charts 46.3.0 → 46.6.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.
- package/CHANGELOG.md +26 -0
- package/dist/chart_types/flame_chart/flame_chart.js +107 -45
- package/dist/chart_types/flame_chart/flame_chart.js.map +1 -1
- package/dist/chart_types/flame_chart/render/common.js +1 -1
- package/dist/chart_types/flame_chart/render/draw_a_frame.js +13 -15
- package/dist/chart_types/flame_chart/render/draw_a_frame.js.map +1 -1
- package/dist/chart_types/flame_chart/render/draw_canvas.js +8 -6
- package/dist/chart_types/flame_chart/render/draw_canvas.js.map +1 -1
- package/dist/chart_types/flame_chart/render/draw_webgl.js +2 -2
- package/dist/chart_types/flame_chart/render/draw_webgl.js.map +1 -1
- package/dist/chart_types/flame_chart/render/ensure_webgl.js +21 -20
- package/dist/chart_types/flame_chart/render/ensure_webgl.js.map +1 -1
- package/dist/chart_types/flame_chart/render/upload_to_webgl.d.ts +2 -0
- package/dist/chart_types/flame_chart/render/upload_to_webgl.d.ts.map +1 -0
- package/dist/chart_types/flame_chart/render/upload_to_webgl.js +12 -0
- package/dist/chart_types/flame_chart/render/upload_to_webgl.js.map +1 -0
- package/dist/chart_types/flame_chart/shaders.js +20 -10
- package/dist/chart_types/flame_chart/shaders.js.map +1 -1
- package/dist/chart_types/flame_chart/types.js.map +1 -1
- package/dist/common/default_theme_attributes.d.ts +2 -0
- package/dist/common/default_theme_attributes.d.ts.map +1 -0
- package/dist/common/default_theme_attributes.js +5 -0
- package/dist/common/default_theme_attributes.js.map +1 -0
- package/dist/common/kingly.js +84 -67
- package/dist/common/kingly.js.map +1 -1
- package/dist/state/selectors/get_legend_size.js +2 -2
- package/dist/state/selectors/get_legend_size.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draw_canvas.js","sourceRoot":"","sources":["../../../../src/chart_types/flame_chart/render/draw_canvas.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"draw_canvas.js","sourceRoot":"","sources":["../../../../src/chart_types/flame_chart/render/draw_canvas.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ var MIN_FILL_RATIO = [1 - MAX_PADDING_RATIO, 0.6];
|
|
|
8
8
|
var CORNER_RADIUS_RATIO = 0.25;
|
|
9
9
|
var VERTICES_PER_GEOM = 4;
|
|
10
10
|
var DUMMY_INDEX = -1;
|
|
11
|
-
var drawWebgl = function (gl, logicalTime, canvasWidth, canvasHeight, xOffset, yOffset, pickTexture, renderer, hoverIndex, rowHeight,
|
|
11
|
+
var drawWebgl = function (gl, logicalTime, canvasWidth, canvasHeight, xOffset, yOffset, pickTexture, renderer, hoverIndex, rowHeight, f, instanceCount, focusLayer, pickLayer) {
|
|
12
12
|
return renderer({
|
|
13
13
|
target: pickLayer ? pickTexture.target() : null,
|
|
14
14
|
uniformValues: {
|
|
@@ -21,7 +21,7 @@ var drawWebgl = function (gl, logicalTime, canvasWidth, canvasHeight, xOffset, y
|
|
|
21
21
|
hoverIndex: Number.isFinite(hoverIndex) ? hoverIndex + shaders_1.GEOM_INDEX_OFFSET : DUMMY_INDEX,
|
|
22
22
|
rowHeight0: rowHeight,
|
|
23
23
|
rowHeight1: rowHeight,
|
|
24
|
-
focus:
|
|
24
|
+
focus: [f[0], f[1], 0, 0, f[2], f[3], 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
25
25
|
},
|
|
26
26
|
viewport: { x: xOffset, y: yOffset, width: canvasWidth, height: canvasHeight },
|
|
27
27
|
clear: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draw_webgl.js","sourceRoot":"","sources":["../../../../src/chart_types/flame_chart/render/draw_webgl.ts"],"names":[],"mappings":";;;AASA,sCAA+C;AAC/C,mCAAgE;AAGhE,IAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,IAAM,cAAc,GAAG,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,CAAC,CAAC;AACpD,IAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,IAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,IAAM,WAAW,GAAG,CAAC,CAAC,CAAC;AAGhB,IAAM,SAAS,GAAG,UACvB,EAA0B,EAC1B,WAAmB,EACnB,WAAmB,EACnB,YAAoB,EACpB,OAAe,EACf,OAAe,EACf,WAAoB,EACpB,QAAgB,EAChB,UAAkB,EAClB,SAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"draw_webgl.js","sourceRoot":"","sources":["../../../../src/chart_types/flame_chart/render/draw_webgl.ts"],"names":[],"mappings":";;;AASA,sCAA+C;AAC/C,mCAAgE;AAGhE,IAAM,iBAAiB,GAAG,IAAI,CAAC;AAC/B,IAAM,cAAc,GAAG,CAAC,CAAC,GAAG,iBAAiB,EAAE,GAAG,CAAC,CAAC;AACpD,IAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,IAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,IAAM,WAAW,GAAG,CAAC,CAAC,CAAC;AAGhB,IAAM,SAAS,GAAG,UACvB,EAA0B,EAC1B,WAAmB,EACnB,WAAmB,EACnB,YAAoB,EACpB,OAAe,EACf,OAAe,EACf,WAAoB,EACpB,QAAgB,EAChB,UAAkB,EAClB,SAAiB,EACjB,CAAmC,EACnC,aAAqB,EACrB,UAAmB,EACnB,SAAkB;IAElB,OAAA,QAAQ,CAAC;QACP,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;QAC/C,aAAa,EAAE;YACb,SAAS,WAAA;YACT,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC;YAC/B,UAAU,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC;YACvC,KAAK,EAAE,SAAS,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2BAAkB,EAAE,yBAAgB,CAAC;YACjF,YAAY,EAAE,cAAc;YAC5B,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,SAAS,GAAG,mBAAmB;YAC9E,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,2BAAiB,CAAC,CAAC,CAAC,WAAW;YACtF,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;YACrB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACpE;QACD,QAAQ,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE;QAC9E,KAAK,EAAE;YACL,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACpD,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;SACpD;QACD,IAAI,EACF,SAAS,IAAI,CAAC,UAAU;YACtB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC;gBACE,IAAI,EAAE,EAAE,CAAC,cAAc;gBACvB,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,iBAAiB;gBACxB,aAAa,eAAA;aACd;KACR,CAAC;AA5BF,CA4BE,CAAC;AA5CQ,QAAA,SAAS,aA4CjB"}
|
|
@@ -1,34 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.ensureWebgl = void 0;
|
|
4
4
|
var kingly_1 = require("../../../common/kingly");
|
|
5
|
+
var webgl_constants_1 = require("../../../common/webgl_constants");
|
|
5
6
|
var shaders_1 = require("../shaders");
|
|
6
7
|
var types_1 = require("../types");
|
|
7
8
|
function ensureWebgl(gl, instanceAttributes) {
|
|
9
|
+
(0, kingly_1.resetState)(gl);
|
|
8
10
|
var vao = gl.createVertexArray();
|
|
9
11
|
if (!vao)
|
|
10
12
|
return types_1.NULL_GL_RESOURCES;
|
|
11
13
|
(0, kingly_1.bindVertexArray)(gl, vao);
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
14
|
+
instanceAttributes.forEach(function (name) { return gl.vertexAttribDivisor(shaders_1.attributeLocations[name], 1); });
|
|
15
|
+
var geomProgram = (0, kingly_1.createLinkedProgram)(gl, (0, kingly_1.createCompiledShader)(gl, webgl_constants_1.GL.VERTEX_SHADER, shaders_1.roundedRectVert), (0, kingly_1.createCompiledShader)(gl, webgl_constants_1.GL.FRAGMENT_SHADER, shaders_1.roundedRectFrag), shaders_1.attributeLocations);
|
|
16
|
+
var pickProgram = (0, kingly_1.createLinkedProgram)(gl, (0, kingly_1.createCompiledShader)(gl, webgl_constants_1.GL.VERTEX_SHADER, shaders_1.simpleRectVert), (0, kingly_1.createCompiledShader)(gl, webgl_constants_1.GL.FRAGMENT_SHADER, shaders_1.colorFrag), shaders_1.attributeLocations);
|
|
17
|
+
var blockUniformsData = (0, kingly_1.blockUniforms)(gl, 'Settings', [
|
|
18
|
+
'focus',
|
|
19
|
+
'resolution',
|
|
20
|
+
'gapPx',
|
|
21
|
+
'minFillRatio',
|
|
22
|
+
'rowHeight0',
|
|
23
|
+
'rowHeight1',
|
|
24
|
+
't',
|
|
25
|
+
'cornerRadiusPx',
|
|
26
|
+
'hoverIndex',
|
|
27
|
+
'pickLayer',
|
|
28
|
+
], [geomProgram, pickProgram]);
|
|
29
|
+
var roundedRectRenderer = (0, kingly_1.getRenderer)(gl, geomProgram, blockUniformsData, vao, { depthTest: false, blend: true });
|
|
30
|
+
var pickTextureRenderer = (0, kingly_1.getRenderer)(gl, pickProgram, blockUniformsData, vao, { depthTest: false, blend: false });
|
|
31
|
+
var attributes = (0, kingly_1.getAttributes)(gl, geomProgram, shaders_1.attributeLocations);
|
|
23
32
|
return { roundedRectRenderer: roundedRectRenderer, pickTextureRenderer: pickTextureRenderer, attributes: attributes };
|
|
24
33
|
}
|
|
25
34
|
exports.ensureWebgl = ensureWebgl;
|
|
26
|
-
function uploadToWebgl(gl, attributes, columnarViewModel) {
|
|
27
|
-
attributes.forEach(function (setValue, key) {
|
|
28
|
-
var value = columnarViewModel[key];
|
|
29
|
-
if (value instanceof Float32Array)
|
|
30
|
-
setValue(value);
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
exports.uploadToWebgl = uploadToWebgl;
|
|
34
35
|
//# sourceMappingURL=ensure_webgl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensure_webgl.js","sourceRoot":"","sources":["../../../../src/chart_types/flame_chart/render/ensure_webgl.ts"],"names":[],"mappings":";;;AAQA,
|
|
1
|
+
{"version":3,"file":"ensure_webgl.js","sourceRoot":"","sources":["../../../../src/chart_types/flame_chart/render/ensure_webgl.ts"],"names":[],"mappings":";;;AAQA,iDAQgC;AAChC,mEAAqD;AACrD,sCAA6G;AAC7G,kCAA0D;AAG1D,SAAgB,WAAW,CACzB,EAA0B,EAC1B,kBAA0D;IAE1D,IAAA,mBAAU,EAAC,EAAE,CAAC,CAAC;IAMf,IAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,EAAE,CAAC;IACnC,IAAI,CAAC,GAAG;QAAE,OAAO,yBAAiB,CAAC;IAEnC,IAAA,wBAAe,EAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAGzB,kBAAkB,CAAC,OAAO,CAAC,UAAC,IAAI,IAAK,OAAA,EAAE,CAAC,mBAAmB,CAAC,4BAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAnD,CAAmD,CAAC,CAAC;IAM1F,IAAM,WAAW,GAAG,IAAA,4BAAmB,EACrC,EAAE,EACF,IAAA,6BAAoB,EAAC,EAAE,EAAE,oBAAE,CAAC,aAAa,EAAE,yBAAe,CAAC,EAC3D,IAAA,6BAAoB,EAAC,EAAE,EAAE,oBAAE,CAAC,eAAe,EAAE,yBAAe,CAAC,EAC7D,4BAAkB,CACnB,CAAC;IAEF,IAAM,WAAW,GAAG,IAAA,4BAAmB,EACrC,EAAE,EACF,IAAA,6BAAoB,EAAC,EAAE,EAAE,oBAAE,CAAC,aAAa,EAAE,wBAAc,CAAC,EAC1D,IAAA,6BAAoB,EAAC,EAAE,EAAE,oBAAE,CAAC,eAAe,EAAE,mBAAS,CAAC,EACvD,4BAAkB,CACnB,CAAC;IAEF,IAAM,iBAAiB,GAAG,IAAA,sBAAa,EACrC,EAAE,EACF,UAAU,EACV;QACE,OAAO;QACP,YAAY;QACZ,OAAO;QACP,cAAc;QACd,YAAY;QACZ,YAAY;QACZ,GAAG;QACH,gBAAgB;QAChB,YAAY;QACZ,WAAW;KACZ,EACD,CAAC,WAAW,EAAE,WAAW,CAAC,CAC3B,CAAC;IAOF,IAAM,mBAAmB,GAAG,IAAA,oBAAW,EAAC,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpH,IAAM,mBAAmB,GAAG,IAAA,oBAAW,EAAC,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAErH,IAAM,UAAU,GAAG,IAAA,sBAAa,EAAC,EAAE,EAAE,WAAW,EAAE,4BAAkB,CAAC,CAAC;IAEtE,OAAO,EAAE,mBAAmB,qBAAA,EAAE,mBAAmB,qBAAA,EAAE,UAAU,YAAA,EAAE,CAAC;AAClE,CAAC;AAjED,kCAiEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload_to_webgl.d.ts","sourceRoot":"","sources":["../../../../src/chart_types/flame_chart/render/upload_to_webgl.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uploadToWebgl = void 0;
|
|
4
|
+
function uploadToWebgl(gl, attributes, columnarViewModel) {
|
|
5
|
+
attributes.forEach(function (setValue, key) {
|
|
6
|
+
var value = columnarViewModel[key];
|
|
7
|
+
if (value instanceof Float32Array)
|
|
8
|
+
setValue(value);
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
exports.uploadToWebgl = uploadToWebgl;
|
|
12
|
+
//# sourceMappingURL=upload_to_webgl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload_to_webgl.js","sourceRoot":"","sources":["../../../../src/chart_types/flame_chart/render/upload_to_webgl.ts"],"names":[],"mappings":";;;AAYA,SAAgB,aAAa,CAC3B,EAA0B,EAC1B,UAAsB,EACtB,iBAA6C;IAE7C,UAAU,CAAC,OAAO,CAAC,UAAC,QAAQ,EAAE,GAAG;QAC/B,IAAM,KAAK,GAAG,iBAAiB,CAAC,GAA8B,CAAC,CAAC;QAChE,IAAI,KAAK,YAAY,YAAY;YAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC;AATD,sCASC"}
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
-
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
-
return cooked;
|
|
5
|
-
};
|
|
6
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.colorFrag = exports.roundedRectFrag = exports.
|
|
8
|
-
|
|
3
|
+
exports.colorFrag = exports.roundedRectFrag = exports.roundedRectVert = exports.simpleRectVert = exports.GEOM_INDEX_OFFSET = exports.attributeLocations = void 0;
|
|
4
|
+
exports.attributeLocations = {
|
|
5
|
+
position0: 0,
|
|
6
|
+
position1: 1,
|
|
7
|
+
size0: 2,
|
|
8
|
+
size1: 3,
|
|
9
|
+
color: 4,
|
|
10
|
+
};
|
|
9
11
|
exports.GEOM_INDEX_OFFSET = 1;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var
|
|
12
|
+
var vertTop = "#version 300 es\n #pragma STDGL invariant(all)\n precision highp int;\n precision highp float;\n";
|
|
13
|
+
var fragTop = "#version 300 es\n precision highp int;\n precision highp float;\n";
|
|
14
|
+
var attribDefs = "\n layout(location=" + exports.attributeLocations.position0 + ") in vec2 position0;\n layout(location=" + exports.attributeLocations.position1 + ") in vec2 position1;\n layout(location=" + exports.attributeLocations.size0 + ") in float size0;\n layout(location=" + exports.attributeLocations.size1 + ") in float size1;\n layout(location=" + exports.attributeLocations.color + ") in vec4 color;\n";
|
|
15
|
+
var uniformDefs = "\n uniform Settings {\n mat4 focus; // [[focusLoX, focusHiX], [focusLoY, focusHiY]]\n vec2 resolution;\n vec2 gapPx;\n vec2 minFillRatio; // at least this ratio of the rectangle's full width/height must be filled\n float rowHeight0;\n float rowHeight1;\n float t; // 0: start position; 1: end position\n float cornerRadiusPx;\n int hoverIndex;\n bool pickLayer;\n };\n";
|
|
16
|
+
var constants = "\n const vec4 UNIT4 = vec4(1.0);\n const uvec4 BIT_SHIFTERS = uvec4(24, 16, 8, 0); // helps pack a 32bit unsigned integer into the RGBA bytes\n const float HOVER_OPACITY = 0.382; // arbitrary; set to the smaller part of the golden ratio\n const int GEOM_INDEX_OFFSET = " + exports.GEOM_INDEX_OFFSET + ";\n";
|
|
17
|
+
var structGeom = "\n struct Geom {\n vec2 unitSquareCoord;\n vec2 size;\n vec4 glPosition;\n vec4 fragmentColor;\n };\n";
|
|
18
|
+
var getViewable = "\n vec2 getViewable() {\n float viewableX = focus[0][1] - focus[0][0];\n float viewableY = focus[1][1] - focus[1][0];\n return vec2(viewableX, viewableY);\n }\n";
|
|
19
|
+
var getGeom = "\n Geom getGeom(vec2 viewable, vec2 gapRatio, vec2 maxGapRatio) {\n // calculate the basic geometry invariant of gaps, rounding or zoom levels\n int x = gl_VertexID & 1; // x yields 0, 1, 0, 1 for gl_VertexID 0, 1, 2, 3\n int y = (gl_VertexID >> 1) & 1; // y yields 0, 0, 1, 1 for gl_VertexID 0, 1, 2, 3\n vec2 unitSquareCoord = vec2(x, y);\n vec2 position = mix(position0, position1, t);\n vec2 size = mix(vec2(size0, rowHeight0), vec2(size1, rowHeight1), t);\n vec2 fullSizeXY = size * unitSquareCoord;\n\n // determine what we're zooming/panning into\n vec2 baseXY = fullSizeXY + position;\n vec2 pan = vec2(focus[0][0], focus[1][0]);\n\n // gl_VertexID iterates as an integer index 0, 1, 2, ..., (offset + 0, offset + 1, ..., offset + count - 1)\n // these four coordinates form a rectangle, set up as two counterclockwise triangles with gl.TRIANGLE_STRIP\n // clip coordinate x/y goes from -1 to 1 of the viewport, so we center with this 0.5 subtraction\n vec2 gr = min(gapRatio, maxGapRatio * fullSizeXY);\n vec2 xy = baseXY - sign(unitSquareCoord) * gr;\n vec2 zoomPannedXY = (xy - pan) / viewable;\n\n // output the position and color values (approx. return values of our vertex shader)\n // project [0, 1] normalized values to [-1, 1] homogeneous clip space values\n vec4 glPosition = vec4(2.0 * zoomPannedXY - 1.0, 0, 1);\n\n vec4 fragmentColor = pickLayer\n ? vec4((uvec4(gl_InstanceID + GEOM_INDEX_OFFSET) >> BIT_SHIFTERS) % uvec4(256)) / 255.0\n : vec4(color.rgb, (gl_InstanceID == hoverIndex - GEOM_INDEX_OFFSET ? HOVER_OPACITY : 1.0) * color.a);\n\n return Geom(\n unitSquareCoord,\n size,\n glPosition,\n fragmentColor\n );\n }\n";
|
|
20
|
+
exports.simpleRectVert = vertTop + "\n " + attribDefs + "\n " + uniformDefs + "\n\n out vec4 fragmentColor;\n\n " + constants + "\n " + structGeom + "\n " + getViewable + "\n " + getGeom + "\n\n void main() {\n Geom g = getGeom(getViewable(), vec2(0), vec2(0));\n gl_Position = g.glPosition;\n fragmentColor = g.fragmentColor;\n }\n";
|
|
21
|
+
exports.roundedRectVert = vertTop + "\n " + attribDefs + "\n " + uniformDefs + "\n\n out vec4 fragmentColor;\n out vec2 corners[4];\n out float radiusPx;\n\n " + constants + "\n " + structGeom + "\n " + getViewable + "\n " + getGeom + "\n\n void main() {\n vec2 viewable = getViewable();\n\n // calculate the gap-aware geometry\n vec2 zoomedResolution = resolution / viewable;\n vec2 gapRatio = gapPx / zoomedResolution;\n\n vec2 maxGapRatio = 1.0 - minFillRatio;\n Geom g = getGeom(viewable, gapRatio, maxGapRatio);\n\n gl_Position = g.glPosition;\n fragmentColor = g.fragmentColor;\n\n // calculate rounded corner metrics for interpolation\n vec2 pixelSize = g.size * zoomedResolution;\n radiusPx = min(cornerRadiusPx, 0.5 * min(pixelSize.x, pixelSize.y));\n\n // output the corner helper values (approx. return values of our vertex shader)\n corners[0] = g.unitSquareCoord * g.size * zoomedResolution - radiusPx;\n corners[1] = (g.unitSquareCoord * vec2(-1, 1) + vec2(1, 0)) * g.size * zoomedResolution - radiusPx;\n corners[2] = (g.unitSquareCoord * vec2(1, -1) + vec2(0, 1)) * g.size * zoomedResolution - radiusPx;\n corners[3] = (1.0 - g.unitSquareCoord) * g.size * zoomedResolution - radiusPx;\n }\n";
|
|
22
|
+
exports.roundedRectFrag = fragTop + "\n in vec4 fragmentColor;\n in vec2 corners[4];\n in float radiusPx;\n\n out vec4 fragColor;\n\n void main() {\n if(( min(0.0, sign(corners[0].x) + sign(corners[0].y) + sign(radiusPx - length(corners[0])) + 2.0)\n + min(0.0, sign(corners[1].x) + sign(corners[1].y) + sign(radiusPx - length(corners[1])) + 2.0)\n + min(0.0, sign(corners[2].x) + sign(corners[2].y) + sign(radiusPx - length(corners[2])) + 2.0)\n + min(0.0, sign(corners[3].x) + sign(corners[3].y) + sign(radiusPx - length(corners[3])) + 2.0)\n ) < 0.0) discard;\n fragColor = fragmentColor;\n }\n";
|
|
23
|
+
exports.colorFrag = fragTop + "\n in vec4 fragmentColor;\n out vec4 fragColor;\n void main() { fragColor = fragmentColor; }\n";
|
|
14
24
|
//# sourceMappingURL=shaders.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shaders.js","sourceRoot":"","sources":["../../../src/chart_types/flame_chart/shaders.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shaders.js","sourceRoot":"","sources":["../../../src/chart_types/flame_chart/shaders.ts"],"names":[],"mappings":";;;AASa,QAAA,kBAAkB,GAAG;IAChC,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;AAGW,QAAA,iBAAiB,GAAG,CAAC,CAAC;AAEnC,IAAM,OAAO,GAAuB,qGAInC,CAAC;AAEF,IAAM,OAAO,GAAuB,qEAGnC,CAAC;AAEF,IAAM,UAAU,GAAuB,yBACnB,0BAAkB,CAAC,SAAS,gDAC5B,0BAAkB,CAAC,SAAS,gDAC5B,0BAAkB,CAAC,KAAK,6CACxB,0BAAkB,CAAC,KAAK,6CACxB,0BAAkB,CAAC,KAAK,uBAC3C,CAAC;AAEF,IAAM,WAAW,GAAuB,kZAavC,CAAC;AAEF,IAAM,SAAS,GAAuB,sRAIJ,yBAAiB,QAClD,CAAC;AAEF,IAAM,UAAU,GAAuB,qHAOtC,CAAC;AAEF,IAAM,WAAW,GAAuB,6KAMvC,CAAC;AAEF,IAAM,OAAO,GAAuB,wtDAoCnC,CAAC;AAGW,QAAA,cAAc,GAA0B,OAAO,YACxD,UAAU,YACV,WAAW,2CAIX,SAAS,YACT,UAAU,YACV,WAAW,YACX,OAAO,8JAOV,CAAC;AAGW,QAAA,eAAe,GAA0B,OAAO,YACzD,UAAU,YACV,WAAW,0FAMX,SAAS,YACT,UAAU,YACV,WAAW,YACX,OAAO,kgCAyBV,CAAC;AAGW,QAAA,eAAe,GAA0B,OAAO,imBAe5D,CAAC;AAGW,QAAA,SAAS,GAA0B,OAAO,sGAItD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/chart_types/flame_chart/types.ts"],"names":[],"mappings":";;;AAmBa,QAAA,iBAAiB,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/chart_types/flame_chart/types.ts"],"names":[],"mappings":";;;AAmBa,QAAA,iBAAiB,GAAgB;IAC5C,mBAAmB,EAAE,cAAO,CAAC;IAC7B,mBAAmB,EAAE,cAAO,CAAC;IAC7B,UAAU,EAAE,IAAI,GAAG,EAAE;CACtB,CAAC;AAmBW,QAAA,qBAAqB,GAAG;IACnC,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,IAAI,YAAY,EAAE;IACzB,KAAK,EAAE,IAAI,YAAY,EAAE;IACzB,SAAS,EAAE,IAAI,YAAY,EAAE;IAC7B,SAAS,EAAE,IAAI,YAAY,EAAE;IAC7B,KAAK,EAAE,IAAI,YAAY,EAAE;IACzB,KAAK,EAAE,IAAI,YAAY,EAAE;CAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default_theme_attributes.d.ts","sourceRoot":"","sources":["../../src/common/default_theme_attributes.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_FONT_FAMILY = void 0;
|
|
4
|
+
exports.DEFAULT_FONT_FAMILY = '"Inter UI", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"';
|
|
5
|
+
//# sourceMappingURL=default_theme_attributes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default_theme_attributes.js","sourceRoot":"","sources":["../../src/common/default_theme_attributes.ts"],"names":[],"mappings":";;;AASa,QAAA,mBAAmB,GAC9B,mJAAmJ,CAAC"}
|
package/dist/common/kingly.js
CHANGED
|
@@ -26,7 +26,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
26
26
|
};
|
|
27
27
|
var _a, _b, _c, _d, _e;
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
29
|
+
exports.testContextLoss = exports.getRenderer = exports.bindVertexArray = exports.getAttributes = exports.readPixel = exports.createTexture = exports.NullTexture = exports.bindFramebuffer = exports.clearRect = exports.blockUniforms = exports.createLinkedProgram = exports.createCompiledShader = exports.resetState = void 0;
|
|
30
30
|
var webgl_constants_1 = require("./webgl_constants");
|
|
31
31
|
var GL_DEBUG = true;
|
|
32
32
|
var currentPrograms = new WeakMap();
|
|
@@ -107,23 +107,20 @@ var flagSet = function (gl, key, value) {
|
|
|
107
107
|
flags[key] = value;
|
|
108
108
|
}
|
|
109
109
|
};
|
|
110
|
-
exports.GL_FRAGMENT_SHADER = 0x8b30;
|
|
111
|
-
exports.GL_VERTEX_SHADER = 0x8b31;
|
|
112
110
|
var createCompiledShader = function (gl, shaderType, source) {
|
|
113
111
|
var shader = gl.createShader(shaderType);
|
|
114
112
|
if (!shader)
|
|
115
113
|
throw new Error("Whoa, shader could not be created");
|
|
116
114
|
gl.shaderSource(shader, source);
|
|
117
115
|
gl.compileShader(shader);
|
|
118
|
-
if (GL_DEBUG && !gl.getShaderParameter(shader, webgl_constants_1.GL.COMPILE_STATUS)) {
|
|
119
|
-
var shaderTypeName = shaderType ===
|
|
116
|
+
if (GL_DEBUG && !gl.getShaderParameter(shader, webgl_constants_1.GL.COMPILE_STATUS) && !gl.isContextLost()) {
|
|
117
|
+
var shaderTypeName = shaderType === webgl_constants_1.GL.VERTEX_SHADER ? 'vertex' : 'fragment';
|
|
120
118
|
throw new Error("Whoa, compilation error in a " + shaderTypeName + " shader: " + gl.getShaderInfoLog(shader));
|
|
121
119
|
}
|
|
122
120
|
return shader;
|
|
123
121
|
};
|
|
124
122
|
exports.createCompiledShader = createCompiledShader;
|
|
125
123
|
var createLinkedProgram = function (gl, vertexShader, fragmentShader, attributeLocations) {
|
|
126
|
-
if (attributeLocations === void 0) { attributeLocations = new Map(); }
|
|
127
124
|
var program = gl.createProgram();
|
|
128
125
|
if (!program)
|
|
129
126
|
throw new Error("Whoa, shader program could not be created");
|
|
@@ -131,13 +128,16 @@ var createLinkedProgram = function (gl, vertexShader, fragmentShader, attributeL
|
|
|
131
128
|
gl.attachShader(program, fragmentShader);
|
|
132
129
|
if (GL_DEBUG && gl.getProgramParameter(program, webgl_constants_1.GL.ATTACHED_SHADERS) !== 2)
|
|
133
130
|
throw new Error('Did not manage to attach the two shaders');
|
|
134
|
-
attributeLocations.forEach(function (
|
|
131
|
+
Object.entries(attributeLocations).forEach(function (_a) {
|
|
132
|
+
var _b = __read(_a, 2), name = _b[0], i = _b[1];
|
|
133
|
+
return gl.bindAttribLocation(program, i, name);
|
|
134
|
+
});
|
|
135
135
|
gl.linkProgram(program);
|
|
136
136
|
if (GL_DEBUG) {
|
|
137
|
-
if (!gl.getProgramParameter(program, webgl_constants_1.GL.LINK_STATUS))
|
|
137
|
+
if (!gl.getProgramParameter(program, webgl_constants_1.GL.LINK_STATUS) && !gl.isContextLost())
|
|
138
138
|
throw new Error("Whoa, shader program failed to link: " + gl.getProgramInfoLog(program));
|
|
139
139
|
gl.validateProgram(program);
|
|
140
|
-
if (!gl.getProgramParameter(program, webgl_constants_1.GL.LINK_STATUS))
|
|
140
|
+
if (!gl.getProgramParameter(program, webgl_constants_1.GL.LINK_STATUS) && !gl.isContextLost())
|
|
141
141
|
throw new Error("Whoa, could not validate the shader program: " + gl.getProgramInfoLog(program));
|
|
142
142
|
}
|
|
143
143
|
if (!GL_DEBUG) {
|
|
@@ -213,7 +213,7 @@ var uniformSetterLookup = (_a = {},
|
|
|
213
213
|
}
|
|
214
214
|
}; },
|
|
215
215
|
_a);
|
|
216
|
-
var getUniforms = function (gl, program) {
|
|
216
|
+
var getUniforms = function (gl, program, uboInfo) {
|
|
217
217
|
if (programUniforms.has(program))
|
|
218
218
|
return programUniforms.get(program);
|
|
219
219
|
var uniforms = new Map(__spreadArray([], __read(new Array(gl.getProgramParameter(program, webgl_constants_1.GL.ACTIVE_UNIFORMS))), false).map(function (_, index) {
|
|
@@ -222,9 +222,9 @@ var getUniforms = function (gl, program) {
|
|
|
222
222
|
throw new Error("Whoa, active uniform not found");
|
|
223
223
|
var name = activeUniform.name, type = activeUniform.type;
|
|
224
224
|
var location = gl.getUniformLocation(program, name);
|
|
225
|
-
if (location === null)
|
|
225
|
+
if (location === null && !uboInfo.has(name))
|
|
226
226
|
throw new Error("Whoa, uniform location " + location + " (name: " + name + ", type: " + type + ") not found");
|
|
227
|
-
var setValue = uniformSetterLookup[type](gl, location);
|
|
227
|
+
var setValue = location ? uniformSetterLookup[type](gl, location) : function () { };
|
|
228
228
|
if (GL_DEBUG && !setValue)
|
|
229
229
|
throw new Error("No setValue for uniform GL[" + type + "] (name: " + name + ") implemented yet");
|
|
230
230
|
return [name, setValue];
|
|
@@ -232,6 +232,27 @@ var getUniforms = function (gl, program) {
|
|
|
232
232
|
programUniforms.set(program, uniforms);
|
|
233
233
|
return uniforms;
|
|
234
234
|
};
|
|
235
|
+
function blockUniforms(gl, uniformBlockName, uboVariableNames, _a) {
|
|
236
|
+
var _b = __read(_a), program = _b[0], otherPrograms = _b.slice(1);
|
|
237
|
+
var blockIndex = gl.getUniformBlockIndex(program, uniformBlockName);
|
|
238
|
+
var blockSize = gl.getActiveUniformBlockParameter(program, blockIndex, webgl_constants_1.GL.UNIFORM_BLOCK_DATA_SIZE);
|
|
239
|
+
var uboBuffer = gl.createBuffer();
|
|
240
|
+
if (uboBuffer === null)
|
|
241
|
+
throw new Error('Whoa, could not create uboBuffer');
|
|
242
|
+
gl.bindBuffer(gl.UNIFORM_BUFFER, uboBuffer);
|
|
243
|
+
gl.bufferData(gl.UNIFORM_BUFFER, blockSize, gl.DYNAMIC_DRAW);
|
|
244
|
+
gl.bindBufferBase(gl.UNIFORM_BUFFER, 0, uboBuffer);
|
|
245
|
+
var uboVariableIndices = gl.getUniformIndices(program, uboVariableNames);
|
|
246
|
+
if (uboVariableIndices === null)
|
|
247
|
+
throw new Error('Whoa, could not get uboVariableIndices');
|
|
248
|
+
var uboVariableOffsets = gl.getActiveUniforms(program, uboVariableIndices, gl.UNIFORM_OFFSET);
|
|
249
|
+
var uniforms = new Map(uboVariableNames.map(function (name, i) { return [name, { index: uboVariableIndices[i], offset: uboVariableOffsets[i] }]; }));
|
|
250
|
+
__spreadArray([program], __read(otherPrograms), false).forEach(function (p) {
|
|
251
|
+
return gl.uniformBlockBinding(p, gl.getUniformBlockIndex(p, uniformBlockName), 0);
|
|
252
|
+
});
|
|
253
|
+
return { uboBuffer: uboBuffer, uniforms: uniforms };
|
|
254
|
+
}
|
|
255
|
+
exports.blockUniforms = blockUniforms;
|
|
235
256
|
var clearRect = function (gl, _a) {
|
|
236
257
|
var rect = _a.rect, color = _a.color, depth = _a.depth, stencilIndex = _a.stencilIndex;
|
|
237
258
|
if (rect) {
|
|
@@ -262,13 +283,10 @@ var textureTypeLookup = (_c = {},
|
|
|
262
283
|
_c[webgl_constants_1.GL.RGBA8] = webgl_constants_1.GL.UNSIGNED_BYTE,
|
|
263
284
|
_c[webgl_constants_1.GL.RGBA32F] = webgl_constants_1.GL.FLOAT,
|
|
264
285
|
_c);
|
|
265
|
-
exports.GL_READ_FRAMEBUFFER = 0x8ca8;
|
|
266
|
-
exports.GL_DRAW_FRAMEBUFFER = 0x8ca9;
|
|
267
|
-
exports.GL_FRAMEBUFFER = 0x8d40;
|
|
268
286
|
var bindFramebuffer = function (gl, target, targetFrameBuffer) {
|
|
269
|
-
var updateReadTarget = (target ===
|
|
287
|
+
var updateReadTarget = (target === webgl_constants_1.GL.READ_FRAMEBUFFER || target === webgl_constants_1.GL.FRAMEBUFFER) &&
|
|
270
288
|
targetFrameBuffer !== currentReadFrameBuffers.get(gl);
|
|
271
|
-
var updateWriteTarget = (target ===
|
|
289
|
+
var updateWriteTarget = (target === webgl_constants_1.GL.DRAW_FRAMEBUFFER || target === webgl_constants_1.GL.FRAMEBUFFER) &&
|
|
272
290
|
targetFrameBuffer !== currentDrawFrameBuffers.get(gl);
|
|
273
291
|
if (updateReadTarget)
|
|
274
292
|
currentReadFrameBuffers.set(gl, targetFrameBuffer);
|
|
@@ -276,10 +294,10 @@ var bindFramebuffer = function (gl, target, targetFrameBuffer) {
|
|
|
276
294
|
currentDrawFrameBuffers.set(gl, targetFrameBuffer);
|
|
277
295
|
if (updateReadTarget || updateWriteTarget) {
|
|
278
296
|
var targetToUpdate = updateReadTarget && updateWriteTarget
|
|
279
|
-
?
|
|
297
|
+
? webgl_constants_1.GL.FRAMEBUFFER
|
|
280
298
|
: updateReadTarget
|
|
281
|
-
?
|
|
282
|
-
:
|
|
299
|
+
? webgl_constants_1.GL.READ_FRAMEBUFFER
|
|
300
|
+
: webgl_constants_1.GL.DRAW_FRAMEBUFFER;
|
|
283
301
|
gl.bindFramebuffer(targetToUpdate, targetFrameBuffer);
|
|
284
302
|
}
|
|
285
303
|
};
|
|
@@ -293,9 +311,11 @@ exports.NullTexture = {
|
|
|
293
311
|
height: 0,
|
|
294
312
|
};
|
|
295
313
|
var createTexture = function (gl, _a) {
|
|
296
|
-
var textureIndex = _a.textureIndex, internalFormat = _a.internalFormat,
|
|
314
|
+
var textureIndex = _a.textureIndex, internalFormat = _a.internalFormat, w = _a.width, h = _a.height, data = _a.data, _b = _a.min, min = _b === void 0 ? webgl_constants_1.GL.NEAREST : _b, _c = _a.mag, mag = _c === void 0 ? webgl_constants_1.GL.NEAREST : _c;
|
|
297
315
|
if (GL_DEBUG && !(0 <= textureIndex && textureIndex <= gl.getParameter(webgl_constants_1.GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS)))
|
|
298
316
|
throw new Error('WebGL2 is guaranteed to support at least 32 textures but not necessarily more than that');
|
|
317
|
+
var width = Math.ceil(w);
|
|
318
|
+
var height = Math.ceil(h);
|
|
299
319
|
var srcFormat = textureSrcFormatLookup[internalFormat];
|
|
300
320
|
var type = textureTypeLookup[internalFormat];
|
|
301
321
|
var texture = gl.createTexture();
|
|
@@ -318,17 +338,20 @@ var createTexture = function (gl, _a) {
|
|
|
318
338
|
var getTarget = function () {
|
|
319
339
|
if (!frameBuffer) {
|
|
320
340
|
frameBuffer = gl.createFramebuffer();
|
|
321
|
-
(0, exports.bindFramebuffer)(gl,
|
|
322
|
-
gl.framebufferTexture2D(
|
|
323
|
-
if (GL_DEBUG
|
|
324
|
-
|
|
341
|
+
(0, exports.bindFramebuffer)(gl, webgl_constants_1.GL.DRAW_FRAMEBUFFER, frameBuffer);
|
|
342
|
+
gl.framebufferTexture2D(webgl_constants_1.GL.FRAMEBUFFER, webgl_constants_1.GL.COLOR_ATTACHMENT0, webgl_constants_1.GL.TEXTURE_2D, texture, 0);
|
|
343
|
+
if (GL_DEBUG) {
|
|
344
|
+
var framebufferStatus = gl.checkFramebufferStatus(webgl_constants_1.GL.DRAW_FRAMEBUFFER);
|
|
345
|
+
if (framebufferStatus !== webgl_constants_1.GL.FRAMEBUFFER_COMPLETE) {
|
|
346
|
+
throw new Error("Target framebuffer is not complete");
|
|
347
|
+
}
|
|
325
348
|
}
|
|
326
349
|
}
|
|
327
350
|
return frameBuffer;
|
|
328
351
|
};
|
|
329
352
|
return {
|
|
330
353
|
clear: function () {
|
|
331
|
-
(0, exports.bindFramebuffer)(gl,
|
|
354
|
+
(0, exports.bindFramebuffer)(gl, webgl_constants_1.GL.DRAW_FRAMEBUFFER, getTarget());
|
|
332
355
|
(0, exports.clearRect)(gl, { color: [0, 0, 0, 0] });
|
|
333
356
|
},
|
|
334
357
|
setUniform: function (location) { return gl.uniform1i(location, textureIndex); },
|
|
@@ -336,9 +359,9 @@ var createTexture = function (gl, _a) {
|
|
|
336
359
|
delete: function () {
|
|
337
360
|
if (frameBuffer) {
|
|
338
361
|
if (currentReadFrameBuffers.get(gl) === frameBuffer)
|
|
339
|
-
(0, exports.bindFramebuffer)(gl,
|
|
362
|
+
(0, exports.bindFramebuffer)(gl, webgl_constants_1.GL.READ_FRAMEBUFFER, null);
|
|
340
363
|
if (currentDrawFrameBuffers.get(gl) === frameBuffer)
|
|
341
|
-
(0, exports.bindFramebuffer)(gl,
|
|
364
|
+
(0, exports.bindFramebuffer)(gl, webgl_constants_1.GL.DRAW_FRAMEBUFFER, null);
|
|
342
365
|
gl.deleteFramebuffer(frameBuffer);
|
|
343
366
|
}
|
|
344
367
|
gl.deleteTexture(texture);
|
|
@@ -349,6 +372,12 @@ var createTexture = function (gl, _a) {
|
|
|
349
372
|
};
|
|
350
373
|
};
|
|
351
374
|
exports.createTexture = createTexture;
|
|
375
|
+
var pickPixel = new Uint8Array(4);
|
|
376
|
+
var readPixel = function (gl, canvasX, canvasY) {
|
|
377
|
+
gl.readPixels(canvasX, canvasY, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pickPixel);
|
|
378
|
+
return pickPixel;
|
|
379
|
+
};
|
|
380
|
+
exports.readPixel = readPixel;
|
|
352
381
|
var attribSizeLookup = (_d = {}, _d[webgl_constants_1.GL.FLOAT_VEC2] = 2, _d[webgl_constants_1.GL.FLOAT_VEC4] = 4, _d[webgl_constants_1.GL.FLOAT] = 1, _d[webgl_constants_1.GL.INT] = 1, _d);
|
|
353
382
|
var attribElementTypeLookup = (_e = {},
|
|
354
383
|
_e[webgl_constants_1.GL.FLOAT_VEC2] = webgl_constants_1.GL.FLOAT,
|
|
@@ -368,9 +397,7 @@ var getAttributes = function (gl, program, attributeLocations) {
|
|
|
368
397
|
var name = activeAttribInfo.name, type = activeAttribInfo.type;
|
|
369
398
|
if (name.startsWith('gl_'))
|
|
370
399
|
return [name, function () { }];
|
|
371
|
-
var location = attributeLocations
|
|
372
|
-
if (typeof location !== 'number')
|
|
373
|
-
throw new Error("Whoa, attribute location was not found in the cache");
|
|
400
|
+
var location = attributeLocations[name];
|
|
374
401
|
var buffer = gl.createBuffer();
|
|
375
402
|
gl.bindBuffer(webgl_constants_1.GL.ARRAY_BUFFER, buffer);
|
|
376
403
|
gl.enableVertexAttribArray(location);
|
|
@@ -399,9 +426,10 @@ var bindVertexArray = function (gl, vertexArrayObject) {
|
|
|
399
426
|
}
|
|
400
427
|
};
|
|
401
428
|
exports.bindVertexArray = bindVertexArray;
|
|
402
|
-
var getRenderer = function (gl, program, vao,
|
|
403
|
-
var
|
|
404
|
-
var
|
|
429
|
+
var getRenderer = function (gl, program, _a, vao, _b) {
|
|
430
|
+
var uniforms = _a.uniforms, uboBuffer = _a.uboBuffer;
|
|
431
|
+
var _c = _b.depthTest, depthTest = _c === void 0 ? false : _c, _d = _b.blend, blend = _d === void 0 ? true : _d, _e = _b.frontFace, frontFace = _e === void 0 ? webgl_constants_1.GL.CCW : _e;
|
|
432
|
+
var allUniforms = getUniforms(gl, program, uniforms);
|
|
405
433
|
return function (_a) {
|
|
406
434
|
var _b;
|
|
407
435
|
var uniformValues = _a.uniformValues, viewport = _a.viewport, target = _a.target, clear = _a.clear, scissor = _a.scissor, draw = _a.draw;
|
|
@@ -414,6 +442,7 @@ var getRenderer = function (gl, program, vao, _a) {
|
|
|
414
442
|
gl.depthMask(true);
|
|
415
443
|
gl.depthFunc(webgl_constants_1.GL.LESS);
|
|
416
444
|
gl.depthRange(0, 1);
|
|
445
|
+
gl.frontFace(frontFace);
|
|
417
446
|
flagSet(gl, webgl_constants_1.GL.CULL_FACE, true);
|
|
418
447
|
gl.cullFace(webgl_constants_1.GL.BACK);
|
|
419
448
|
gl.hint(webgl_constants_1.GL.FRAGMENT_SHADER_DERIVATIVE_HINT, webgl_constants_1.GL.NICEST);
|
|
@@ -431,9 +460,16 @@ var getRenderer = function (gl, program, vao, _a) {
|
|
|
431
460
|
(0, exports.bindVertexArray)(gl, vao);
|
|
432
461
|
if (viewport)
|
|
433
462
|
setViewport(gl, viewport.x, viewport.y, viewport.width, viewport.height);
|
|
434
|
-
if (uniformValues)
|
|
435
|
-
|
|
436
|
-
|
|
463
|
+
if (uniformValues) {
|
|
464
|
+
allUniforms.forEach(function (setValue, name) { return uniformValues[name] && !uniforms.has(name) && setValue(uniformValues[name]); });
|
|
465
|
+
gl.bindBuffer(webgl_constants_1.GL.UNIFORM_BUFFER, uboBuffer);
|
|
466
|
+
uniforms.forEach(function (_a, name) {
|
|
467
|
+
var offset = _a.offset;
|
|
468
|
+
var value = new Float32Array([uniformValues[name]].flat());
|
|
469
|
+
gl.bufferSubData(webgl_constants_1.GL.UNIFORM_BUFFER, offset, value, 0);
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
(0, exports.bindFramebuffer)(gl, webgl_constants_1.GL.DRAW_FRAMEBUFFER, target);
|
|
437
473
|
if (clear)
|
|
438
474
|
(0, exports.clearRect)(gl, clear);
|
|
439
475
|
if (draw) {
|
|
@@ -446,36 +482,17 @@ var getRenderer = function (gl, program, vao, _a) {
|
|
|
446
482
|
};
|
|
447
483
|
};
|
|
448
484
|
exports.getRenderer = getRenderer;
|
|
449
|
-
var
|
|
450
|
-
var
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
}
|
|
460
|
-
return strings
|
|
461
|
-
.map(function (s, i) { var _a; return "" + s + ((_a = args[i]) !== null && _a !== void 0 ? _a : ''); })
|
|
462
|
-
.join('')
|
|
463
|
-
.trim();
|
|
464
|
-
};
|
|
465
|
-
var vert = function (strings) {
|
|
466
|
-
var args = [];
|
|
467
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
468
|
-
args[_i - 1] = arguments[_i];
|
|
469
|
-
}
|
|
470
|
-
return "#version 300 es\n#pragma STDGL invariant(all)\nprecision highp int;\nprecision highp float;\n" + templateConcat.apply(void 0, __spreadArray([strings], __read(args), false));
|
|
471
|
-
};
|
|
472
|
-
exports.vert = vert;
|
|
473
|
-
var frag = function (strings) {
|
|
474
|
-
var args = [];
|
|
475
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
476
|
-
args[_i - 1] = arguments[_i];
|
|
485
|
+
var testContextLoss = function (gl) {
|
|
486
|
+
var lossTimeMs = 5000;
|
|
487
|
+
var regainTimeMs = 0;
|
|
488
|
+
var ext = gl.getExtension('WEBGL_lose_context');
|
|
489
|
+
if (ext) {
|
|
490
|
+
window.setInterval(function () {
|
|
491
|
+
console.log('Context loss test triggered, the webgl rendering will freeze or disappear');
|
|
492
|
+
ext.loseContext();
|
|
493
|
+
window.setTimeout(function () { return ext.restoreContext(); }, regainTimeMs);
|
|
494
|
+
}, lossTimeMs);
|
|
477
495
|
}
|
|
478
|
-
return "#version 300 es\nprecision highp int;\nprecision highp float;\n" + templateConcat.apply(void 0, __spreadArray([strings], __read(args), false));
|
|
479
496
|
};
|
|
480
|
-
exports.
|
|
497
|
+
exports.testContextLoss = testContextLoss;
|
|
481
498
|
//# sourceMappingURL=kingly.js.map
|