This commit is contained in:
2025-01-04 00:34:03 +01:00
parent 41829408dc
commit 0ca14bbc19
18111 changed files with 1871397 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
"use strict";
var constants = require("@pixi/constants");
let promise;
async function detectVideoAlphaMode() {
return promise ?? (promise = (async () => {
const gl = document.createElement("canvas").getContext("webgl");
if (!gl)
return constants.ALPHA_MODES.UNPACK;
const video = await new Promise((resolve) => {
const video2 = document.createElement("video");
video2.onloadeddata = () => resolve(video2), video2.onerror = () => resolve(null), video2.autoplay = !1, video2.crossOrigin = "anonymous", video2.preload = "auto", video2.src = "data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=", video2.load();
});
if (!video)
return constants.ALPHA_MODES.UNPACK;
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
const framebuffer = gl.createFramebuffer();
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer), gl.framebufferTexture2D(
gl.FRAMEBUFFER,
gl.COLOR_ATTACHMENT0,
gl.TEXTURE_2D,
texture,
0
), gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1), gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE), gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, video);
const pixel = new Uint8Array(4);
return gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixel), gl.deleteFramebuffer(framebuffer), gl.deleteTexture(texture), gl.getExtension("WEBGL_lose_context")?.loseContext(), pixel[0] <= pixel[3] ? constants.ALPHA_MODES.PMA : constants.ALPHA_MODES.UNPACK;
})()), promise;
}
exports.detectVideoAlphaMode = detectVideoAlphaMode;
//# sourceMappingURL=detectVideoAlphaMode.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"detectVideoAlphaMode.js","sources":["../../src/browser/detectVideoAlphaMode.ts"],"sourcesContent":["import { ALPHA_MODES } from '@pixi/constants';\n\nlet promise: Promise<ALPHA_MODES> | undefined;\n\n/**\n * Helper for detecting the correct alpha mode for video textures.\n * For some reason, some browsers/devices/WebGL implementations premultiply the alpha\n * of a video before and then a second time if `UNPACK_PREMULTIPLY_ALPHA_WEBGL`\n * is true. So the video is premultiplied twice if the alpha mode is `UNPACK`.\n * In this case we need the alpha mode to be `PMA`. This function detects\n * the upload behavior by uploading a white 2x2 webm with 50% alpha\n * without `UNPACK_PREMULTIPLY_ALPHA_WEBGL` and then checking whether\n * the uploaded pixels are premultiplied.\n * @memberof PIXI.utils\n * @function detectVideoAlphaMode\n * @returns {Promise<PIXI.ALPHA_MODES>} The correct alpha mode for video textures.\n */\nexport async function detectVideoAlphaMode(): Promise<ALPHA_MODES>\n{\n promise ??= (async () =>\n {\n const canvas = document.createElement('canvas');\n const gl = canvas.getContext('webgl');\n\n if (!gl)\n {\n return ALPHA_MODES.UNPACK;\n }\n\n const video = await new Promise<HTMLVideoElement | null>((resolve) =>\n {\n const video = document.createElement('video');\n\n video.onloadeddata = () => resolve(video);\n video.onerror = () => resolve(null);\n video.autoplay = false;\n video.crossOrigin = 'anonymous';\n video.preload = 'auto';\n // eslint-disable-next-line max-len\n video.src = 'data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=';\n video.load();\n });\n\n if (!video)\n {\n return ALPHA_MODES.UNPACK;\n }\n\n const texture = gl.createTexture();\n\n gl.bindTexture(gl.TEXTURE_2D, texture);\n\n const framebuffer = gl.createFramebuffer();\n\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n texture,\n 0\n );\n\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);\n gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, video);\n\n const pixel = new Uint8Array(4);\n\n gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixel);\n\n gl.deleteFramebuffer(framebuffer);\n gl.deleteTexture(texture);\n gl.getExtension('WEBGL_lose_context')?.loseContext();\n\n return pixel[0] <= pixel[3] ? ALPHA_MODES.PMA : ALPHA_MODES.UNPACK;\n })();\n\n return promise;\n}\n"],"names":["ALPHA_MODES","video"],"mappings":";;AAEA,IAAI;AAeJ,eAAsB,uBACtB;AACI,SAAA,YAAA,WAAa,YACb;AAEI,UAAM,KADS,SAAS,cAAc,QAAQ,EAC5B,WAAW,OAAO;AAEpC,QAAI,CAAC;AAED,aAAOA,UAAAA,YAAY;AAGvB,UAAM,QAAQ,MAAM,IAAI,QAAiC,CAAC,YAC1D;AACUC,YAAAA,SAAQ,SAAS,cAAc,OAAO;AAE5CA,aAAM,eAAe,MAAM,QAAQA,MAAK,GACxCA,OAAM,UAAU,MAAM,QAAQ,IAAI,GAClCA,OAAM,WAAW,IACjBA,OAAM,cAAc,aACpBA,OAAM,UAAU,QAEhBA,OAAM,MAAM,2sBACZA,OAAM,KAAK;AAAA,IAAA,CACd;AAED,QAAI,CAAC;AAED,aAAOD,UAAAA,YAAY;AAGjB,UAAA,UAAU,GAAG;AAEhB,OAAA,YAAY,GAAG,YAAY,OAAO;AAE/B,UAAA,cAAc,GAAG;AAEvB,OAAG,gBAAgB,GAAG,aAAa,WAAW,GAC9C,GAAG;AAAA,MACC,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACJ,GAEA,GAAG,YAAY,GAAG,gCAAgC,EAAK,GACvD,GAAG,YAAY,GAAG,oCAAoC,GAAG,IAAI,GAC7D,GAAG,WAAW,GAAG,YAAY,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,KAAK;AAEnE,UAAA,QAAQ,IAAI,WAAW,CAAC;AAE9B,WAAA,GAAG,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,GAAG,eAAe,KAAK,GAE1D,GAAG,kBAAkB,WAAW,GAChC,GAAG,cAAc,OAAO,GACxB,GAAG,aAAa,oBAAoB,GAAG,eAEhC,MAAM,CAAC,KAAK,MAAM,CAAC,IAAIA,UAAA,YAAY,MAAMA,UAAY,YAAA;AAAA,EAAA,GAGzD,IAAA;AACX;;"}

