1 | ;
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.isImage = exports.isVideo = exports.isCanvas = undefined;
|
7 | exports.isTextureDataReady = isTextureDataReady;
|
8 | exports.getTextureDataResolution = getTextureDataResolution;
|
9 | exports.isCubeTextureDataReady = isCubeTextureDataReady;
|
10 | exports.getCubeTextureDataResolution = getCubeTextureDataResolution;
|
11 |
|
12 | var _window = require('global/window');
|
13 |
|
14 | var _window2 = _interopRequireDefault(_window);
|
15 |
|
16 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17 |
|
18 | var HTMLVideoElement = _window2.default.HTMLVideoElement;
|
19 | var HTMLCanvasElement = _window2.default.HTMLCanvasElement;
|
20 | var HTMLImageElement = _window2.default.HTMLImageElement;
|
21 |
|
22 | // https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState
|
23 |
|
24 | var _ref = HTMLVideoElement || {},
|
25 | _ref$HAVE_NOTHING = _ref.HAVE_NOTHING,
|
26 | HAVE_NOTHING = _ref$HAVE_NOTHING === undefined ? 0 : _ref$HAVE_NOTHING,
|
27 | _ref$HAVE_METADATA = _ref.HAVE_METADATA,
|
28 | HAVE_METADATA = _ref$HAVE_METADATA === undefined ? 1 : _ref$HAVE_METADATA,
|
29 | _ref$HAVE_CURRENT_DAT = _ref.HAVE_CURRENT_DATA,
|
30 | HAVE_CURRENT_DATA = _ref$HAVE_CURRENT_DAT === undefined ? 2 : _ref$HAVE_CURRENT_DAT,
|
31 | _ref$HAVE_FUTURE_DATA = _ref.HAVE_FUTURE_DATA,
|
32 | HAVE_FUTURE_DATA = _ref$HAVE_FUTURE_DATA === undefined ? 3 : _ref$HAVE_FUTURE_DATA,
|
33 | _ref$HAVE_ENOUGH_DATA = _ref.HAVE_ENOUGH_DATA,
|
34 | HAVE_ENOUGH_DATA = _ref$HAVE_ENOUGH_DATA === undefined ? 4 : _ref$HAVE_ENOUGH_DATA;
|
35 |
|
36 | var isCanvas = exports.isCanvas = function isCanvas(d) {
|
37 | return d instanceof HTMLCanvasElement;
|
38 | };
|
39 | var isVideo = exports.isVideo = function isVideo(d) {
|
40 | return d instanceof HTMLVideoElement;
|
41 | };
|
42 | var isImage = exports.isImage = function isImage(d) {
|
43 | return d instanceof HTMLImageElement;
|
44 | };
|
45 |
|
46 | function isTextureDataReady(data) {
|
47 | var resolution = getTextureDataResolution(data);
|
48 | if (!resolution[0] || !resolution[1]) {
|
49 | return false;
|
50 | }
|
51 | if (isVideo(data) && data.readyState >= HAVE_CURRENT_DATA) {
|
52 | return true;
|
53 | } else if (isImage(data) || isCanvas(data)) {
|
54 | if (data.width && data.height) {
|
55 | return true;
|
56 | }
|
57 | }
|
58 | return false;
|
59 | }
|
60 |
|
61 | function getTextureDataResolution(data) {
|
62 | if (isImage(data) || isCanvas(data)) {
|
63 | return [data.width, data.height];
|
64 | } else if (isVideo(data)) {
|
65 | return [data.videoWidth || 0, data.videoHeight || 0];
|
66 | } else if (data && data.shape) {
|
67 | return data.shape;
|
68 | } else {
|
69 | return [0, 0];
|
70 | }
|
71 | }
|
72 |
|
73 | function isCubeTextureDataReady(data) {
|
74 | if (isVideo(data) && data.readyState >= HAVE_CURRENT_DATA) {
|
75 | return true;
|
76 | } else if (isImage(data) || isCanvas(data)) {
|
77 | if (data.width && data.height) {
|
78 | return true;
|
79 | }
|
80 | }
|
81 | return false;
|
82 | }
|
83 |
|
84 | function getCubeTextureDataResolution(data) {
|
85 | if (Array.isArray(data)) {
|
86 | data = data.filter(function (d) {
|
87 | return d;
|
88 | }).filter(function (d) {
|
89 | return isImage(d) || isVideo(d) || d.shape.every(Boolean);
|
90 | })[0];
|
91 | return getCubeTextureDataResolution(data);
|
92 | }
|
93 | if (isImage(data) || isCanvas(data)) {
|
94 | return [data.width, data.height];
|
95 | } else if (isVideo(data)) {
|
96 | return [data.videoWidth || 0, data.videoHeight || 0];
|
97 | } else if (data && data.shape) {
|
98 | return data.shape;
|
99 | } else {
|
100 | return [0, 0];
|
101 | }
|
102 | }
|
103 | //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXh0dXJlL3V0aWxzLmpzIl0sIm5hbWVzIjpbImlzVGV4dHVyZURhdGFSZWFkeSIsImdldFRleHR1cmVEYXRhUmVzb2x1dGlvbiIsImlzQ3ViZVRleHR1cmVEYXRhUmVhZHkiLCJnZXRDdWJlVGV4dHVyZURhdGFSZXNvbHV0aW9uIiwiSFRNTFZpZGVvRWxlbWVudCIsIkhUTUxDYW52YXNFbGVtZW50IiwiSFRNTEltYWdlRWxlbWVudCIsIkhBVkVfTk9USElORyIsIkhBVkVfTUVUQURBVEEiLCJIQVZFX0NVUlJFTlRfREFUQSIsIkhBVkVfRlVUVVJFX0RBVEEiLCJIQVZFX0VOT1VHSF9EQVRBIiwiaXNDYW52YXMiLCJkIiwiaXNWaWRlbyIsImlzSW1hZ2UiLCJkYXRhIiwicmVzb2x1dGlvbiIsInJlYWR5U3RhdGUiLCJ3aWR0aCIsImhlaWdodCIsInZpZGVvV2lkdGgiLCJ2aWRlb0hlaWdodCIsInNoYXBlIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIiwiZXZlcnkiLCJCb29sZWFuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7UUFtQmdCQSxrQixHQUFBQSxrQjtRQWFBQyx3QixHQUFBQSx3QjtRQVlBQyxzQixHQUFBQSxzQjtRQVdBQyw0QixHQUFBQSw0Qjs7QUF2RGhCOzs7Ozs7SUFFT0MsZ0Isb0JBQUFBLGdCO0lBQ0FDLGlCLG9CQUFBQSxpQjtJQUNBQyxnQixvQkFBQUEsZ0I7O0FBRVA7O1dBT0tGLG9CQUFvQixFOzZCQUx2QkcsWTtJQUFBQSxZLHFDQUFlLEM7OEJBQ2ZDLGE7SUFBQUEsYSxzQ0FBZ0IsQztpQ0FDaEJDLGlCO0lBQUFBLGlCLHlDQUFvQixDO2lDQUNwQkMsZ0I7SUFBQUEsZ0IseUNBQW1CLEM7aUNBQ25CQyxnQjtJQUFBQSxnQix5Q0FBbUIsQzs7QUFHZCxJQUFNQyw4QkFBVyxTQUFYQSxRQUFXLENBQUNDLENBQUQ7QUFBQSxTQUFPQSxhQUFhUixpQkFBcEI7QUFBQSxDQUFqQjtBQUNBLElBQU1TLDRCQUFVLFNBQVZB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QUZNLE1BRUE7QUFDTCxXQUFPLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FBUDtBQUNEO0FBQ0YiLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgd2luZG93IGZyb20gJ2dsb2JhbC93aW5kb3cnXG5cbmNvbnN0IHtIVE1MVmlkZW9FbGVtZW50fSA9IHdpbmRvd1xuY29uc3Qge0hUTUxDYW52YXNFbGVtZW50fSA9IHdpbmRvd1xuY29uc3Qge0hUTUxJbWFnZUVsZW1lbnR9ID0gd2luZG93XG5cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IVE1MTWVkaWFFbGVtZW50L3JlYWR5U3RhdGVcbmNvbnN0IHtcbiAgSEFWRV9OT1RISU5HID0gMCxcbiAgSEFWRV9NRVRBREFUQSA9IDEsXG4gIEhBVkVfQ1VSUkVOVF9EQVRBID0gMixcbiAgSEFWRV9GVVRVUkVfREFUQSA9IDMsXG4gIEhBVkVfRU5PVUdIX0RBVEEgPSA0LFxufSA9IChIVE1MVmlkZW9FbGVtZW50IHx8IHt9KVxuXG5leHBvcnQgY29uc3QgaXNDYW52YXMgPSAoZCkgPT4gZCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50XG5leHBvcnQgY29uc3QgaXNWaWRlbyA9IChkKSA9PiBkIGluc3RhbmNlb2YgSFRNTFZpZGVvRWxlbWVudFxuZXhwb3J0IGNvbnN0IGlzSW1hZ2UgPSAoZCkgPT4gZCBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnRcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGV4dHVyZURhdGFSZWFkeShkYXRhKSB7XG4gIGNvbnN0IHJlc29sdXRpb24gPSBnZXRUZXh0dXJlRGF0YVJlc29sdXRpb24oZGF0YSlcbiAgaWYgKCFyZXNvbHV0aW9uWzBdIHx8ICFyZXNvbHV0aW9uWzFdKSB7IHJldHVybiBmYWxzZSB9XG4gIGlmIChpc1ZpZGVvKGRhdGEpICYmIGRhdGEucmVhZHlTdGF0ZSA+PSBIQVZFX0NVUlJFTlRfREFUQSkge1xuICAgIHJldHVybiB0cnVlXG4gIH0gZWxzZSBpZiAoaXNJbWFnZShkYXRhKSB8fCBpc0NhbnZhcyhkYXRhKSkge1xuICAgIGlmIChkYXRhLndpZHRoICYmIGRhdGEuaGVpZ2h0KSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRleHR1cmVEYXRhUmVzb2x1dGlvbihkYXRhKSB7XG4gIGlmIChpc0ltYWdlKGRhdGEpIHx8IGlzQ2FudmFzKGRhdGEpKSB7XG4gICAgcmV0dXJuIFtkYXRhLndpZHRoLCBkYXRhLmhlaWdodF1cbiAgfSBlbHNlIGlmIChpc1ZpZGVvKGRhdGEpKSB7XG4gICAgcmV0dXJuIFtkYXRhLnZpZGVvV2lkdGggfHwgMCwgZGF0YS52aWRlb0hlaWdodCB8fCAwXVxuICB9IGVsc2UgaWYgKGRhdGEgJiYgZGF0YS5zaGFwZSkge1xuICAgIHJldHVybiBkYXRhLnNoYXBlXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFswLCAwXVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0N1YmVUZXh0dXJlRGF0YVJlYWR5KGRhdGEpIHtcbiAgaWYgKGlzVmlkZW8oZGF0YSkgJiYgZGF0YS5yZWFkeVN0YXRlID49IEhBVkVfQ1VSUkVOVF9EQVRBKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfSBlbHNlIGlmIChpc0ltYWdlKGRhdGEpIHx8IGlzQ2FudmFzKGRhdGEpKSB7XG4gICAgaWYgKGRhdGEud2lkdGggJiYgZGF0YS5oZWlnaHQpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3ViZVRleHR1cmVEYXRhUmVzb2x1dGlvbihkYXRhKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XG4gICAgZGF0YSA9IGRhdGFcbiAgICAgIC5maWx0ZXIoKGQpID0+IGQpXG4gICAgICAuZmlsdGVyKChkKSA9PiBpc0ltYWdlKGQpIHx8IGlzVmlkZW8oZCkgfHwgZC5zaGFwZS5ldmVyeShCb29sZWFuKSlcbiAgICAgIFswXVxuICAgIHJldHVybiBnZXRDdWJlVGV4dHVyZURhdGFSZXNvbHV0aW9uKGRhdGEpXG4gIH1cbiAgaWYgKGlzSW1hZ2UoZGF0YSkgfHwgaXNDYW52YXMoZGF0YSkpIHtcbiAgICByZXR1cm4gW2RhdGEud2lkdGgsIGRhdGEuaGVpZ2h0XVxuICB9IGVsc2UgaWYgKGlzVmlkZW8oZGF0YSkpIHtcbiAgICByZXR1cm4gW2RhdGEudmlkZW9XaWR0aCB8fCAwLCBkYXRhLnZpZGVvSGVpZ2h0IHx8IDBdXG4gIH0gZWxzZSBpZiAoZGF0YSAmJiBkYXRhLnNoYXBlKSB7XG4gICAgcmV0dXJuIGRhdGEuc2hhcGVcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gWzAsIDBdXG4gIH1cbn1cbiJdfQ== |
\ | No newline at end of file |