@wcardinal/wcardinal-ui 0.443.0 → 0.445.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/dist/types/wcardinal/ui/util/index.d.ts +1 -0
- package/dist/types/wcardinal/ui/util/util-extract.d.ts +13 -2
- package/dist/types/wcardinal/ui/util/util-extractor-canvas.d.ts +18 -0
- package/dist/types/wcardinal/ui/util/util-extractor.d.ts +3 -2
- package/dist/wcardinal/ui/shape/variant/e-shape-base.js +1 -0
- package/dist/wcardinal/ui/shape/variant/e-shape-base.js.map +1 -1
- package/dist/wcardinal/ui/util/index.js +1 -0
- package/dist/wcardinal/ui/util/index.js.map +1 -1
- package/dist/wcardinal/ui/util/util-extract.js +34 -10
- package/dist/wcardinal/ui/util/util-extract.js.map +1 -1
- package/dist/wcardinal/ui/util/util-extractor-canvas.js +110 -0
- package/dist/wcardinal/ui/util/util-extractor-canvas.js.map +1 -0
- package/dist/wcardinal/ui/util/util-extractor.js +45 -20
- package/dist/wcardinal/ui/util/util-extractor.js.map +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-dark-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-dark-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-dark.js +1 -1
- package/dist/wcardinal-ui-theme-dark.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.js +1 -1
- package/dist/wcardinal-ui-theme-white-en-us.min.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.js +1 -1
- package/dist/wcardinal-ui-theme-white-ja-jp.min.js +1 -1
- package/dist/wcardinal-ui-theme-white.js +1 -1
- package/dist/wcardinal-ui-theme-white.min.js +1 -1
- package/dist/wcardinal-ui.cjs.js +188 -30
- package/dist/wcardinal-ui.js +188 -30
- package/dist/wcardinal-ui.min.js +2 -2
- package/dist/wcardinal-ui.min.js.map +1 -1
- package/package.json +1 -1
package/dist/wcardinal-ui.cjs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Winter Cardinal UI v0.
|
|
2
|
+
Winter Cardinal UI v0.445.0
|
|
3
3
|
Copyright (C) 2019 Toshiba Corporation
|
|
4
4
|
SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
|
|
@@ -5442,6 +5442,7 @@ var EShapeBase = /** @class */ (function (_super) {
|
|
|
5442
5442
|
if (part & EShapeCopyPart.ACTION) {
|
|
5443
5443
|
this.action.clearAndAddAll(source.action.values);
|
|
5444
5444
|
this.interactive = source.interactive;
|
|
5445
|
+
this.title = source.title;
|
|
5445
5446
|
this.cursor = source.cursor;
|
|
5446
5447
|
this.shortcut = source.shortcut;
|
|
5447
5448
|
}
|
|
@@ -23628,6 +23629,115 @@ var DCanvasContainer = /** @class */ (function (_super) {
|
|
|
23628
23629
|
return DCanvasContainer;
|
|
23629
23630
|
}(DBase));
|
|
23630
23631
|
|
|
23632
|
+
var UtilExtractorCanvas = /** @class */ (function () {
|
|
23633
|
+
function UtilExtractorCanvas(width, height) {
|
|
23634
|
+
var element = document.createElement("canvas");
|
|
23635
|
+
this._element = element;
|
|
23636
|
+
var context = this._element.getContext("2d", {
|
|
23637
|
+
willReadFrequently: true
|
|
23638
|
+
});
|
|
23639
|
+
this._context = context;
|
|
23640
|
+
element.width = width;
|
|
23641
|
+
element.height = height;
|
|
23642
|
+
}
|
|
23643
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "element", {
|
|
23644
|
+
get: function () {
|
|
23645
|
+
var result = this._element;
|
|
23646
|
+
if (result != null) {
|
|
23647
|
+
return result;
|
|
23648
|
+
}
|
|
23649
|
+
throw new Error("No Element Available");
|
|
23650
|
+
},
|
|
23651
|
+
enumerable: false,
|
|
23652
|
+
configurable: true
|
|
23653
|
+
});
|
|
23654
|
+
UtilExtractorCanvas.prototype.getElement = function () {
|
|
23655
|
+
return this._element;
|
|
23656
|
+
};
|
|
23657
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "canvas", {
|
|
23658
|
+
get: function () {
|
|
23659
|
+
return this.element;
|
|
23660
|
+
},
|
|
23661
|
+
enumerable: false,
|
|
23662
|
+
configurable: true
|
|
23663
|
+
});
|
|
23664
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "context", {
|
|
23665
|
+
get: function () {
|
|
23666
|
+
var result = this._context;
|
|
23667
|
+
if (result != null) {
|
|
23668
|
+
return result;
|
|
23669
|
+
}
|
|
23670
|
+
throw new Error("No Context Available");
|
|
23671
|
+
},
|
|
23672
|
+
enumerable: false,
|
|
23673
|
+
configurable: true
|
|
23674
|
+
});
|
|
23675
|
+
UtilExtractorCanvas.prototype.getContext = function () {
|
|
23676
|
+
return this._context;
|
|
23677
|
+
};
|
|
23678
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "resolution", {
|
|
23679
|
+
get: function () {
|
|
23680
|
+
return 1;
|
|
23681
|
+
},
|
|
23682
|
+
enumerable: false,
|
|
23683
|
+
configurable: true
|
|
23684
|
+
});
|
|
23685
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "width", {
|
|
23686
|
+
get: function () {
|
|
23687
|
+
var element = this._element;
|
|
23688
|
+
if (element != null) {
|
|
23689
|
+
return element.width;
|
|
23690
|
+
}
|
|
23691
|
+
return 0;
|
|
23692
|
+
},
|
|
23693
|
+
set: function (width) {
|
|
23694
|
+
var element = this._element;
|
|
23695
|
+
if (element != null) {
|
|
23696
|
+
element.width = width;
|
|
23697
|
+
}
|
|
23698
|
+
},
|
|
23699
|
+
enumerable: false,
|
|
23700
|
+
configurable: true
|
|
23701
|
+
});
|
|
23702
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "height", {
|
|
23703
|
+
get: function () {
|
|
23704
|
+
var element = this._element;
|
|
23705
|
+
if (element != null) {
|
|
23706
|
+
return element.height;
|
|
23707
|
+
}
|
|
23708
|
+
return 0;
|
|
23709
|
+
},
|
|
23710
|
+
set: function (height) {
|
|
23711
|
+
var element = this._element;
|
|
23712
|
+
if (element != null) {
|
|
23713
|
+
element.height = height;
|
|
23714
|
+
}
|
|
23715
|
+
},
|
|
23716
|
+
enumerable: false,
|
|
23717
|
+
configurable: true
|
|
23718
|
+
});
|
|
23719
|
+
UtilExtractorCanvas.prototype.clear = function () {
|
|
23720
|
+
var element = this._element;
|
|
23721
|
+
var context = this._context;
|
|
23722
|
+
if (element != null && context != null) {
|
|
23723
|
+
context.setTransform(1, 0, 0, 1, 0, 0);
|
|
23724
|
+
context.clearRect(0, 0, element.width, element.height);
|
|
23725
|
+
}
|
|
23726
|
+
};
|
|
23727
|
+
UtilExtractorCanvas.prototype.resize = function (width, height) {
|
|
23728
|
+
var element = this._element;
|
|
23729
|
+
if (element != null) {
|
|
23730
|
+
element.width = width;
|
|
23731
|
+
element.height = height;
|
|
23732
|
+
}
|
|
23733
|
+
};
|
|
23734
|
+
UtilExtractorCanvas.prototype.destroy = function () {
|
|
23735
|
+
this._context = null;
|
|
23736
|
+
this._element = null;
|
|
23737
|
+
};
|
|
23738
|
+
return UtilExtractorCanvas;
|
|
23739
|
+
}());
|
|
23740
|
+
|
|
23631
23741
|
/*
|
|
23632
23742
|
* Copyright (C) 2019 Toshiba Corporation
|
|
23633
23743
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -23637,9 +23747,11 @@ var UtilExtractor = /** @class */ (function () {
|
|
|
23637
23747
|
}
|
|
23638
23748
|
UtilExtractor.toTexture = function (target, resolution, clear, skipUpdateTransform) {
|
|
23639
23749
|
var scale = target.transform.scale;
|
|
23750
|
+
var width = Math.max(1, Math.ceil(target.width * scale.x));
|
|
23751
|
+
var height = Math.max(1, Math.ceil(target.height * scale.y));
|
|
23640
23752
|
var result = pixi_js.RenderTexture.create({
|
|
23641
|
-
width:
|
|
23642
|
-
height:
|
|
23753
|
+
width: width,
|
|
23754
|
+
height: height,
|
|
23643
23755
|
scaleMode: pixi_js.SCALE_MODES.LINEAR,
|
|
23644
23756
|
resolution: resolution
|
|
23645
23757
|
});
|
|
@@ -23651,46 +23763,68 @@ var UtilExtractor = /** @class */ (function () {
|
|
|
23651
23763
|
return result;
|
|
23652
23764
|
};
|
|
23653
23765
|
UtilExtractor.toPixels = function (renderTexture, renderer) {
|
|
23766
|
+
var baseTexture = renderTexture.baseTexture;
|
|
23767
|
+
var realWidth = baseTexture.realWidth;
|
|
23768
|
+
var realHeight = baseTexture.realHeight;
|
|
23654
23769
|
var resolution = renderTexture.resolution;
|
|
23655
23770
|
var frame = renderTexture.frame;
|
|
23656
|
-
var
|
|
23657
|
-
var
|
|
23771
|
+
var x0 = Math.floor(frame.x * resolution);
|
|
23772
|
+
var y0 = Math.floor(frame.y * resolution);
|
|
23773
|
+
var x1 = Math.floor((frame.x + frame.width) * resolution);
|
|
23774
|
+
var y1 = Math.floor((frame.y + frame.height) * resolution);
|
|
23775
|
+
var width = Math.min(x1 - x0, realWidth);
|
|
23776
|
+
var height = Math.min(y1 - y0, realHeight);
|
|
23658
23777
|
var pixels = new Uint8Array(4 * width * height);
|
|
23659
|
-
|
|
23660
|
-
|
|
23661
|
-
|
|
23662
|
-
|
|
23663
|
-
|
|
23778
|
+
if (0 < width && 0 < height) {
|
|
23779
|
+
var oldRenderTexture = renderer.renderTexture.current;
|
|
23780
|
+
renderer.renderTexture.bind(renderTexture);
|
|
23781
|
+
var gl = renderer.gl;
|
|
23782
|
+
gl.readPixels(x0, y0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
|
|
23783
|
+
renderer.renderTexture.bind(oldRenderTexture);
|
|
23784
|
+
}
|
|
23664
23785
|
return {
|
|
23665
23786
|
width: width,
|
|
23666
23787
|
height: height,
|
|
23667
23788
|
array: pixels
|
|
23668
23789
|
};
|
|
23669
23790
|
};
|
|
23670
|
-
UtilExtractor.toCanvas = function (pixels, scale, ignorePremutipliedAlpha) {
|
|
23791
|
+
UtilExtractor.toCanvas = function (pixels, scale, ignorePremutipliedAlpha, result) {
|
|
23671
23792
|
var width = pixels.width;
|
|
23672
23793
|
var height = pixels.height;
|
|
23673
23794
|
var array = pixels.array;
|
|
23674
|
-
|
|
23675
|
-
|
|
23795
|
+
if (result == null) {
|
|
23796
|
+
result = new UtilExtractorCanvas(width, height);
|
|
23797
|
+
}
|
|
23798
|
+
else {
|
|
23799
|
+
result.resize(width, height);
|
|
23800
|
+
}
|
|
23801
|
+
if (width <= 0 || height <= 0) {
|
|
23802
|
+
return result;
|
|
23803
|
+
}
|
|
23804
|
+
var context = result.getContext();
|
|
23805
|
+
var element = result.getElement();
|
|
23806
|
+
if (context == null || element == null) {
|
|
23807
|
+
return result;
|
|
23808
|
+
}
|
|
23809
|
+
var imageData = context.getImageData(0, 0, width, height);
|
|
23676
23810
|
if (ignorePremutipliedAlpha) {
|
|
23677
23811
|
imageData.data.set(array);
|
|
23678
23812
|
}
|
|
23679
23813
|
else {
|
|
23680
23814
|
pixi_js.Extract.arrayPostDivide(array, imageData.data);
|
|
23681
23815
|
}
|
|
23682
|
-
|
|
23816
|
+
context.putImageData(imageData, 0, 0);
|
|
23683
23817
|
// Scale down
|
|
23684
23818
|
if (scale != null && scale !== 1) {
|
|
23685
|
-
|
|
23686
|
-
|
|
23819
|
+
context.scale(scale, scale);
|
|
23820
|
+
context.drawImage(element, 0, 0);
|
|
23687
23821
|
var scaledWidth = Math.floor(width * scale);
|
|
23688
23822
|
var scaledHeight = Math.floor(height * scale);
|
|
23689
|
-
var scaledImageData =
|
|
23690
|
-
|
|
23691
|
-
|
|
23823
|
+
var scaledImageData = context.getImageData(0, 0, scaledWidth, scaledHeight);
|
|
23824
|
+
result.resize(scaledWidth, scaledHeight);
|
|
23825
|
+
context.putImageData(scaledImageData, 0, 0);
|
|
23692
23826
|
}
|
|
23693
|
-
return
|
|
23827
|
+
return result;
|
|
23694
23828
|
};
|
|
23695
23829
|
UtilExtractor.toBase64 = function (canvas, format, quality) {
|
|
23696
23830
|
return canvas.toDataURL(format, quality);
|
|
@@ -23825,8 +23959,15 @@ var UtilExtract = /** @class */ (function () {
|
|
|
23825
23959
|
// Create a render texture
|
|
23826
23960
|
var target = options.target;
|
|
23827
23961
|
var scale = target.transform.scale;
|
|
23828
|
-
var width = Math.
|
|
23829
|
-
var height = Math.
|
|
23962
|
+
var width = Math.ceil(target.width * scale.x);
|
|
23963
|
+
var height = Math.ceil(target.height * scale.y);
|
|
23964
|
+
if (width <= 0 || height <= 0) {
|
|
23965
|
+
return {
|
|
23966
|
+
width: width,
|
|
23967
|
+
height: height,
|
|
23968
|
+
array: new Uint8Array(0)
|
|
23969
|
+
};
|
|
23970
|
+
}
|
|
23830
23971
|
var resolution = toResolution(options);
|
|
23831
23972
|
var renderTexture = UtilExtract.WORK_RENDER_TEXTURE;
|
|
23832
23973
|
if (renderTexture == null) {
|
|
@@ -23874,16 +24015,27 @@ var UtilExtract = /** @class */ (function () {
|
|
|
23874
24015
|
var scale = toScale(pixels, options);
|
|
23875
24016
|
return UtilExtractor.toCanvas(pixels, scale, ignorePremutipliedAlpha);
|
|
23876
24017
|
};
|
|
24018
|
+
/**
|
|
24019
|
+
* Extracts Base64 data URL from the target.
|
|
24020
|
+
* This method internally creates a render texture and a canvas render target.
|
|
24021
|
+
* They are used to extract pixels from the target.
|
|
24022
|
+
* To free the allocated render texture and canvas render target, please call {@link destroy()}.
|
|
24023
|
+
*
|
|
24024
|
+
* @param options an extraction options
|
|
24025
|
+
* @returns extracted Base64 data URL
|
|
24026
|
+
*/
|
|
23877
24027
|
UtilExtract.base64 = function (options) {
|
|
23878
|
-
var
|
|
23879
|
-
|
|
23880
|
-
|
|
23881
|
-
|
|
23882
|
-
|
|
23883
|
-
|
|
23884
|
-
|
|
23885
|
-
|
|
24028
|
+
var _a, _b, _c;
|
|
24029
|
+
var pixels = this.pixels(options);
|
|
24030
|
+
var ignorePremutipliedAlpha = (_b = (_a = options.alpha) === null || _a === void 0 ? void 0 : _a.premultiplied) === null || _b === void 0 ? void 0 : _b.ignore;
|
|
24031
|
+
var scale = toScale(pixels, options);
|
|
24032
|
+
var canvas = ((_c = this.WORK_CANVAS) !== null && _c !== void 0 ? _c : (this.WORK_CANVAS = new UtilExtractorCanvas(pixels.width, pixels.height)));
|
|
24033
|
+
UtilExtractor.toCanvas(pixels, scale, ignorePremutipliedAlpha, canvas);
|
|
24034
|
+
var element = canvas.getElement();
|
|
24035
|
+
if (element != null) {
|
|
24036
|
+
return UtilExtractor.toBase64(element, options.format, options.quality);
|
|
23886
24037
|
}
|
|
24038
|
+
return "data:,";
|
|
23887
24039
|
};
|
|
23888
24040
|
UtilExtract.file = function (options) {
|
|
23889
24041
|
UtilFileDownloader.downloadUrl(options.filename, this.base64(options));
|
|
@@ -23897,6 +24049,11 @@ var UtilExtract = /** @class */ (function () {
|
|
|
23897
24049
|
this.WORK_RENDER_TEXTURE = undefined;
|
|
23898
24050
|
texture.destroy(true);
|
|
23899
24051
|
}
|
|
24052
|
+
var canvas = this.WORK_CANVAS;
|
|
24053
|
+
if (canvas != null) {
|
|
24054
|
+
this.WORK_CANVAS = undefined;
|
|
24055
|
+
canvas.destroy();
|
|
24056
|
+
}
|
|
23900
24057
|
};
|
|
23901
24058
|
return UtilExtract;
|
|
23902
24059
|
}());
|
|
@@ -102997,6 +103154,7 @@ exports.UtilClickOutside = UtilClickOutside;
|
|
|
102997
103154
|
exports.UtilClipboard = UtilClipboard;
|
|
102998
103155
|
exports.UtilExtract = UtilExtract;
|
|
102999
103156
|
exports.UtilExtractor = UtilExtractor;
|
|
103157
|
+
exports.UtilExtractorCanvas = UtilExtractorCanvas;
|
|
103000
103158
|
exports.UtilFileAs = UtilFileAs;
|
|
103001
103159
|
exports.UtilFileDownloader = UtilFileDownloader;
|
|
103002
103160
|
exports.UtilFileOpener = UtilFileOpener;
|
package/dist/wcardinal-ui.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
Winter Cardinal UI v0.
|
|
2
|
+
Winter Cardinal UI v0.445.0
|
|
3
3
|
Copyright (C) 2019 Toshiba Corporation
|
|
4
4
|
SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
|
|
@@ -5439,6 +5439,7 @@
|
|
|
5439
5439
|
if (part & EShapeCopyPart.ACTION) {
|
|
5440
5440
|
this.action.clearAndAddAll(source.action.values);
|
|
5441
5441
|
this.interactive = source.interactive;
|
|
5442
|
+
this.title = source.title;
|
|
5442
5443
|
this.cursor = source.cursor;
|
|
5443
5444
|
this.shortcut = source.shortcut;
|
|
5444
5445
|
}
|
|
@@ -23625,6 +23626,115 @@
|
|
|
23625
23626
|
return DCanvasContainer;
|
|
23626
23627
|
}(DBase));
|
|
23627
23628
|
|
|
23629
|
+
var UtilExtractorCanvas = /** @class */ (function () {
|
|
23630
|
+
function UtilExtractorCanvas(width, height) {
|
|
23631
|
+
var element = document.createElement("canvas");
|
|
23632
|
+
this._element = element;
|
|
23633
|
+
var context = this._element.getContext("2d", {
|
|
23634
|
+
willReadFrequently: true
|
|
23635
|
+
});
|
|
23636
|
+
this._context = context;
|
|
23637
|
+
element.width = width;
|
|
23638
|
+
element.height = height;
|
|
23639
|
+
}
|
|
23640
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "element", {
|
|
23641
|
+
get: function () {
|
|
23642
|
+
var result = this._element;
|
|
23643
|
+
if (result != null) {
|
|
23644
|
+
return result;
|
|
23645
|
+
}
|
|
23646
|
+
throw new Error("No Element Available");
|
|
23647
|
+
},
|
|
23648
|
+
enumerable: false,
|
|
23649
|
+
configurable: true
|
|
23650
|
+
});
|
|
23651
|
+
UtilExtractorCanvas.prototype.getElement = function () {
|
|
23652
|
+
return this._element;
|
|
23653
|
+
};
|
|
23654
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "canvas", {
|
|
23655
|
+
get: function () {
|
|
23656
|
+
return this.element;
|
|
23657
|
+
},
|
|
23658
|
+
enumerable: false,
|
|
23659
|
+
configurable: true
|
|
23660
|
+
});
|
|
23661
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "context", {
|
|
23662
|
+
get: function () {
|
|
23663
|
+
var result = this._context;
|
|
23664
|
+
if (result != null) {
|
|
23665
|
+
return result;
|
|
23666
|
+
}
|
|
23667
|
+
throw new Error("No Context Available");
|
|
23668
|
+
},
|
|
23669
|
+
enumerable: false,
|
|
23670
|
+
configurable: true
|
|
23671
|
+
});
|
|
23672
|
+
UtilExtractorCanvas.prototype.getContext = function () {
|
|
23673
|
+
return this._context;
|
|
23674
|
+
};
|
|
23675
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "resolution", {
|
|
23676
|
+
get: function () {
|
|
23677
|
+
return 1;
|
|
23678
|
+
},
|
|
23679
|
+
enumerable: false,
|
|
23680
|
+
configurable: true
|
|
23681
|
+
});
|
|
23682
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "width", {
|
|
23683
|
+
get: function () {
|
|
23684
|
+
var element = this._element;
|
|
23685
|
+
if (element != null) {
|
|
23686
|
+
return element.width;
|
|
23687
|
+
}
|
|
23688
|
+
return 0;
|
|
23689
|
+
},
|
|
23690
|
+
set: function (width) {
|
|
23691
|
+
var element = this._element;
|
|
23692
|
+
if (element != null) {
|
|
23693
|
+
element.width = width;
|
|
23694
|
+
}
|
|
23695
|
+
},
|
|
23696
|
+
enumerable: false,
|
|
23697
|
+
configurable: true
|
|
23698
|
+
});
|
|
23699
|
+
Object.defineProperty(UtilExtractorCanvas.prototype, "height", {
|
|
23700
|
+
get: function () {
|
|
23701
|
+
var element = this._element;
|
|
23702
|
+
if (element != null) {
|
|
23703
|
+
return element.height;
|
|
23704
|
+
}
|
|
23705
|
+
return 0;
|
|
23706
|
+
},
|
|
23707
|
+
set: function (height) {
|
|
23708
|
+
var element = this._element;
|
|
23709
|
+
if (element != null) {
|
|
23710
|
+
element.height = height;
|
|
23711
|
+
}
|
|
23712
|
+
},
|
|
23713
|
+
enumerable: false,
|
|
23714
|
+
configurable: true
|
|
23715
|
+
});
|
|
23716
|
+
UtilExtractorCanvas.prototype.clear = function () {
|
|
23717
|
+
var element = this._element;
|
|
23718
|
+
var context = this._context;
|
|
23719
|
+
if (element != null && context != null) {
|
|
23720
|
+
context.setTransform(1, 0, 0, 1, 0, 0);
|
|
23721
|
+
context.clearRect(0, 0, element.width, element.height);
|
|
23722
|
+
}
|
|
23723
|
+
};
|
|
23724
|
+
UtilExtractorCanvas.prototype.resize = function (width, height) {
|
|
23725
|
+
var element = this._element;
|
|
23726
|
+
if (element != null) {
|
|
23727
|
+
element.width = width;
|
|
23728
|
+
element.height = height;
|
|
23729
|
+
}
|
|
23730
|
+
};
|
|
23731
|
+
UtilExtractorCanvas.prototype.destroy = function () {
|
|
23732
|
+
this._context = null;
|
|
23733
|
+
this._element = null;
|
|
23734
|
+
};
|
|
23735
|
+
return UtilExtractorCanvas;
|
|
23736
|
+
}());
|
|
23737
|
+
|
|
23628
23738
|
/*
|
|
23629
23739
|
* Copyright (C) 2019 Toshiba Corporation
|
|
23630
23740
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -23634,9 +23744,11 @@
|
|
|
23634
23744
|
}
|
|
23635
23745
|
UtilExtractor.toTexture = function (target, resolution, clear, skipUpdateTransform) {
|
|
23636
23746
|
var scale = target.transform.scale;
|
|
23747
|
+
var width = Math.max(1, Math.ceil(target.width * scale.x));
|
|
23748
|
+
var height = Math.max(1, Math.ceil(target.height * scale.y));
|
|
23637
23749
|
var result = pixi_js.RenderTexture.create({
|
|
23638
|
-
width:
|
|
23639
|
-
height:
|
|
23750
|
+
width: width,
|
|
23751
|
+
height: height,
|
|
23640
23752
|
scaleMode: pixi_js.SCALE_MODES.LINEAR,
|
|
23641
23753
|
resolution: resolution
|
|
23642
23754
|
});
|
|
@@ -23648,46 +23760,68 @@
|
|
|
23648
23760
|
return result;
|
|
23649
23761
|
};
|
|
23650
23762
|
UtilExtractor.toPixels = function (renderTexture, renderer) {
|
|
23763
|
+
var baseTexture = renderTexture.baseTexture;
|
|
23764
|
+
var realWidth = baseTexture.realWidth;
|
|
23765
|
+
var realHeight = baseTexture.realHeight;
|
|
23651
23766
|
var resolution = renderTexture.resolution;
|
|
23652
23767
|
var frame = renderTexture.frame;
|
|
23653
|
-
var
|
|
23654
|
-
var
|
|
23768
|
+
var x0 = Math.floor(frame.x * resolution);
|
|
23769
|
+
var y0 = Math.floor(frame.y * resolution);
|
|
23770
|
+
var x1 = Math.floor((frame.x + frame.width) * resolution);
|
|
23771
|
+
var y1 = Math.floor((frame.y + frame.height) * resolution);
|
|
23772
|
+
var width = Math.min(x1 - x0, realWidth);
|
|
23773
|
+
var height = Math.min(y1 - y0, realHeight);
|
|
23655
23774
|
var pixels = new Uint8Array(4 * width * height);
|
|
23656
|
-
|
|
23657
|
-
|
|
23658
|
-
|
|
23659
|
-
|
|
23660
|
-
|
|
23775
|
+
if (0 < width && 0 < height) {
|
|
23776
|
+
var oldRenderTexture = renderer.renderTexture.current;
|
|
23777
|
+
renderer.renderTexture.bind(renderTexture);
|
|
23778
|
+
var gl = renderer.gl;
|
|
23779
|
+
gl.readPixels(x0, y0, width, height, gl.RGBA, gl.UNSIGNED_BYTE, pixels);
|
|
23780
|
+
renderer.renderTexture.bind(oldRenderTexture);
|
|
23781
|
+
}
|
|
23661
23782
|
return {
|
|
23662
23783
|
width: width,
|
|
23663
23784
|
height: height,
|
|
23664
23785
|
array: pixels
|
|
23665
23786
|
};
|
|
23666
23787
|
};
|
|
23667
|
-
UtilExtractor.toCanvas = function (pixels, scale, ignorePremutipliedAlpha) {
|
|
23788
|
+
UtilExtractor.toCanvas = function (pixels, scale, ignorePremutipliedAlpha, result) {
|
|
23668
23789
|
var width = pixels.width;
|
|
23669
23790
|
var height = pixels.height;
|
|
23670
23791
|
var array = pixels.array;
|
|
23671
|
-
|
|
23672
|
-
|
|
23792
|
+
if (result == null) {
|
|
23793
|
+
result = new UtilExtractorCanvas(width, height);
|
|
23794
|
+
}
|
|
23795
|
+
else {
|
|
23796
|
+
result.resize(width, height);
|
|
23797
|
+
}
|
|
23798
|
+
if (width <= 0 || height <= 0) {
|
|
23799
|
+
return result;
|
|
23800
|
+
}
|
|
23801
|
+
var context = result.getContext();
|
|
23802
|
+
var element = result.getElement();
|
|
23803
|
+
if (context == null || element == null) {
|
|
23804
|
+
return result;
|
|
23805
|
+
}
|
|
23806
|
+
var imageData = context.getImageData(0, 0, width, height);
|
|
23673
23807
|
if (ignorePremutipliedAlpha) {
|
|
23674
23808
|
imageData.data.set(array);
|
|
23675
23809
|
}
|
|
23676
23810
|
else {
|
|
23677
23811
|
pixi_js.Extract.arrayPostDivide(array, imageData.data);
|
|
23678
23812
|
}
|
|
23679
|
-
|
|
23813
|
+
context.putImageData(imageData, 0, 0);
|
|
23680
23814
|
// Scale down
|
|
23681
23815
|
if (scale != null && scale !== 1) {
|
|
23682
|
-
|
|
23683
|
-
|
|
23816
|
+
context.scale(scale, scale);
|
|
23817
|
+
context.drawImage(element, 0, 0);
|
|
23684
23818
|
var scaledWidth = Math.floor(width * scale);
|
|
23685
23819
|
var scaledHeight = Math.floor(height * scale);
|
|
23686
|
-
var scaledImageData =
|
|
23687
|
-
|
|
23688
|
-
|
|
23820
|
+
var scaledImageData = context.getImageData(0, 0, scaledWidth, scaledHeight);
|
|
23821
|
+
result.resize(scaledWidth, scaledHeight);
|
|
23822
|
+
context.putImageData(scaledImageData, 0, 0);
|
|
23689
23823
|
}
|
|
23690
|
-
return
|
|
23824
|
+
return result;
|
|
23691
23825
|
};
|
|
23692
23826
|
UtilExtractor.toBase64 = function (canvas, format, quality) {
|
|
23693
23827
|
return canvas.toDataURL(format, quality);
|
|
@@ -23822,8 +23956,15 @@
|
|
|
23822
23956
|
// Create a render texture
|
|
23823
23957
|
var target = options.target;
|
|
23824
23958
|
var scale = target.transform.scale;
|
|
23825
|
-
var width = Math.
|
|
23826
|
-
var height = Math.
|
|
23959
|
+
var width = Math.ceil(target.width * scale.x);
|
|
23960
|
+
var height = Math.ceil(target.height * scale.y);
|
|
23961
|
+
if (width <= 0 || height <= 0) {
|
|
23962
|
+
return {
|
|
23963
|
+
width: width,
|
|
23964
|
+
height: height,
|
|
23965
|
+
array: new Uint8Array(0)
|
|
23966
|
+
};
|
|
23967
|
+
}
|
|
23827
23968
|
var resolution = toResolution(options);
|
|
23828
23969
|
var renderTexture = UtilExtract.WORK_RENDER_TEXTURE;
|
|
23829
23970
|
if (renderTexture == null) {
|
|
@@ -23871,16 +24012,27 @@
|
|
|
23871
24012
|
var scale = toScale(pixels, options);
|
|
23872
24013
|
return UtilExtractor.toCanvas(pixels, scale, ignorePremutipliedAlpha);
|
|
23873
24014
|
};
|
|
24015
|
+
/**
|
|
24016
|
+
* Extracts Base64 data URL from the target.
|
|
24017
|
+
* This method internally creates a render texture and a canvas render target.
|
|
24018
|
+
* They are used to extract pixels from the target.
|
|
24019
|
+
* To free the allocated render texture and canvas render target, please call {@link destroy()}.
|
|
24020
|
+
*
|
|
24021
|
+
* @param options an extraction options
|
|
24022
|
+
* @returns extracted Base64 data URL
|
|
24023
|
+
*/
|
|
23874
24024
|
UtilExtract.base64 = function (options) {
|
|
23875
|
-
var
|
|
23876
|
-
|
|
23877
|
-
|
|
23878
|
-
|
|
23879
|
-
|
|
23880
|
-
|
|
23881
|
-
|
|
23882
|
-
|
|
24025
|
+
var _a, _b, _c;
|
|
24026
|
+
var pixels = this.pixels(options);
|
|
24027
|
+
var ignorePremutipliedAlpha = (_b = (_a = options.alpha) === null || _a === void 0 ? void 0 : _a.premultiplied) === null || _b === void 0 ? void 0 : _b.ignore;
|
|
24028
|
+
var scale = toScale(pixels, options);
|
|
24029
|
+
var canvas = ((_c = this.WORK_CANVAS) !== null && _c !== void 0 ? _c : (this.WORK_CANVAS = new UtilExtractorCanvas(pixels.width, pixels.height)));
|
|
24030
|
+
UtilExtractor.toCanvas(pixels, scale, ignorePremutipliedAlpha, canvas);
|
|
24031
|
+
var element = canvas.getElement();
|
|
24032
|
+
if (element != null) {
|
|
24033
|
+
return UtilExtractor.toBase64(element, options.format, options.quality);
|
|
23883
24034
|
}
|
|
24035
|
+
return "data:,";
|
|
23884
24036
|
};
|
|
23885
24037
|
UtilExtract.file = function (options) {
|
|
23886
24038
|
UtilFileDownloader.downloadUrl(options.filename, this.base64(options));
|
|
@@ -23894,6 +24046,11 @@
|
|
|
23894
24046
|
this.WORK_RENDER_TEXTURE = undefined;
|
|
23895
24047
|
texture.destroy(true);
|
|
23896
24048
|
}
|
|
24049
|
+
var canvas = this.WORK_CANVAS;
|
|
24050
|
+
if (canvas != null) {
|
|
24051
|
+
this.WORK_CANVAS = undefined;
|
|
24052
|
+
canvas.destroy();
|
|
24053
|
+
}
|
|
23897
24054
|
};
|
|
23898
24055
|
return UtilExtract;
|
|
23899
24056
|
}());
|
|
@@ -80954,6 +81111,7 @@
|
|
|
80954
81111
|
UtilGestureTap: UtilGestureTap,
|
|
80955
81112
|
UtilGesture: UtilGesture,
|
|
80956
81113
|
UtilExtract: UtilExtract,
|
|
81114
|
+
UtilExtractorCanvas: UtilExtractorCanvas,
|
|
80957
81115
|
UtilExtractor: UtilExtractor,
|
|
80958
81116
|
UtilFileDownloader: UtilFileDownloader,
|
|
80959
81117
|
UtilFileAs: UtilFileAs,
|