View File

@@ -0,0 +1,31 @@
import { ALPHA_MODES } from "@pixi/constants";
let promise;
async function detectVideoAlphaMode() {
return promise ?? (promise = (async () => {
const gl = document.createElement("canvas").getContext("webgl");
if (!gl)
return ALPHA_MODES.UNPACK;
const video = await new Promise((resolve) => {
const video2 = document.createElement("video");
video2.onloadeddata = () => resolve(video2), video2.onerror = () => resolve(null), video2.autoplay = !1, video2.crossOrigin = "anonymous", video2.preload = "auto", video2.src = "data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=", video2.load();
});
if (!video)
return ALPHA_MODES.UNPACK;
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
const framebuffer = gl.createFramebuffer();
gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer), gl.framebufferTexture2D(
gl.FRAMEBUFFER,
gl.COLOR_ATTACHMENT0,
gl.TEXTURE_2D,
texture,
0
), gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !1), gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE), gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, video);
const pixel = new Uint8Array(4);
return gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixel), gl.deleteFramebuffer(framebuffer), gl.deleteTexture(texture), gl.getExtension("WEBGL_lose_context")?.loseContext(), pixel[0] <= pixel[3] ? ALPHA_MODES.PMA : ALPHA_MODES.UNPACK;
})()), promise;
}
export {
detectVideoAlphaMode
};
//# sourceMappingURL=detectVideoAlphaMode.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"detectVideoAlphaMode.mjs","sources":["../../src/browser/detectVideoAlphaMode.ts"],"sourcesContent":["import { ALPHA_MODES } from '@pixi/constants';\n\nlet promise: Promise<ALPHA_MODES> | undefined;\n\n/**\n * Helper for detecting the correct alpha mode for video textures.\n * For some reason, some browsers/devices/WebGL implementations premultiply the alpha\n * of a video before and then a second time if `UNPACK_PREMULTIPLY_ALPHA_WEBGL`\n * is true. So the video is premultiplied twice if the alpha mode is `UNPACK`.\n * In this case we need the alpha mode to be `PMA`. This function detects\n * the upload behavior by uploading a white 2x2 webm with 50% alpha\n * without `UNPACK_PREMULTIPLY_ALPHA_WEBGL` and then checking whether\n * the uploaded pixels are premultiplied.\n * @memberof PIXI.utils\n * @function detectVideoAlphaMode\n * @returns {Promise<PIXI.ALPHA_MODES>} The correct alpha mode for video textures.\n */\nexport async function detectVideoAlphaMode(): Promise<ALPHA_MODES>\n{\n promise ??= (async () =>\n {\n const canvas = document.createElement('canvas');\n const gl = canvas.getContext('webgl');\n\n if (!gl)\n {\n return ALPHA_MODES.UNPACK;\n }\n\n const video = await new Promise<HTMLVideoElement | null>((resolve) =>\n {\n const video = document.createElement('video');\n\n video.onloadeddata = () => resolve(video);\n video.onerror = () => resolve(null);\n video.autoplay = false;\n video.crossOrigin = 'anonymous';\n video.preload = 'auto';\n // eslint-disable-next-line max-len\n video.src = 'data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=';\n video.load();\n });\n\n if (!video)\n {\n return ALPHA_MODES.UNPACK;\n }\n\n const texture = gl.createTexture();\n\n gl.bindTexture(gl.TEXTURE_2D, texture);\n\n const framebuffer = gl.createFramebuffer();\n\n gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0,\n gl.TEXTURE_2D,\n texture,\n 0\n );\n\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);\n gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, video);\n\n const pixel = new Uint8Array(4);\n\n gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixel);\n\n gl.deleteFramebuffer(framebuffer);\n gl.deleteTexture(texture);\n gl.getExtension('WEBGL_lose_context')?.loseContext();\n\n return pixel[0] <= pixel[3] ? ALPHA_MODES.PMA : ALPHA_MODES.UNPACK;\n })();\n\n return promise;\n}\n"],"names":["video"],"mappings":";AAEA,IAAI;AAeJ,eAAsB,uBACtB;AACI,SAAA,YAAA,WAAa,YACb;AAEI,UAAM,KADS,SAAS,cAAc,QAAQ,EAC5B,WAAW,OAAO;AAEpC,QAAI,CAAC;AAED,aAAO,YAAY;AAGvB,UAAM,QAAQ,MAAM,IAAI,QAAiC,CAAC,YAC1D;AACUA,YAAAA,SAAQ,SAAS,cAAc,OAAO;AAE5CA,aAAM,eAAe,MAAM,QAAQA,MAAK,GACxCA,OAAM,UAAU,MAAM,QAAQ,IAAI,GAClCA,OAAM,WAAW,IACjBA,OAAM,cAAc,aACpBA,OAAM,UAAU,QAEhBA,OAAM,MAAM,2sBACZA,OAAM,KAAK;AAAA,IAAA,CACd;AAED,QAAI,CAAC;AAED,aAAO,YAAY;AAGjB,UAAA,UAAU,GAAG;AAEhB,OAAA,YAAY,GAAG,YAAY,OAAO;AAE/B,UAAA,cAAc,GAAG;AAEvB,OAAG,gBAAgB,GAAG,aAAa,WAAW,GAC9C,GAAG;AAAA,MACC,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACJ,GAEA,GAAG,YAAY,GAAG,gCAAgC,EAAK,GACvD,GAAG,YAAY,GAAG,oCAAoC,GAAG,IAAI,GAC7D,GAAG,WAAW,GAAG,YAAY,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,eAAe,KAAK;AAEnE,UAAA,QAAQ,IAAI,WAAW,CAAC;AAE9B,WAAA,GAAG,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,GAAG,eAAe,KAAK,GAE1D,GAAG,kBAAkB,WAAW,GAChC,GAAG,cAAc,OAAO,GACxB,GAAG,aAAa,oBAAoB,GAAG,eAEhC,MAAM,CAAC,KAAK,MAAM,CAAC,IAAI,YAAY,MAAM,YAAY;AAAA,EAAA,GAGzD,IAAA;AACX;"}

View File

@@ -0,0 +1,11 @@
"use strict";
var deprecation = require("../logging/deprecation.js");
function skipHello() {
deprecation.deprecation("7.0.0", "skipHello is deprecated, please use settings.RENDER_OPTIONS.hello");
}
function sayHello() {
deprecation.deprecation("7.0.0", `sayHello is deprecated, please use Renderer's "hello" option`);
}
exports.sayHello = sayHello;
exports.skipHello = skipHello;
//# sourceMappingURL=hello.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"hello.js","sources":["../../src/browser/hello.ts"],"sourcesContent":["import { deprecation } from '../logging/deprecation';\n\n/**\n * @function skipHello\n * @memberof PIXI.utils\n * @deprecated since 7.0.0\n */\nexport function skipHello(): void\n{\n if (process.env.DEBUG)\n {\n deprecation('7.0.0', 'skipHello is deprecated, please use settings.RENDER_OPTIONS.hello');\n }\n}\n\n/**\n * @static\n * @function sayHello\n * @memberof PIXI.utils\n * @deprecated since 7.0.0\n */\nexport function sayHello(): void\n{\n if (process.env.DEBUG)\n {\n deprecation('7.0.0', 'sayHello is deprecated, please use Renderer\\'s \"hello\" option');\n }\n}\n"],"names":["deprecation"],"mappings":";;AAOO,SAAS,YAChB;AAGQA,0BAAY,SAAS,mEAAmE;AAEhG;AAQO,SAAS,WAChB;AAGQA,cAAAA,YAAY,SAAS,8DAA+D;AAE5F;;;"}

View File

@@ -0,0 +1,12 @@
import { deprecation } from "../logging/deprecation.mjs";
function skipHello() {
deprecation("7.0.0", "skipHello is deprecated, please use settings.RENDER_OPTIONS.hello");
}
function sayHello() {
deprecation("7.0.0", `sayHello is deprecated, please use Renderer's "hello" option`);
}
export {
sayHello,
skipHello
};
//# sourceMappingURL=hello.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"hello.mjs","sources":["../../src/browser/hello.ts"],"sourcesContent":["import { deprecation } from '../logging/deprecation';\n\n/**\n * @function skipHello\n * @memberof PIXI.utils\n * @deprecated since 7.0.0\n */\nexport function skipHello(): void\n{\n if (process.env.DEBUG)\n {\n deprecation('7.0.0', 'skipHello is deprecated, please use settings.RENDER_OPTIONS.hello');\n }\n}\n\n/**\n * @static\n * @function sayHello\n * @memberof PIXI.utils\n * @deprecated since 7.0.0\n */\nexport function sayHello(): void\n{\n if (process.env.DEBUG)\n {\n deprecation('7.0.0', 'sayHello is deprecated, please use Renderer\\'s \"hello\" option');\n }\n}\n"],"names":[],"mappings":";AAOO,SAAS,YAChB;AAGQ,cAAY,SAAS,mEAAmE;AAEhG;AAQO,SAAS,WAChB;AAGQ,cAAY,SAAS,8DAA+D;AAE5F;"}

View File

@@ -0,0 +1,28 @@
"use strict";
require("../settings.js");
var settings = require("@pixi/settings");
let supported;
function isWebGLSupported() {
return typeof supported > "u" && (supported = function() {
const contextOptions = {
stencil: !0,
failIfMajorPerformanceCaveat: settings.settings.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT
};
try {
if (!settings.settings.ADAPTER.getWebGLRenderingContext())
return !1;
const canvas = settings.settings.ADAPTER.createCanvas();
let gl = canvas.getContext("webgl", contextOptions) || canvas.getContext("experimental-webgl", contextOptions);
const success = !!gl?.getContextAttributes()?.stencil;
if (gl) {
const loseContext = gl.getExtension("WEBGL_lose_context");
loseContext && loseContext.loseContext();
}
return gl = null, success;
} catch {
return !1;
}
}()), supported;
}
exports.isWebGLSupported = isWebGLSupported;
//# sourceMappingURL=isWebGLSupported.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"isWebGLSupported.js","sources":["../../src/browser/isWebGLSupported.ts"],"sourcesContent":["import { settings } from '../settings';\n\nlet supported: boolean | undefined;\n\n/**\n * Helper for checking for WebGL support.\n * @memberof PIXI.utils\n * @function isWebGLSupported\n * @returns {boolean} Is WebGL supported.\n */\nexport function isWebGLSupported(): boolean\n{\n if (typeof supported === 'undefined')\n {\n supported = (function supported(): boolean\n {\n const contextOptions = {\n stencil: true,\n failIfMajorPerformanceCaveat: settings.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT,\n };\n\n try\n {\n if (!settings.ADAPTER.getWebGLRenderingContext())\n {\n return false;\n }\n\n const canvas = settings.ADAPTER.createCanvas();\n let gl = (\n canvas.getContext('webgl', contextOptions)\n || canvas.getContext('experimental-webgl', contextOptions)\n ) as WebGLRenderingContext | null;\n\n const success = !!gl?.getContextAttributes()?.stencil;\n\n if (gl)\n {\n const loseContext = gl.getExtension('WEBGL_lose_context');\n\n if (loseContext)\n {\n loseContext.loseContext();\n }\n }\n\n gl = null;\n\n return success;\n }\n catch (e)\n {\n return false;\n }\n })();\n }\n\n return supported;\n}\n"],"names":["settings"],"mappings":";;;AAEA,IAAI;AAQG,SAAS,mBAChB;AACI,SAAI,OAAO,YAAc,QAErB,YAAa,WACb;AACI,UAAM,iBAAiB;AAAA,MACnB,SAAS;AAAA,MACT,8BAA8BA,SAAS,SAAA;AAAA,IAAA;AAI3C,QAAA;AACQ,UAAA,CAACA,SAAAA,SAAS,QAAQ,yBAAyB;AAEpC,eAAA;AAGL,YAAA,SAASA,SAAAA,SAAS,QAAQ,aAAa;AACzC,UAAA,KACA,OAAO,WAAW,SAAS,cAAc,KACtC,OAAO,WAAW,sBAAsB,cAAc;AAG7D,YAAM,UAAU,CAAC,CAAC,IAAI,wBAAwB;AAE9C,UAAI,IACJ;AACU,cAAA,cAAc,GAAG,aAAa,oBAAoB;AAEpD,uBAEA,YAAY;MAEpB;AAEA,aAAA,KAAK,MAEE;AAAA,IAAA,QAGX;AACW,aAAA;AAAA,IACX;AAAA,EAAA,EAID,IAAA;AACX;;"}

View File

@@ -0,0 +1,29 @@
import "../settings.mjs";
import { settings } from "@pixi/settings";
let supported;
function isWebGLSupported() {
return typeof supported > "u" && (supported = function() {
const contextOptions = {
stencil: !0,
failIfMajorPerformanceCaveat: settings.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT
};
try {
if (!settings.ADAPTER.getWebGLRenderingContext())
return !1;
const canvas = settings.ADAPTER.createCanvas();
let gl = canvas.getContext("webgl", contextOptions) || canvas.getContext("experimental-webgl", contextOptions);
const success = !!gl?.getContextAttributes()?.stencil;
if (gl) {
const loseContext = gl.getExtension("WEBGL_lose_context");
loseContext && loseContext.loseContext();
}
return gl = null, success;
} catch {
return !1;
}
}()), supported;
}
export {
isWebGLSupported
};
//# sourceMappingURL=isWebGLSupported.mjs.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"isWebGLSupported.mjs","sources":["../../src/browser/isWebGLSupported.ts"],"sourcesContent":["import { settings } from '../settings';\n\nlet supported: boolean | undefined;\n\n/**\n * Helper for checking for WebGL support.\n * @memberof PIXI.utils\n * @function isWebGLSupported\n * @returns {boolean} Is WebGL supported.\n */\nexport function isWebGLSupported(): boolean\n{\n if (typeof supported === 'undefined')\n {\n supported = (function supported(): boolean\n {\n const contextOptions = {\n stencil: true,\n failIfMajorPerformanceCaveat: settings.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT,\n };\n\n try\n {\n if (!settings.ADAPTER.getWebGLRenderingContext())\n {\n return false;\n }\n\n const canvas = settings.ADAPTER.createCanvas();\n let gl = (\n canvas.getContext('webgl', contextOptions)\n || canvas.getContext('experimental-webgl', contextOptions)\n ) as WebGLRenderingContext | null;\n\n const success = !!gl?.getContextAttributes()?.stencil;\n\n if (gl)\n {\n const loseContext = gl.getExtension('WEBGL_lose_context');\n\n if (loseContext)\n {\n loseContext.loseContext();\n }\n }\n\n gl = null;\n\n return success;\n }\n catch (e)\n {\n return false;\n }\n })();\n }\n\n return supported;\n}\n"],"names":[],"mappings":";;AAEA,IAAI;AAQG,SAAS,mBAChB;AACI,SAAI,OAAO,YAAc,QAErB,YAAa,WACb;AACI,UAAM,iBAAiB;AAAA,MACnB,SAAS;AAAA,MACT,8BAA8B,SAAS;AAAA,IAAA;AAI3C,QAAA;AACQ,UAAA,CAAC,SAAS,QAAQ,yBAAyB;AAEpC,eAAA;AAGL,YAAA,SAAS,SAAS,QAAQ,aAAa;AACzC,UAAA,KACA,OAAO,WAAW,SAAS,cAAc,KACtC,OAAO,WAAW,sBAAsB,cAAc;AAG7D,YAAM,UAAU,CAAC,CAAC,IAAI,wBAAwB;AAE9C,UAAI,IACJ;AACU,cAAA,cAAc,GAAG,aAAa,oBAAoB;AAEpD,uBAEA,YAAY;MAEpB;AAEA,aAAA,KAAK,MAEE;AAAA,IAAA,QAGX;AACW,aAAA;AAAA,IACX;AAAA,EAAA,EAID,IAAA;AACX;"}