@galacean/engine-ui 1.5.8 → 1.5.10
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/browser.js +32 -9
- package/dist/browser.js.map +1 -1
- package/dist/browser.min.js +1 -1
- package/dist/browser.min.js.map +1 -1
- package/dist/main.js +32 -9
- package/dist/main.js.map +1 -1
- package/dist/module.js +33 -10
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
- package/types/component/UITransform.d.ts +2 -1
- package/types/component/interactive/UIInteractive.d.ts +4 -2
package/dist/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_class.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_instanceof.js","../src/component/UIGroup.ts","../src/Utils.ts","../src/enums/CanvasRenderMode.ts","../src/enums/ResolutionAdaptationMode.ts","../src/component/UITransform.ts","../src/component/UIRenderer.ts","../src/component/interactive/UIInteractive.ts","../src/component/UICanvas.ts","../src/component/advanced/Button.ts","../src/component/advanced/Image.ts","../src/component/advanced/Text.ts","../src/component/interactive/transition/Transition.ts","../src/component/interactive/transition/ColorTransition.ts","../src/component/interactive/transition/ScaleTransition.ts","../src/component/interactive/transition/SpriteTransition.ts","../src/input/UIHitResult.ts","../src/input/UIPointerEventEmitter.ts","../src/index.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if (\"value\" in descriptor) descriptor.writable = true;\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n\n return Constructor;\n}\nexport { _create_class as _ };\n","function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","import { Component, DisorderedArray, Entity, EntityModifyFlags, assignmentClone, ignoreClone } from \"@galacean/engine\";\nimport { Utils } from \"../Utils\";\nimport { IGroupAble } from \"../interface/IGroupAble\";\nimport { EntityUIModifyFlags, UICanvas } from \"./UICanvas\";\n\nexport class UIGroup extends Component implements IGroupAble {\n /** @internal */\n @ignoreClone\n _indexInGroup: number = -1;\n /** @internal */\n @ignoreClone\n _indexInRootCanvas: number = -1;\n /** @internal */\n @ignoreClone\n _group: UIGroup;\n /** @internal */\n @ignoreClone\n _rootCanvas: UICanvas;\n /** @internal */\n @ignoreClone\n _disorderedElements: DisorderedArray<IGroupAble> = new DisorderedArray<IGroupAble>();\n\n /** @internal */\n @ignoreClone\n _globalAlpha = 1;\n /** @internal */\n _globalInteractive = true;\n\n @assignmentClone\n private _alpha = 1;\n @assignmentClone\n private _interactive = true;\n @assignmentClone\n private _ignoreParentGroup = false;\n\n /** @internal */\n @ignoreClone\n _rootCanvasListeningEntities: Entity[] = [];\n /** @internal */\n @ignoreClone\n _groupListeningEntities: Entity[] = [];\n /** @internal */\n @ignoreClone\n _isRootCanvasDirty: boolean = true;\n /** @internal */\n @ignoreClone\n _isGroupDirty: boolean = true;\n /** @internal */\n @ignoreClone\n _groupDirtyFlags: number = GroupModifyFlags.None;\n\n /**\n * Whether to ignore the parent group.\n * @remarks If this parameter set to `true`,\n * all settings of the parent group will be ignored.\n */\n get ignoreParentGroup(): boolean {\n return this._ignoreParentGroup;\n }\n\n set ignoreParentGroup(value: boolean) {\n if (this._ignoreParentGroup !== value) {\n this._ignoreParentGroup = value;\n this._onGroupModify(GroupModifyFlags.All);\n }\n }\n\n /**\n * Whether the group is interactive.\n */\n get interactive(): boolean {\n return this._interactive;\n }\n\n set interactive(value: boolean) {\n if (this._interactive !== value) {\n this._interactive = value;\n this._onGroupModify(GroupModifyFlags.GlobalInteractive);\n }\n }\n\n /**\n * The alpha value of the group.\n */\n get alpha(): number {\n return this._alpha;\n }\n\n set alpha(value: number) {\n value = Math.max(0, Math.min(value, 1));\n if (this._alpha !== value) {\n this._alpha = value;\n this._onGroupModify(GroupModifyFlags.GlobalAlpha);\n }\n }\n\n /**\n * @internal\n */\n _getGlobalAlpha(): number {\n if (this._isContainDirtyFlag(GroupModifyFlags.GlobalAlpha)) {\n if (this._ignoreParentGroup) {\n this._globalAlpha = this._alpha;\n } else {\n const parentGroup = this._getGroup();\n this._globalAlpha = this._alpha * (parentGroup ? parentGroup._getGlobalAlpha() : 1);\n }\n this._setDirtyFlagFalse(GroupModifyFlags.GlobalAlpha);\n }\n return this._globalAlpha;\n }\n\n /**\n * @internal\n */\n _getGlobalInteractive(): boolean {\n if (this._isContainDirtyFlag(GroupModifyFlags.GlobalInteractive)) {\n if (this._ignoreParentGroup) {\n this._globalInteractive = this._interactive;\n } else {\n const parentGroup = this._getGroup();\n this._globalInteractive = this._interactive && (!parentGroup || parentGroup._getGlobalInteractive());\n }\n this._setDirtyFlagFalse(GroupModifyFlags.GlobalInteractive);\n }\n return this._globalInteractive;\n }\n\n constructor(entity: Entity) {\n super(entity);\n this._rootCanvasListener = this._rootCanvasListener.bind(this);\n this._groupListener = this._groupListener.bind(this);\n }\n\n // @ts-ignore\n override _onEnableInScene(): void {\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n // @ts-ignore\n this.entity._dispatchModify(EntityUIModifyFlags.GroupEnableInScene);\n }\n\n // @ts-ignore\n override _onDisableInScene(): void {\n Utils.cleanRootCanvas(this);\n Utils.cleanGroup(this);\n const disorderedElements = this._disorderedElements;\n disorderedElements.forEach((element: IGroupAble) => {\n Utils.setGroupDirty(element);\n });\n disorderedElements.length = 0;\n disorderedElements.garbageCollection();\n this._isRootCanvasDirty = this._isGroupDirty = false;\n }\n\n /**\n * @internal\n */\n _getRootCanvas(): UICanvas {\n this._isRootCanvasDirty && Utils.setRootCanvas(this, Utils.searchRootCanvasInParents(this));\n return this._rootCanvas;\n }\n\n /**\n * @internal\n */\n _getGroup(): UIGroup {\n this._isGroupDirty && Utils.setGroup(this, Utils.searchGroupInParents(this));\n return this._group;\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _groupListener(flag: number): void {\n if (flag === EntityModifyFlags.Parent || flag === EntityUIModifyFlags.GroupEnableInScene) {\n Utils.setGroupDirty(this);\n }\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _rootCanvasListener(flag: number): void {\n if (flag === EntityModifyFlags.Parent || flag === EntityUIModifyFlags.CanvasEnableInScene) {\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n }\n }\n\n /**\n * @internal\n */\n _onGroupModify(flags: GroupModifyFlags, isPass: boolean = false): void {\n if (isPass && this._ignoreParentGroup) return;\n if (this._isContainDirtyFlags(flags)) return;\n this._setDirtyFlagTrue(flags);\n this._disorderedElements.forEach((element) => {\n element._onGroupModify(flags, true);\n });\n }\n\n private _isContainDirtyFlags(targetDirtyFlags: number): boolean {\n return (this._groupDirtyFlags & targetDirtyFlags) === targetDirtyFlags;\n }\n\n private _isContainDirtyFlag(type: number): boolean {\n return (this._groupDirtyFlags & type) != 0;\n }\n\n private _setDirtyFlagTrue(type: number) {\n this._groupDirtyFlags |= type;\n }\n\n private _setDirtyFlagFalse(type: number) {\n this._groupDirtyFlags &= ~type;\n }\n}\n\nexport enum GroupModifyFlags {\n None = 0x0,\n GlobalAlpha = 0x1,\n GlobalInteractive = 0x2,\n All = 0x3\n}\n","import { Entity } from \"@galacean/engine\";\nimport { RootCanvasModifyFlags, UICanvas } from \"./component/UICanvas\";\nimport { GroupModifyFlags, UIGroup } from \"./component/UIGroup\";\nimport { IElement } from \"./interface/IElement\";\nimport { IGroupAble } from \"./interface/IGroupAble\";\n\nexport class Utils {\n static setRootCanvasDirty(element: IElement): void {\n if (element._isRootCanvasDirty) return;\n element._isRootCanvasDirty = true;\n this._registerRootCanvas(element, null);\n element._onRootCanvasModify?.(RootCanvasModifyFlags.All);\n }\n\n static setRootCanvas(element: IElement, rootCanvas: UICanvas): void {\n element._isRootCanvasDirty = false;\n this._registerRootCanvas(element, rootCanvas);\n const fromEntity = element instanceof UICanvas ? element.entity.parent : element.entity;\n const toEntity = rootCanvas?.entity.parent ?? null;\n this._registerListener(fromEntity, toEntity, element._rootCanvasListener, element._rootCanvasListeningEntities);\n }\n\n static cleanRootCanvas(element: IElement): void {\n this._registerRootCanvas(element, null);\n this._unRegisterListener(element._rootCanvasListener, element._rootCanvasListeningEntities);\n }\n\n static searchRootCanvasInParents(element: IElement): UICanvas {\n let entity = element instanceof UICanvas ? element.entity.parent : element.entity;\n while (entity) {\n // @ts-ignore\n const components = entity._components;\n for (let i = 0, n = components.length; i < n; i++) {\n const component = components[i];\n if (component.enabled && component instanceof UICanvas && component._isRootCanvas) {\n return component;\n }\n }\n entity = entity.parent;\n }\n return null;\n }\n\n static setGroupDirty(element: IGroupAble): void {\n if (element._isGroupDirty) return;\n element._isGroupDirty = true;\n this._registerGroup(element, null);\n element._onGroupModify(GroupModifyFlags.All);\n }\n\n static setGroup(element: IGroupAble, group: UIGroup): void {\n element._isGroupDirty = false;\n this._registerGroup(element, group);\n const rootCanvas = element._getRootCanvas();\n if (rootCanvas) {\n const fromEntity = element instanceof UIGroup ? element.entity.parent : element.entity;\n const toEntity = group?.entity ?? rootCanvas.entity.parent;\n this._registerListener(fromEntity, toEntity, element._groupListener, element._groupListeningEntities);\n } else {\n this._unRegisterListener(element._groupListener, element._groupListeningEntities);\n }\n }\n\n static cleanGroup(element: IGroupAble): void {\n this._registerGroup(element, null);\n this._unRegisterListener(element._groupListener, element._groupListeningEntities);\n }\n\n static searchGroupInParents(element: IGroupAble): UIGroup {\n const rootCanvas = element._getRootCanvas();\n if (!rootCanvas) return null;\n let entity = element instanceof UIGroup ? element.entity.parent : element.entity;\n const rootCanvasParent = rootCanvas.entity.parent;\n while (entity && entity !== rootCanvasParent) {\n // @ts-ignore\n const components = entity._components;\n for (let i = 0, n = components.length; i < n; i++) {\n const component = components[i];\n if (component.enabled && component instanceof UIGroup) {\n return component;\n }\n }\n entity = entity.parent;\n }\n return null;\n }\n\n private static _registerRootCanvas(element: IElement, canvas: UICanvas): void {\n const preCanvas = element._rootCanvas;\n if (preCanvas !== canvas) {\n if (preCanvas) {\n const replaced = preCanvas._disorderedElements.deleteByIndex(element._indexInRootCanvas);\n replaced && (replaced._indexInRootCanvas = element._indexInRootCanvas);\n element._indexInRootCanvas = -1;\n }\n if (canvas) {\n const disorderedElements = canvas._disorderedElements;\n element._indexInRootCanvas = disorderedElements.length;\n disorderedElements.add(element);\n }\n element._rootCanvas = canvas;\n }\n }\n\n private static _registerGroup(element: IGroupAble, group: UIGroup): void {\n const preGroup = element._group;\n if (preGroup !== group) {\n if (preGroup) {\n const replaced = preGroup._disorderedElements.deleteByIndex(element._indexInGroup);\n replaced && (replaced._indexInGroup = element._indexInGroup);\n element._indexInGroup = -1;\n }\n if (group) {\n const disorderedElements = group._disorderedElements;\n element._indexInGroup = disorderedElements.length;\n disorderedElements.add(element);\n }\n element._group = group;\n element._onGroupModify(GroupModifyFlags.All);\n }\n }\n\n private static _registerListener(\n entity: Entity,\n root: Entity,\n listener: (flag: number, param?: any) => void,\n listeningEntities: Entity[]\n ): void {\n let count = 0;\n while (entity && entity !== root) {\n const preEntity = listeningEntities[count];\n if (preEntity !== entity) {\n // @ts-ignore\n preEntity?._unRegisterModifyListener(listener);\n listeningEntities[count] = entity;\n // @ts-ignore\n entity._registerModifyListener(listener);\n }\n entity = entity.parent;\n count++;\n }\n listeningEntities.length = count;\n }\n\n private static _unRegisterListener(listener: (flag: number, param?: any) => void, listeningEntities: Entity[]): void {\n for (let i = 0, n = listeningEntities.length; i < n; i++) {\n // @ts-ignore\n listeningEntities[i]._unRegisterModifyListener(listener);\n }\n listeningEntities.length = 0;\n }\n}\n","/**\n * Render mode for ui canvas.\n */\nexport enum CanvasRenderMode {\n /**\n * The UI canvas will be rendered directly onto the screen and adapted to screen space,\n * overlaying other rendering elements in the same scene.\n * @remarks if the `engine.canvas` size change, the UI canvas will automatically adapt.\n */\n ScreenSpaceOverlay = 0,\n /**\n * The UI canvas is placed at a specified distance in front of the camera and adapted to screen space,\n * with all objects rendered by the camera.\n * @remarks if the camera's properties or the `engine.canvas` size change, the UI canvas will automatically adapt.\n * @remarks if set `ScreenSpaceCamera` but no corresponding camera is assigned, the actual rendering mode defaults to `ScreenSpaceOverlay`.\n */\n ScreenSpaceCamera = 1,\n /**\n * The UI canvas is placed in the 3D world space and rendered by every camera in the same scene.\n */\n WorldSpace = 2\n}\n","/**\n * Resolution adaptation mode.\n * @remarks Only effective in screen space.\n */\nexport enum ResolutionAdaptationMode {\n /** Adapt based on width.(`referenceResolution.x`) */\n WidthAdaptation,\n /** Adapt based on height.(`referenceResolution.y`) */\n HeightAdaptation,\n /** Adapt based on both width and height.(`referenceResolution`) */\n BothAdaptation,\n /** Adapt to the side with a larger ratio. */\n ExpandAdaptation,\n /** Adapt to the side with smaller ratio. */\n ShrinkAdaptation\n}\n","import { Entity, Transform, Vector2, deepClone, ignoreClone } from \"@galacean/engine\";\n\n/**\n * The Transform component exclusive to the UI element.\n */\nexport class UITransform extends Transform {\n @deepClone\n private _size: Vector2 = new Vector2(100, 100);\n @deepClone\n private _pivot: Vector2 = new Vector2(0.5, 0.5);\n\n /**\n * Width and height of UI element.\n */\n get size(): Vector2 {\n return this._size;\n }\n\n set size(value: Vector2) {\n const { _size: size } = this;\n if (size === value) return;\n (size.x !== value.x || size.y !== value.y) && size.copyFrom(value);\n }\n\n /**\n * Pivot of UI element.\n */\n get pivot(): Vector2 {\n return this._pivot;\n }\n\n set pivot(value: Vector2) {\n const { _pivot: pivot } = this;\n if (pivot === value) return;\n (pivot.x !== value.x || pivot.y !== value.y) && pivot.copyFrom(value);\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n // @ts-ignore\n this._size._onValueChanged = this._onSizeChange.bind(this);\n // @ts-ignore\n this._pivot._onValueChanged = this._onPivotChange.bind(this);\n }\n\n /**\n * @internal\n */\n _copyFrom(transform: UITransform): void {\n // @ts-ignore\n super._copyFrom(transform);\n this._size.copyFrom(transform.size);\n this._pivot.copyFrom(transform.pivot);\n }\n\n @ignoreClone\n private _onSizeChange(): void {\n // @ts-ignore\n this._entity._updateFlagManager.dispatch(UITransformModifyFlags.Size);\n }\n\n @ignoreClone\n private _onPivotChange(): void {\n // @ts-ignore\n this._entity._updateFlagManager.dispatch(UITransformModifyFlags.Pivot);\n }\n}\n\n/**\n * @internal\n * extends TransformModifyFlags\n */\nexport enum UITransformModifyFlags {\n /** Size. */\n Size = 0x200,\n /** Pivot. */\n Pivot = 0x400\n}\n","import {\n BatchUtils,\n Color,\n DependentMode,\n Entity,\n EntityModifyFlags,\n Matrix,\n Plane,\n Ray,\n Renderer,\n RendererUpdateFlags,\n ShaderMacroCollection,\n ShaderProperty,\n Vector3,\n Vector4,\n deepClone,\n dependentComponents,\n ignoreClone\n} from \"@galacean/engine\";\nimport { Utils } from \"../Utils\";\nimport { UIHitResult } from \"../input/UIHitResult\";\nimport { IGraphics } from \"../interface/IGraphics\";\nimport { EntityUIModifyFlags, UICanvas } from \"./UICanvas\";\nimport { GroupModifyFlags, UIGroup } from \"./UIGroup\";\nimport { UITransform } from \"./UITransform\";\n\n@dependentComponents(UITransform, DependentMode.AutoAdd)\nexport class UIRenderer extends Renderer implements IGraphics {\n /** @internal */\n static _tempVec30: Vector3 = new Vector3();\n /** @internal */\n static _tempVec31: Vector3 = new Vector3();\n /** @internal */\n static _tempMat: Matrix = new Matrix();\n /** @internal */\n static _tempPlane: Plane = new Plane();\n /** @internal */\n static _textureProperty: ShaderProperty = ShaderProperty.getByName(\"renderer_UITexture\");\n\n /**\n * Custom boundary for raycast detection.\n * @remarks this is based on `this.entity.transform`.\n */\n @deepClone\n raycastPadding: Vector4 = new Vector4(0, 0, 0, 0);\n /** @internal */\n @ignoreClone\n _rootCanvas: UICanvas;\n /** @internal */\n @ignoreClone\n _indexInRootCanvas: number = -1;\n /** @internal */\n @ignoreClone\n _isRootCanvasDirty: boolean = false;\n /** @internal */\n @ignoreClone\n _rootCanvasListeningEntities: Entity[] = [];\n /** @internal */\n @ignoreClone\n _group: UIGroup;\n /** @internal */\n @ignoreClone\n _indexInGroup: number = -1;\n /** @internal */\n @ignoreClone\n _isGroupDirty: boolean = false;\n /** @internal */\n @ignoreClone\n _groupListeningEntities: Entity[] = [];\n /** @internal */\n @ignoreClone\n _subChunk;\n\n @ignoreClone\n private _raycastEnabled: boolean = true;\n @deepClone\n protected _color: Color = new Color(1, 1, 1, 1);\n\n /**\n * Rendering color for the ui renderer.\n */\n get color(): Color {\n return this._color;\n }\n\n set color(value: Color) {\n if (this._color !== value) {\n this._color.copyFrom(value);\n }\n }\n\n /**\n * Whether this renderer be picked up by raycast.\n */\n get raycastEnabled(): boolean {\n return this._raycastEnabled;\n }\n\n set raycastEnabled(value: boolean) {\n this._raycastEnabled = value;\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n this._dirtyUpdateFlag = RendererUpdateFlags.WorldVolume | UIRendererUpdateFlags.Color;\n this._onColorChanged = this._onColorChanged.bind(this);\n //@ts-ignore\n this._color._onValueChanged = this._onColorChanged;\n this._groupListener = this._groupListener.bind(this);\n this._rootCanvasListener = this._rootCanvasListener.bind(this);\n }\n\n // @ts-ignore\n override _canBatch(elementA, elementB): boolean {\n return BatchUtils.canBatchSprite(elementA, elementB);\n }\n\n // @ts-ignore\n override _batch(elementA, elementB?): void {\n BatchUtils.batchFor2D(elementA, elementB);\n }\n\n // @ts-ignore\n override _updateTransformShaderData(context, onlyMVP: boolean, batched: boolean): void {\n // @ts-ignore\n super._updateTransformShaderData(context, onlyMVP, true);\n }\n\n // @ts-ignore\n override _prepareRender(context): void {\n // Update once per frame per renderer, not influenced by batched\n if (this._renderFrameCount !== this.engine.time.frameCount) {\n this._update(context);\n }\n\n this._render(context);\n\n // union camera global macro and renderer macro.\n ShaderMacroCollection.unionCollection(\n context.camera._globalShaderMacro,\n // @ts-ignore\n this.shaderData._macroCollection,\n //@ts-ignore\n this._globalShaderMacro\n );\n }\n\n // @ts-ignore\n override _onEnableInScene(): void {\n // @ts-ignore\n this._overrideUpdate && this.scene._componentsManager.addOnUpdateRenderers(this);\n this.entity._updateUIHierarchyVersion(UICanvas._hierarchyCounter);\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n }\n\n // @ts-ignore\n override _onDisableInScene(): void {\n // @ts-ignore\n this._overrideUpdate && this.scene._componentsManager.removeOnUpdateRenderers(this);\n this.entity._updateUIHierarchyVersion(UICanvas._hierarchyCounter);\n Utils.cleanRootCanvas(this);\n Utils.cleanGroup(this);\n }\n\n /**\n * @internal\n */\n _getGlobalAlpha(): number {\n return this._getGroup()?._getGlobalAlpha() ?? 1;\n }\n\n /**\n * @internal\n */\n _getRootCanvas(): UICanvas {\n this._isRootCanvasDirty && Utils.setRootCanvas(this, Utils.searchRootCanvasInParents(this));\n return this._rootCanvas;\n }\n\n /**\n * @internal\n */\n _getGroup(): UIGroup {\n this._isGroupDirty && Utils.setGroup(this, Utils.searchGroupInParents(this));\n return this._group;\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _groupListener(flag: number): void {\n if (flag === EntityModifyFlags.Parent || flag === EntityUIModifyFlags.GroupEnableInScene) {\n Utils.setGroupDirty(this);\n }\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _rootCanvasListener(flag: number, entity: Entity): void {\n switch (flag) {\n case EntityModifyFlags.Parent:\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n case EntityModifyFlags.Child:\n entity._updateUIHierarchyVersion(UICanvas._hierarchyCounter);\n break;\n default:\n break;\n }\n }\n\n /**\n * @internal\n */\n _onGroupModify(flags: GroupModifyFlags): void {\n if (flags & GroupModifyFlags.GlobalAlpha) {\n this._dirtyUpdateFlag |= UIRendererUpdateFlags.Color;\n }\n }\n\n @ignoreClone\n private _onColorChanged(): void {\n this._dirtyUpdateFlag |= UIRendererUpdateFlags.Color;\n }\n\n /**\n * @internal\n */\n _getChunkManager() {\n // @ts-ignore\n return this.engine._batcherManager.primitiveChunkManagerUI;\n }\n\n /**\n * @internal\n */\n _raycast(ray: Ray, out: UIHitResult, distance: number = Number.MAX_SAFE_INTEGER): boolean {\n const plane = UIRenderer._tempPlane;\n const transform = <UITransform>this._transformEntity.transform;\n const normal = plane.normal.copyFrom(transform.worldForward);\n plane.distance = -Vector3.dot(normal, transform.worldPosition);\n const curDistance = ray.intersectPlane(plane);\n if (curDistance >= 0 && curDistance < distance) {\n const hitPointWorld = ray.getPoint(curDistance, UIRenderer._tempVec30);\n const worldMatrixInv = UIRenderer._tempMat;\n Matrix.invert(transform.worldMatrix, worldMatrixInv);\n const localPosition = UIRenderer._tempVec31;\n Vector3.transformCoordinate(hitPointWorld, worldMatrixInv, localPosition);\n if (this._hitTest(localPosition)) {\n out.component = this;\n out.distance = curDistance;\n out.entity = this.entity;\n out.normal.copyFrom(normal);\n out.point.copyFrom(hitPointWorld);\n return true;\n }\n }\n return false;\n }\n\n protected _hitTest(localPosition: Vector3): boolean {\n const { x, y } = localPosition;\n const uiTransform = <UITransform>this._transformEntity.transform;\n const { x: width, y: height } = uiTransform.size;\n const { x: pivotX, y: pivotY } = uiTransform.pivot;\n const { x: paddingLeft, y: paddingBottom, z: paddingRight, w: paddingTop } = this.raycastPadding;\n return (\n x >= -width * pivotX + paddingLeft &&\n x <= width * (1 - pivotX) - paddingRight &&\n y >= -height * pivotY + paddingTop &&\n y <= height * (1 - pivotY) - paddingBottom\n );\n }\n\n protected override _onDestroy(): void {\n if (this._subChunk) {\n this._getChunkManager().freeSubChunk(this._subChunk);\n this._subChunk = null;\n }\n super._onDestroy();\n //@ts-ignore\n this._color._onValueChanged = null;\n this._color = null;\n }\n}\n\n/**\n * @remarks Extends `RendererUpdateFlags`.\n */\nexport enum UIRendererUpdateFlags {\n Color = 0x2\n}\n","import { Entity, EntityModifyFlags, Script, ignoreClone } from \"@galacean/engine\";\nimport { UIGroup } from \"../..\";\nimport { Utils } from \"../../Utils\";\nimport { IGroupAble } from \"../../interface/IGroupAble\";\nimport { EntityUIModifyFlags, UICanvas } from \"../UICanvas\";\nimport { GroupModifyFlags } from \"../UIGroup\";\nimport { Transition } from \"./transition/Transition\";\n\n/**\n * Interactive component.\n */\nexport class UIInteractive extends Script implements IGroupAble {\n /** @internal */\n @ignoreClone\n _rootCanvas: UICanvas;\n /** @internal */\n @ignoreClone\n _indexInRootCanvas: number = -1;\n /** @internal */\n @ignoreClone\n _isRootCanvasDirty: boolean = false;\n /** @internal */\n @ignoreClone\n _rootCanvasListeningEntities: Entity[] = [];\n /** @internal */\n @ignoreClone\n _group: UIGroup;\n /** @internal */\n @ignoreClone\n _indexInGroup: number = -1;\n /** @internal */\n @ignoreClone\n _isGroupDirty: boolean = false;\n /** @internal */\n @ignoreClone\n _groupListeningEntities: Entity[] = [];\n\n /** @internal */\n @ignoreClone\n _globalInteractive: boolean = false;\n /** @internal */\n @ignoreClone\n _globalInteractiveDirty: boolean = false;\n\n protected _interactive: boolean = true;\n protected _state: InteractiveState = InteractiveState.Normal;\n protected _transitions: Transition[] = [];\n\n /** @todo Multi-touch points are not considered yet. */\n private _isPointerInside: boolean = false;\n private _isPointerDragging: boolean = false;\n\n /**\n * The transitions of this interactive.\n */\n get transitions(): Readonly<Transition[]> {\n return this._transitions;\n }\n\n /**\n * Whether the interactive is enabled.\n */\n get interactive() {\n return this._interactive;\n }\n\n set interactive(value: boolean) {\n if (this._interactive !== value) {\n this._interactive = value;\n this._globalInteractiveDirty = true;\n }\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n this._groupListener = this._groupListener.bind(this);\n this._rootCanvasListener = this._rootCanvasListener.bind(this);\n }\n\n /**\n * Add transition on this interactive.\n * @param transition - The transition\n */\n addTransition(transition: Transition): void {\n const interactive = transition._interactive;\n if (interactive !== this) {\n interactive?.removeTransition(transition);\n this._transitions.push(transition);\n transition._interactive = this;\n transition._setState(this._state, true);\n }\n }\n\n /**\n * Remove a transition.\n * @param shape - The transition.\n */\n removeTransition(transition: Transition): void {\n const transitions = this._transitions;\n const lastOneIndex = transitions.length - 1;\n for (let i = lastOneIndex; i >= 0; i--) {\n if (transitions[i] === transition) {\n i !== lastOneIndex && (transitions[i] = transitions[lastOneIndex]);\n transitions.length = lastOneIndex;\n transition._interactive = null;\n break;\n }\n }\n }\n\n /**\n * Remove all transitions.\n */\n clearTransitions(): void {\n const transitions = this._transitions;\n for (let i = 0, n = transitions.length; i < n; i++) {\n transitions[i]._interactive = null;\n }\n transitions.length = 0;\n }\n\n override onUpdate(deltaTime: number): void {\n if (this._getGlobalInteractive()) {\n const transitions = this._transitions;\n for (let i = 0, n = transitions.length; i < n; i++) {\n transitions[i]._onUpdate(deltaTime);\n }\n }\n }\n\n override onPointerBeginDrag(): void {\n this._isPointerDragging = true;\n this._updateState(false);\n }\n\n override onPointerEndDrag(): void {\n this._isPointerDragging = false;\n this._updateState(false);\n }\n\n override onPointerEnter(): void {\n this._isPointerInside = true;\n this._updateState(false);\n }\n\n override onPointerExit(): void {\n this._isPointerInside = false;\n this._updateState(false);\n }\n\n override onDestroy(): void {\n super.onDestroy();\n const transitions = this._transitions;\n for (let i = transitions.length - 1; i >= 0; i--) {\n transitions[i].destroy();\n }\n }\n\n /**\n * @internal\n */\n _getRootCanvas(): UICanvas {\n this._isRootCanvasDirty && Utils.setRootCanvas(this, Utils.searchRootCanvasInParents(this));\n return this._rootCanvas;\n }\n\n /**\n * @internal\n */\n _getGroup(): UIGroup {\n this._isGroupDirty && Utils.setGroup(this, Utils.searchGroupInParents(this));\n return this._group;\n }\n\n // @ts-ignore\n override _onEnableInScene(): void {\n // @ts-ignore\n super._onEnableInScene();\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n this._updateState(true);\n }\n\n // @ts-ignore\n override _onDisableInScene(): void {\n // @ts-ignore\n super._onDisableInScene();\n Utils.cleanRootCanvas(this);\n Utils.cleanGroup(this);\n this._isPointerInside = this._isPointerDragging = false;\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _groupListener(flag: number): void {\n if (flag === EntityModifyFlags.Parent || flag === EntityUIModifyFlags.GroupEnableInScene) {\n Utils.setGroupDirty(this);\n }\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _rootCanvasListener(flag: number): void {\n if (flag === EntityModifyFlags.Parent || flag === EntityUIModifyFlags.CanvasEnableInScene) {\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n }\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _onGroupModify(flags: GroupModifyFlags): void {\n if (flags & GroupModifyFlags.GlobalInteractive) {\n this._globalInteractiveDirty = true;\n }\n }\n\n /**\n * @internal\n */\n _getGlobalInteractive(): boolean {\n if (this._globalInteractiveDirty) {\n const group = this._getGroup();\n const globalInteractive = this._interactive && (!group || group._getGlobalInteractive());\n if (this._globalInteractive !== globalInteractive) {\n this._globalInteractive = globalInteractive;\n this._updateState(true);\n }\n this._globalInteractiveDirty = false;\n }\n return this._globalInteractive;\n }\n\n private _updateState(instant: boolean): void {\n const state = this._getInteractiveState();\n if (this._state !== state) {\n this._state = state;\n const transitions = this._transitions;\n for (let i = 0, n = transitions.length; i < n; i++) {\n transitions[i]._setState(state, instant);\n }\n }\n }\n\n private _getInteractiveState(): InteractiveState {\n if (!this._getGlobalInteractive()) {\n return InteractiveState.Disable;\n }\n if (this._isPointerDragging) {\n return InteractiveState.Pressed;\n } else {\n return this._isPointerInside ? InteractiveState.Hover : InteractiveState.Normal;\n }\n }\n}\n\nexport enum InteractiveState {\n Normal,\n Pressed,\n Hover,\n Disable\n}\n","import {\n BoolUpdateFlag,\n Camera,\n CameraModifyFlags,\n Component,\n DependentMode,\n DisorderedArray,\n Entity,\n EntityModifyFlags,\n Logger,\n MathUtil,\n Matrix,\n Ray,\n Vector2,\n Vector3,\n assignmentClone,\n deepClone,\n dependentComponents,\n ignoreClone\n} from \"@galacean/engine\";\nimport { Utils } from \"../Utils\";\nimport { CanvasRenderMode } from \"../enums/CanvasRenderMode\";\nimport { ResolutionAdaptationMode } from \"../enums/ResolutionAdaptationMode\";\nimport { UIHitResult } from \"../input/UIHitResult\";\nimport { IElement } from \"../interface/IElement\";\nimport { IGroupAble } from \"../interface/IGroupAble\";\nimport { UIGroup } from \"./UIGroup\";\nimport { UIRenderer } from \"./UIRenderer\";\nimport { UITransform } from \"./UITransform\";\nimport { UIInteractive } from \"./interactive/UIInteractive\";\n\n/**\n * The UI Canvas component serves as the root node for UI elements,\n * handling rendering and events based on it.\n */\n@dependentComponents(UITransform, DependentMode.AutoAdd)\nexport class UICanvas extends Component implements IElement {\n /** @internal */\n static _hierarchyCounter: number = 1;\n private static _tempGroupAbleList: IGroupAble[] = [];\n private static _tempVec3: Vector3 = new Vector3();\n private static _tempMat: Matrix = new Matrix();\n\n /** @internal */\n @ignoreClone\n _canvasIndex: number = -1;\n /** @internal */\n @ignoreClone\n _rootCanvas: UICanvas;\n /** @internal */\n @ignoreClone\n _indexInRootCanvas: number = -1;\n /** @internal */\n @ignoreClone\n _isRootCanvasDirty: boolean = false;\n /** @internal */\n @ignoreClone\n _rootCanvasListeningEntities: Entity[] = [];\n\n /** @internal */\n @ignoreClone\n _isRootCanvas: boolean = false;\n /** @internal */\n @ignoreClone\n _renderElement: any;\n /** @internal */\n @ignoreClone\n _sortDistance: number = 0;\n /** @internal */\n @ignoreClone\n _orderedRenderers: UIRenderer[] = [];\n /** @internal */\n @ignoreClone\n _realRenderMode: number = CanvasRealRenderMode.None;\n /** @internal */\n @ignoreClone\n _disorderedElements: DisorderedArray<IElement> = new DisorderedArray<IElement>();\n\n @ignoreClone\n private _renderMode = CanvasRenderMode.WorldSpace;\n @assignmentClone\n private _renderCamera: Camera;\n @ignoreClone\n private _cameraObserver: Camera;\n @assignmentClone\n private _resolutionAdaptationMode = ResolutionAdaptationMode.HeightAdaptation;\n @assignmentClone\n private _sortOrder: number = 0;\n @assignmentClone\n private _distance: number = 10;\n @deepClone\n private _referenceResolution: Vector2 = new Vector2(800, 600);\n @assignmentClone\n private _referenceResolutionPerUnit: number = 100;\n @ignoreClone\n private _hierarchyVersion: number = -1;\n @ignoreClone\n private _center: Vector3 = new Vector3();\n @ignoreClone\n private _centerDirtyFlag: BoolUpdateFlag;\n\n /**\n * The conversion ratio between reference resolution and unit for UI elements in this canvas.\n */\n get referenceResolutionPerUnit(): number {\n return this._referenceResolutionPerUnit;\n }\n\n set referenceResolutionPerUnit(value: number) {\n if (this._referenceResolutionPerUnit !== value) {\n this._referenceResolutionPerUnit = value;\n this._disorderedElements.forEach((element) => {\n element._onRootCanvasModify?.(RootCanvasModifyFlags.ReferenceResolutionPerUnit);\n });\n }\n }\n\n /**\n * The reference resolution of the UI canvas in `ScreenSpaceCamera` and `ScreenSpaceOverlay` mode.\n */\n get referenceResolution(): Vector2 {\n return this._referenceResolution;\n }\n\n set referenceResolution(value: Vector2) {\n const referenceResolution = this._referenceResolution;\n if (referenceResolution === value) return;\n (referenceResolution.x !== value.x || referenceResolution.y !== value.y) && referenceResolution.copyFrom(value);\n }\n\n /**\n * The rendering mode of the UI canvas.\n */\n get renderMode(): CanvasRenderMode {\n return this._renderMode;\n }\n\n set renderMode(mode: CanvasRenderMode) {\n const preMode = this._renderMode;\n if (preMode !== mode) {\n this._renderMode = mode;\n this._updateCameraObserver();\n this._setRealRenderMode(this._getRealRenderMode());\n }\n }\n\n /**\n * The camera used to render the UI canvas in `ScreenSpaceCamera` mode.\n * @remarks If set `ScreenSpaceCamera` but no corresponding camera is assigned, the actual rendering mode defaults to `ScreenSpaceOverlay`.\n */\n get renderCamera(): Camera {\n return this._renderCamera;\n }\n\n set renderCamera(value: Camera) {\n const preCamera = this._renderCamera;\n if (preCamera !== value) {\n value &&\n this._isSameOrChildEntity(value.entity) &&\n Logger.warn(\n \"Camera entity matching or nested within the canvas entity disables canvas auto-adaptation in ScreenSpaceCamera mode.\"\n );\n this._renderCamera = value;\n this._updateCameraObserver();\n const preRenderMode = this._realRenderMode;\n const curRenderMode = this._getRealRenderMode();\n if (preRenderMode === curRenderMode) {\n if (curRenderMode === CanvasRenderMode.ScreenSpaceCamera) {\n this._adapterPoseInScreenSpace();\n this._adapterSizeInScreenSpace();\n }\n } else {\n this._setRealRenderMode(curRenderMode);\n }\n }\n }\n\n /**\n * The screen resolution adaptation mode of the UI canvas in `ScreenSpaceCamera` and `ScreenSpaceOverlay` mode.\n */\n get resolutionAdaptationMode(): ResolutionAdaptationMode {\n return this._resolutionAdaptationMode;\n }\n\n set resolutionAdaptationMode(value: ResolutionAdaptationMode) {\n if (this._resolutionAdaptationMode !== value) {\n this._resolutionAdaptationMode = value;\n const realRenderMode = this._realRenderMode;\n if (\n realRenderMode === CanvasRenderMode.ScreenSpaceCamera ||\n realRenderMode === CanvasRenderMode.ScreenSpaceOverlay\n ) {\n this._adapterSizeInScreenSpace();\n }\n }\n }\n\n /**\n * The rendering order priority of the UI canvas in `ScreenSpaceOverlay` mode.\n */\n get sortOrder(): number {\n return this._sortOrder;\n }\n\n set sortOrder(value: number) {\n if (this._sortOrder !== value) {\n this._sortOrder = value;\n this._realRenderMode === CanvasRenderMode.ScreenSpaceOverlay &&\n // @ts-ignore\n (this.scene._componentsManager._overlayCanvasesSortingFlag = true);\n }\n }\n\n /**\n * The distance between the UI canvas and the camera in `ScreenSpaceCamera` mode.\n */\n get distance(): number {\n return this._distance;\n }\n\n set distance(value: number) {\n if (this._distance !== value) {\n this._distance = value;\n if (this._realRenderMode === CanvasRenderMode.ScreenSpaceCamera) {\n this._adapterPoseInScreenSpace();\n this._adapterSizeInScreenSpace();\n }\n }\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n this._onCanvasSizeListener = this._onCanvasSizeListener.bind(this);\n this._onCameraModifyListener = this._onCameraModifyListener.bind(this);\n this._onCameraTransformListener = this._onCameraTransformListener.bind(this);\n this._onReferenceResolutionChanged = this._onReferenceResolutionChanged.bind(this);\n // @ts-ignore\n this._referenceResolution._onValueChanged = this._onReferenceResolutionChanged;\n this._rootCanvasListener = this._rootCanvasListener.bind(this);\n this._centerDirtyFlag = entity.registerWorldChangeFlag();\n }\n\n /**\n * @internal\n */\n _raycast(ray: Ray, out: UIHitResult, distance: number = Number.MAX_SAFE_INTEGER): boolean {\n const renderers = this._getRenderers();\n for (let i = renderers.length - 1; i >= 0; i--) {\n const element = renderers[i];\n if (element.raycastEnabled && element._raycast(ray, out, distance)) {\n return true;\n }\n }\n out.component = null;\n out.entity = null;\n out.distance = 0;\n out.point.set(0, 0, 0);\n out.normal.set(0, 0, 0);\n return false;\n }\n\n /**\n * @internal\n */\n _getRootCanvas(): UICanvas {\n return this._rootCanvas;\n }\n\n /**\n * @internal\n */\n _canRender(camera: Camera): boolean {\n return this._renderMode !== CanvasRenderMode.ScreenSpaceCamera || this._renderCamera === camera;\n }\n\n /**\n * @internal\n */\n _prepareRender(context): void {\n const { engine, _realRenderMode: mode } = this;\n const { enableFrustumCulling, cullingMask, _frustum: frustum } = context.camera;\n const { frameCount } = engine.time;\n // @ts-ignore\n const renderElement = (this._renderElement = engine._renderElementPool.get());\n const virtualCamera = context.virtualCamera;\n this._updateSortDistance(virtualCamera.isOrthographic, virtualCamera.position, virtualCamera.forward);\n renderElement.set(this.sortOrder, this._sortDistance);\n const { width, height } = engine.canvas;\n const renderers = this._getRenderers();\n for (let i = 0, n = renderers.length; i < n; i++) {\n const renderer = renderers[i];\n // Filter by camera culling mask\n if (!(cullingMask & renderer.entity.layer)) {\n continue;\n }\n // Filter by camera frustum\n if (enableFrustumCulling) {\n switch (mode) {\n case CanvasRenderMode.ScreenSpaceOverlay:\n const { min, max } = renderer.bounds;\n if (min.x > width || max.x < 0 || min.y > height || max.y < 0) {\n continue;\n }\n break;\n case CanvasRenderMode.ScreenSpaceCamera:\n case CanvasRenderMode.WorldSpace:\n if (!frustum.intersectsBox(renderer.bounds)) {\n continue;\n }\n break;\n default:\n break;\n }\n }\n renderer._prepareRender(context);\n renderer._renderFrameCount = frameCount;\n }\n }\n\n /**\n * @internal\n */\n _updateSortDistance(isOrthographic: boolean, cameraPosition: Vector3, cameraForward: Vector3): void {\n switch (this._realRenderMode) {\n case CanvasRenderMode.ScreenSpaceOverlay:\n this._sortDistance = 0;\n break;\n case CanvasRenderMode.ScreenSpaceCamera:\n this._sortDistance = this._distance;\n break;\n case CanvasRenderMode.WorldSpace:\n const boundsCenter = this._getCenter();\n if (isOrthographic) {\n const distance = UICanvas._tempVec3;\n Vector3.subtract(boundsCenter, cameraPosition, distance);\n this._sortDistance = Vector3.dot(distance, cameraForward);\n } else {\n this._sortDistance = Vector3.distanceSquared(boundsCenter, cameraPosition);\n }\n break;\n }\n }\n\n // @ts-ignore\n override _onEnableInScene(): void {\n const entity = this.entity;\n // @ts-ignore\n entity._dispatchModify(EntityUIModifyFlags.CanvasEnableInScene, this);\n const rootCanvas = Utils.searchRootCanvasInParents(this);\n this._setIsRootCanvas(!rootCanvas);\n Utils.setRootCanvas(this, rootCanvas);\n }\n\n // @ts-ignore\n override _onDisableInScene(): void {\n this._setIsRootCanvas(false);\n Utils.cleanRootCanvas(this);\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _rootCanvasListener(flag: number, param: any): void {\n if (this._isRootCanvas) {\n if (flag === EntityModifyFlags.Parent) {\n const rootCanvas = Utils.searchRootCanvasInParents(this);\n this._setIsRootCanvas(!rootCanvas);\n Utils.setRootCanvas(this, rootCanvas);\n } else if (flag === EntityUIModifyFlags.CanvasEnableInScene) {\n this._setIsRootCanvas(false);\n Utils.setRootCanvas(this, <UICanvas>param);\n }\n } else {\n if (flag === EntityModifyFlags.Parent) {\n const rootCanvas = Utils.searchRootCanvasInParents(this);\n this._setIsRootCanvas(!rootCanvas);\n Utils.setRootCanvas(this, rootCanvas);\n }\n }\n }\n\n /**\n * @internal\n */\n _cloneTo(target: UICanvas, srcRoot: Entity, targetRoot: Entity): void {\n target.renderMode = this._renderMode;\n }\n\n private _getRenderers(): UIRenderer[] {\n const { _orderedRenderers: renderers, entity } = this;\n const uiHierarchyVersion = entity._uiHierarchyVersion;\n if (this._hierarchyVersion !== uiHierarchyVersion) {\n renderers.length = this._walk(this.entity, renderers);\n UICanvas._tempGroupAbleList.length = 0;\n this._hierarchyVersion = uiHierarchyVersion;\n ++UICanvas._hierarchyCounter;\n }\n return renderers;\n }\n\n private _adapterPoseInScreenSpace(): void {\n const transform = this.entity.transform;\n const realRenderMode = this._realRenderMode;\n if (realRenderMode === CanvasRenderMode.ScreenSpaceCamera) {\n const cameraEntity = this._renderCamera.entity;\n if (!this._isSameOrChildEntity(cameraEntity)) {\n const { transform: cameraTransform } = cameraEntity;\n const { worldPosition: cameraWorldPosition, worldForward: cameraWorldForward } = cameraTransform;\n const distance = this._distance;\n transform.setWorldPosition(\n cameraWorldPosition.x + cameraWorldForward.x * distance,\n cameraWorldPosition.y + cameraWorldForward.y * distance,\n cameraWorldPosition.z + cameraWorldForward.z * distance\n );\n transform.worldRotationQuaternion.copyFrom(cameraTransform.worldRotationQuaternion);\n }\n } else {\n const { canvas } = this.engine;\n transform.setWorldPosition(canvas.width * 0.5, canvas.height * 0.5, 0);\n transform.worldRotationQuaternion.set(0, 0, 0, 1);\n }\n }\n\n private _adapterSizeInScreenSpace(): void {\n const transform = <UITransform>this.entity.transform;\n const realRenderMode = this._realRenderMode;\n const { x: width, y: height } = this._referenceResolution;\n let curWidth: number;\n let curHeight: number;\n if (realRenderMode === CanvasRenderMode.ScreenSpaceCamera) {\n const renderCamera = this._renderCamera;\n curHeight = renderCamera.isOrthographic\n ? renderCamera.orthographicSize * 2\n : 2 * (Math.tan(MathUtil.degreeToRadian(renderCamera.fieldOfView * 0.5)) * this._distance);\n curWidth = renderCamera.aspectRatio * curHeight;\n } else {\n const canvas = this.engine.canvas;\n curHeight = canvas.height;\n curWidth = canvas.width;\n }\n let expectX: number, expectY: number, expectZ: number;\n switch (this._resolutionAdaptationMode) {\n case ResolutionAdaptationMode.WidthAdaptation:\n expectX = expectY = expectZ = curWidth / width;\n break;\n case ResolutionAdaptationMode.HeightAdaptation:\n expectX = expectY = expectZ = curHeight / height;\n break;\n case ResolutionAdaptationMode.BothAdaptation:\n expectX = curWidth / width;\n expectY = curHeight / height;\n expectZ = (expectX + expectY) * 0.5;\n break;\n case ResolutionAdaptationMode.ExpandAdaptation:\n expectX = expectY = expectZ = Math.min(curWidth / width, curHeight / height);\n break;\n case ResolutionAdaptationMode.ShrinkAdaptation:\n expectX = expectY = expectZ = Math.max(curWidth / width, curHeight / height);\n break;\n default:\n break;\n }\n\n const worldMatrix = UICanvas._tempMat;\n Matrix.affineTransformation(\n UICanvas._tempVec3.set(expectX, expectY, expectZ),\n transform.worldRotationQuaternion,\n transform.worldPosition,\n worldMatrix\n );\n transform.worldMatrix = worldMatrix;\n transform.size.set(curWidth / expectX, curHeight / expectY);\n }\n\n private _walk(entity: Entity, renderers: UIRenderer[], depth = 0, group: UIGroup = null): number {\n // @ts-ignore\n const components: Component[] = entity._components;\n const tempGroupAbleList = UICanvas._tempGroupAbleList;\n let groupAbleCount = 0;\n for (let i = 0, n = components.length; i < n; i++) {\n const component = components[i];\n if (!component.enabled) continue;\n if (component instanceof UIRenderer) {\n renderers[depth] = component;\n ++depth;\n component._isRootCanvasDirty && Utils.setRootCanvas(component, this);\n if (component._isGroupDirty) {\n tempGroupAbleList[groupAbleCount++] = component;\n }\n } else if (component instanceof UIInteractive) {\n component._isRootCanvasDirty && Utils.setRootCanvas(component, this);\n if (component._isGroupDirty) {\n tempGroupAbleList[groupAbleCount++] = component;\n }\n } else if (component instanceof UIGroup) {\n component._isRootCanvasDirty && Utils.setRootCanvas(component, this);\n component._isGroupDirty && Utils.setGroup(component, group);\n group = component;\n }\n }\n for (let i = 0; i < groupAbleCount; i++) {\n Utils.setGroup(tempGroupAbleList[i], group);\n }\n const children = entity.children;\n for (let i = 0, n = children.length; i < n; i++) {\n const child = children[i];\n child.isActive && (depth = this._walk(child, renderers, depth, group));\n }\n return depth;\n }\n\n private _updateCameraObserver(): void {\n const camera =\n this._isRootCanvas && this._renderMode === CanvasRenderMode.ScreenSpaceCamera ? this._renderCamera : null;\n const preCamera = this._cameraObserver;\n if (preCamera !== camera) {\n this._cameraObserver = camera;\n if (preCamera) {\n // @ts-ignore\n preCamera.entity._updateFlagManager.removeListener(this._onCameraTransformListener);\n // @ts-ignore\n preCamera._unRegisterModifyListener(this._onCameraModifyListener);\n }\n if (camera) {\n // @ts-ignore\n camera.entity._updateFlagManager.addListener(this._onCameraTransformListener);\n // @ts-ignore\n camera._registerModifyListener(this._onCameraModifyListener);\n }\n }\n }\n\n @ignoreClone\n private _onCameraModifyListener(flag: CameraModifyFlags): void {\n if (this._realRenderMode === CanvasRenderMode.ScreenSpaceCamera) {\n switch (flag) {\n case CameraModifyFlags.ProjectionType:\n case CameraModifyFlags.AspectRatio:\n this._adapterSizeInScreenSpace();\n break;\n case CameraModifyFlags.FieldOfView:\n !this._renderCamera.isOrthographic && this._adapterSizeInScreenSpace();\n break;\n case CameraModifyFlags.OrthographicSize:\n this._renderCamera.isOrthographic && this._adapterSizeInScreenSpace();\n break;\n case CameraModifyFlags.DisableInScene:\n this._setRealRenderMode(CanvasRenderMode.ScreenSpaceOverlay);\n break;\n default:\n break;\n }\n } else {\n flag === CameraModifyFlags.EnableInScene && this._setRealRenderMode(CanvasRenderMode.ScreenSpaceCamera);\n }\n }\n\n @ignoreClone\n private _onCameraTransformListener(): void {\n this._realRenderMode === CanvasRenderMode.ScreenSpaceCamera && this._adapterPoseInScreenSpace();\n }\n\n private _addCanvasListener(): void {\n // @ts-ignore\n this.engine.canvas._sizeUpdateFlagManager.addListener(this._onCanvasSizeListener);\n }\n\n private _removeCanvasListener(): void {\n // @ts-ignore\n this.engine.canvas._sizeUpdateFlagManager.removeListener(this._onCanvasSizeListener);\n }\n\n @ignoreClone\n private _onCanvasSizeListener(): void {\n const { canvas } = this.engine;\n this.entity.transform.setWorldPosition(canvas.width * 0.5, canvas.height * 0.5, 0);\n this._adapterSizeInScreenSpace();\n }\n\n @ignoreClone\n private _onReferenceResolutionChanged(): void {\n const realRenderMode = this._realRenderMode;\n if (\n realRenderMode === CanvasRenderMode.ScreenSpaceOverlay ||\n realRenderMode === CanvasRenderMode.ScreenSpaceCamera\n ) {\n this._adapterSizeInScreenSpace();\n }\n }\n\n private _setIsRootCanvas(isRootCanvas: boolean): void {\n if (this._isRootCanvas !== isRootCanvas) {\n this._isRootCanvas = isRootCanvas;\n this._updateCameraObserver();\n this._setRealRenderMode(this._getRealRenderMode());\n if (isRootCanvas) {\n this.entity._updateUIHierarchyVersion(UICanvas._hierarchyCounter);\n } else {\n const { _disorderedElements: disorderedElements } = this;\n disorderedElements.forEach((element: IElement) => {\n if (element instanceof UICanvas) {\n const rootCanvas = Utils.searchRootCanvasInParents(element);\n element._setIsRootCanvas(!rootCanvas);\n Utils.setRootCanvas(element, rootCanvas);\n } else {\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(<IGroupAble>element);\n }\n });\n disorderedElements.length = 0;\n disorderedElements.garbageCollection();\n this._orderedRenderers.length = 0;\n }\n }\n }\n\n private _getCenter(): Vector3 {\n if (this._centerDirtyFlag.flag) {\n const center = this._center;\n const uiTransform = <UITransform>this.entity.transform;\n const { pivot, size } = uiTransform;\n center.set((0.5 - pivot.x) * size.x, (0.5 - pivot.y) * size.y, 0);\n Vector3.transformCoordinate(center, uiTransform.worldMatrix, center);\n this._centerDirtyFlag.flag = false;\n }\n return this._center;\n }\n\n private _getRealRenderMode(): number {\n if (this._isRootCanvas) {\n const mode = this._renderMode;\n if (mode === CanvasRenderMode.ScreenSpaceCamera && !this._renderCamera?.enabled) {\n return CanvasRenderMode.ScreenSpaceOverlay;\n } else {\n return mode;\n }\n } else {\n return CanvasRealRenderMode.None;\n }\n }\n\n private _setRealRenderMode(curRealMode: number): void {\n const preRealMode = this._realRenderMode;\n if (preRealMode !== curRealMode) {\n this._realRenderMode = curRealMode;\n // @ts-ignore\n const componentsManager = this.scene._componentsManager;\n switch (preRealMode) {\n case CanvasRenderMode.ScreenSpaceOverlay:\n this._removeCanvasListener();\n case CanvasRenderMode.ScreenSpaceCamera:\n case CanvasRenderMode.WorldSpace:\n componentsManager.removeUICanvas(this, preRealMode === CanvasRenderMode.ScreenSpaceOverlay);\n break;\n default:\n break;\n }\n switch (curRealMode) {\n case CanvasRenderMode.ScreenSpaceOverlay:\n this._addCanvasListener();\n case CanvasRenderMode.ScreenSpaceCamera:\n this._adapterPoseInScreenSpace();\n this._adapterSizeInScreenSpace();\n case CanvasRenderMode.WorldSpace:\n componentsManager.addUICanvas(this, curRealMode === CanvasRenderMode.ScreenSpaceOverlay);\n break;\n default:\n break;\n }\n }\n }\n\n private _isSameOrChildEntity(cameraEntity: Entity): boolean {\n const canvasEntity = this.entity;\n while (cameraEntity) {\n if (cameraEntity === canvasEntity) return true;\n cameraEntity = cameraEntity.parent;\n }\n return false;\n }\n}\n\n/**\n * @remarks Extends `CanvasRenderMode`.\n */\nenum CanvasRealRenderMode {\n None = 4\n}\n\n/**\n * @remarks Extends `EntityModifyFlags`.\n */\nexport enum EntityUIModifyFlags {\n CanvasEnableInScene = 0x4,\n GroupEnableInScene = 0x8\n}\n\nexport enum RootCanvasModifyFlags {\n None = 0x0,\n ReferenceResolutionPerUnit = 0x1,\n All = 0x1\n}\n","import { PointerEventData, SafeLoopArray } from \"@galacean/engine\";\nimport { UIInteractive } from \"../interactive/UIInteractive\";\n\nexport class Button extends UIInteractive {\n private _listeners: SafeLoopArray<IUIListener> = new SafeLoopArray<IUIListener>();\n\n /**\n * Add a listening function for click.\n * @param listener - The listening function\n */\n addClicked(listener: (event: PointerEventData) => void): void {\n this._listeners.push({ fn: listener });\n }\n\n /**\n * Remove a listening function of click.\n * @param listener - The listening function\n */\n removeClicked(listener: (event: PointerEventData) => void): void {\n this._listeners.findAndRemove((value) => (value.fn === listener ? (value.destroyed = true) : false));\n }\n\n override onPointerClick(event: PointerEventData): void {\n if (!this._getGlobalInteractive()) return;\n const listeners = this._listeners.getLoopArray();\n for (let i = 0, n = listeners.length; i < n; i++) {\n const listener = listeners[i];\n !listener.destroyed && listener.fn(event);\n }\n }\n\n override onDestroy(): void {\n super.onDestroy();\n this._listeners.findAndRemove((value) => (value.destroyed = true));\n }\n}\n\nexport interface IUIListener {\n fn: (event: PointerEventData) => void;\n destroyed?: boolean;\n}\n","import {\n BoundingBox,\n Entity,\n ISpriteAssembler,\n ISpriteRenderer,\n MathUtil,\n RenderQueueFlags,\n RendererUpdateFlags,\n SimpleSpriteAssembler,\n SlicedSpriteAssembler,\n Sprite,\n SpriteDrawMode,\n SpriteModifyFlags,\n SpriteTileMode,\n TiledSpriteAssembler,\n assignmentClone,\n ignoreClone\n} from \"@galacean/engine\";\nimport { CanvasRenderMode } from \"../../enums/CanvasRenderMode\";\nimport { RootCanvasModifyFlags } from \"../UICanvas\";\nimport { UIRenderer, UIRendererUpdateFlags } from \"../UIRenderer\";\nimport { UITransform, UITransformModifyFlags } from \"../UITransform\";\n\n/**\n * UI element that renders an image.\n */\nexport class Image extends UIRenderer implements ISpriteRenderer {\n @ignoreClone\n private _sprite: Sprite = null;\n @ignoreClone\n private _drawMode: SpriteDrawMode;\n @ignoreClone\n private _assembler: ISpriteAssembler;\n @assignmentClone\n private _tileMode: SpriteTileMode = SpriteTileMode.Continuous;\n @assignmentClone\n private _tiledAdaptiveThreshold: number = 0.5;\n\n /**\n * The draw mode of the image.\n */\n get drawMode(): SpriteDrawMode {\n return this._drawMode;\n }\n\n set drawMode(value: SpriteDrawMode) {\n if (this._drawMode !== value) {\n this._drawMode = value;\n switch (value) {\n case SpriteDrawMode.Simple:\n this._assembler = SimpleSpriteAssembler;\n break;\n case SpriteDrawMode.Sliced:\n this._assembler = SlicedSpriteAssembler;\n break;\n case SpriteDrawMode.Tiled:\n this._assembler = TiledSpriteAssembler;\n break;\n default:\n break;\n }\n this._assembler.resetData(this);\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n }\n }\n\n /**\n * The tiling mode of the image. (Only works in tiled mode.)\n */\n get tileMode(): SpriteTileMode {\n return this._tileMode;\n }\n\n set tileMode(value: SpriteTileMode) {\n if (this._tileMode !== value) {\n this._tileMode = value;\n if (this.drawMode === SpriteDrawMode.Tiled) {\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n }\n }\n }\n\n /**\n * Stretch Threshold in Tile Adaptive Mode, specified in normalized. (Only works in tiled adaptive mode.)\n */\n get tiledAdaptiveThreshold(): number {\n return this._tiledAdaptiveThreshold;\n }\n\n set tiledAdaptiveThreshold(value: number) {\n if (value !== this._tiledAdaptiveThreshold) {\n value = MathUtil.clamp(value, 0, 1);\n this._tiledAdaptiveThreshold = value;\n if (this.drawMode === SpriteDrawMode.Tiled) {\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n }\n }\n }\n\n /**\n * The Sprite to render.\n */\n get sprite(): Sprite {\n return this._sprite;\n }\n\n set sprite(value: Sprite | null) {\n const lastSprite = this._sprite;\n if (lastSprite !== value) {\n if (lastSprite) {\n this._addResourceReferCount(lastSprite, -1);\n // @ts-ignore\n lastSprite._updateFlagManager.removeListener(this._onSpriteChange);\n }\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n if (value) {\n this._addResourceReferCount(value, 1);\n // @ts-ignore\n value._updateFlagManager.addListener(this._onSpriteChange);\n this.shaderData.setTexture(UIRenderer._textureProperty, value.texture);\n } else {\n this.shaderData.setTexture(UIRenderer._textureProperty, null);\n }\n this._sprite = value;\n }\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n this.drawMode = SpriteDrawMode.Simple;\n this.setMaterial(this._engine._getUIDefaultMaterial());\n this._onSpriteChange = this._onSpriteChange.bind(this);\n }\n\n /**\n * @internal\n */\n _onRootCanvasModify(flag: RootCanvasModifyFlags): void {\n if (flag & RootCanvasModifyFlags.ReferenceResolutionPerUnit) {\n const drawMode = this._drawMode;\n if (drawMode === SpriteDrawMode.Tiled) {\n this._dirtyUpdateFlag |= ImageUpdateFlags.All;\n } else if (drawMode === SpriteDrawMode.Sliced) {\n this._dirtyUpdateFlag |= RendererUpdateFlags.WorldVolume;\n }\n }\n }\n\n /**\n * @internal\n */\n _cloneTo(target: Image, srcRoot: Entity, targetRoot: Entity): void {\n // @ts-ignore\n super._cloneTo(target, srcRoot, targetRoot);\n target.sprite = this._sprite;\n target.drawMode = this._drawMode;\n }\n\n protected override _updateBounds(worldBounds: BoundingBox): void {\n const sprite = this._sprite;\n const rootCanvas = this._getRootCanvas();\n if (sprite && rootCanvas) {\n const transform = <UITransform>this._transformEntity.transform;\n const { size } = transform;\n this._assembler.updatePositions(\n this,\n transform.worldMatrix,\n size.x,\n size.y,\n transform.pivot,\n false,\n false,\n rootCanvas.referenceResolutionPerUnit\n );\n } else {\n const { worldPosition } = this._transformEntity.transform;\n worldBounds.min.copyFrom(worldPosition);\n worldBounds.max.copyFrom(worldPosition);\n }\n }\n\n protected override _render(context): void {\n const { _sprite: sprite } = this;\n const transform = <UITransform>this._transformEntity.transform;\n const { x: width, y: height } = transform.size;\n if (!sprite?.texture || !width || !height) {\n return;\n }\n\n let material = this.getMaterial();\n if (!material) {\n return;\n }\n // @todo: This question needs to be raised rather than hidden.\n if (material.destroyed) {\n material = this._engine._getUIDefaultMaterial();\n }\n\n const alpha = this._getGlobalAlpha();\n if (this._color.a * alpha <= 0) {\n return;\n }\n\n let { _dirtyUpdateFlag: dirtyUpdateFlag } = this;\n const canvas = this._getRootCanvas();\n // Update position\n if (dirtyUpdateFlag & RendererUpdateFlags.WorldVolume) {\n this._assembler.updatePositions(\n this,\n transform.worldMatrix,\n width,\n height,\n transform.pivot,\n false,\n false,\n canvas.referenceResolutionPerUnit\n );\n dirtyUpdateFlag &= ~RendererUpdateFlags.WorldVolume;\n }\n\n // Update uv\n if (dirtyUpdateFlag & ImageUpdateFlags.UV) {\n this._assembler.updateUVs(this);\n dirtyUpdateFlag &= ~ImageUpdateFlags.UV;\n }\n\n // Update color\n if (dirtyUpdateFlag & UIRendererUpdateFlags.Color) {\n this._assembler.updateColor(this, alpha);\n dirtyUpdateFlag &= ~UIRendererUpdateFlags.Color;\n }\n\n this._dirtyUpdateFlag = dirtyUpdateFlag;\n // Init sub render element.\n const { engine } = context.camera;\n const subRenderElement = engine._subRenderElementPool.get();\n const subChunk = this._subChunk;\n subRenderElement.set(this, material, subChunk.chunk.primitive, subChunk.subMesh, this.sprite.texture, subChunk);\n if (canvas._realRenderMode === CanvasRenderMode.ScreenSpaceOverlay) {\n subRenderElement.shaderPasses = material.shader.subShaders[0].passes;\n subRenderElement.renderQueueFlags = RenderQueueFlags.All;\n }\n canvas._renderElement.addSubRenderElement(subRenderElement);\n }\n\n @ignoreClone\n protected override _onTransformChanged(type: number): void {\n if (type & UITransformModifyFlags.Size && this._drawMode === SpriteDrawMode.Tiled) {\n this._dirtyUpdateFlag |= ImageUpdateFlags.All;\n }\n this._dirtyUpdateFlag |= RendererUpdateFlags.WorldVolume;\n }\n\n protected override _onDestroy(): void {\n const sprite = this._sprite;\n if (sprite) {\n this._addResourceReferCount(sprite, -1);\n // @ts-ignore\n sprite._updateFlagManager.removeListener(this._onSpriteChange);\n this._sprite = null;\n }\n super._onDestroy();\n }\n\n @ignoreClone\n private _onSpriteChange(type: SpriteModifyFlags): void {\n switch (type) {\n case SpriteModifyFlags.texture:\n this.shaderData.setTexture(UIRenderer._textureProperty, this.sprite.texture);\n break;\n case SpriteModifyFlags.size:\n switch (this._drawMode) {\n case SpriteDrawMode.Sliced:\n this._dirtyUpdateFlag |= RendererUpdateFlags.WorldVolume;\n break;\n case SpriteDrawMode.Tiled:\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n break;\n default:\n break;\n }\n break;\n case SpriteModifyFlags.border:\n switch (this._drawMode) {\n case SpriteDrawMode.Sliced:\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeAndUV;\n break;\n case SpriteDrawMode.Tiled:\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n break;\n default:\n break;\n }\n break;\n case SpriteModifyFlags.region:\n case SpriteModifyFlags.atlasRegionOffset:\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeAndUV;\n break;\n case SpriteModifyFlags.atlasRegion:\n this._dirtyUpdateFlag |= ImageUpdateFlags.UV;\n break;\n case SpriteModifyFlags.destroy:\n this.sprite = null;\n break;\n }\n }\n}\n\n/**\n * @remarks Extends `UIRendererUpdateFlags`.\n */\nenum ImageUpdateFlags {\n /** UV. */\n UV = 0x4,\n /** Automatic Size. */\n AutomaticSize = 0x8,\n /** WorldVolume and UV. */\n WorldVolumeAndUV = 0x5,\n /** WorldVolume, UV and Color. */\n WorldVolumeUVAndColor = 0x7,\n /** All. */\n All = 0xf\n}\n","import {\n BoundingBox,\n CharRenderInfo,\n Engine,\n Entity,\n Font,\n FontStyle,\n ITextRenderer,\n OverflowMode,\n RenderQueueFlags,\n RendererUpdateFlags,\n ShaderData,\n ShaderDataGroup,\n ShaderProperty,\n SubFont,\n TextHorizontalAlignment,\n TextUtils,\n TextVerticalAlignment,\n Texture2D,\n Vector3,\n assignmentClone,\n ignoreClone\n} from \"@galacean/engine\";\nimport { CanvasRenderMode } from \"../../enums/CanvasRenderMode\";\nimport { RootCanvasModifyFlags } from \"../UICanvas\";\nimport { UIRenderer, UIRendererUpdateFlags } from \"../UIRenderer\";\nimport { UITransform, UITransformModifyFlags } from \"../UITransform\";\n\n/**\n * UI component used to render text.\n */\nexport class Text extends UIRenderer implements ITextRenderer {\n private static _textTextureProperty = ShaderProperty.getByName(\"renderElement_TextTexture\");\n private static _worldPositions = [new Vector3(), new Vector3(), new Vector3(), new Vector3()];\n private static _charRenderInfos: CharRenderInfo[] = [];\n\n @ignoreClone\n private _textChunks = Array<TextChunk>();\n @ignoreClone\n private _subFont: SubFont = null;\n @assignmentClone\n private _text: string = \"\";\n @ignoreClone\n private _localBounds: BoundingBox = new BoundingBox();\n @assignmentClone\n private _font: Font = null;\n @assignmentClone\n private _fontSize: number = 24;\n @assignmentClone\n private _fontStyle: FontStyle = FontStyle.None;\n @assignmentClone\n private _lineSpacing: number = 0;\n @assignmentClone\n private _horizontalAlignment: TextHorizontalAlignment = TextHorizontalAlignment.Center;\n @assignmentClone\n private _verticalAlignment: TextVerticalAlignment = TextVerticalAlignment.Center;\n @assignmentClone\n private _enableWrapping: boolean = false;\n @assignmentClone\n private _overflowMode: OverflowMode = OverflowMode.Overflow;\n\n /**\n * Rendering string for the Text.\n */\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n value = value || \"\";\n if (this._text !== value) {\n this._text = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * The font of the Text.\n */\n get font(): Font {\n return this._font;\n }\n\n set font(value: Font) {\n const lastFont = this._font;\n if (lastFont !== value) {\n lastFont && this._addResourceReferCount(lastFont, -1);\n value && this._addResourceReferCount(value, 1);\n this._font = value;\n this._setDirtyFlagTrue(DirtyFlag.Font);\n }\n }\n\n /**\n * The font size of the Text.\n */\n get fontSize(): number {\n return this._fontSize;\n }\n\n set fontSize(value: number) {\n if (this._fontSize !== value) {\n this._fontSize = value;\n this._setDirtyFlagTrue(DirtyFlag.Font);\n }\n }\n\n /**\n * The style of the font.\n */\n get fontStyle(): FontStyle {\n return this._fontStyle;\n }\n\n set fontStyle(value: FontStyle) {\n if (this.fontStyle !== value) {\n this._fontStyle = value;\n this._setDirtyFlagTrue(DirtyFlag.Font);\n }\n }\n\n /**\n * The space between two lines (in pixels).\n */\n get lineSpacing(): number {\n return this._lineSpacing;\n }\n\n set lineSpacing(value: number) {\n if (this._lineSpacing !== value) {\n this._lineSpacing = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * The horizontal alignment.\n */\n get horizontalAlignment(): TextHorizontalAlignment {\n return this._horizontalAlignment;\n }\n\n set horizontalAlignment(value: TextHorizontalAlignment) {\n if (this._horizontalAlignment !== value) {\n this._horizontalAlignment = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * The vertical alignment.\n */\n get verticalAlignment(): TextVerticalAlignment {\n return this._verticalAlignment;\n }\n\n set verticalAlignment(value: TextVerticalAlignment) {\n if (this._verticalAlignment !== value) {\n this._verticalAlignment = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * Whether wrap text to next line when exceeds the width of the container.\n */\n get enableWrapping(): boolean {\n return this._enableWrapping;\n }\n\n set enableWrapping(value: boolean) {\n if (this._enableWrapping !== value) {\n this._enableWrapping = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * The overflow mode.\n */\n get overflowMode(): OverflowMode {\n return this._overflowMode;\n }\n\n set overflowMode(value: OverflowMode) {\n if (this._overflowMode !== value) {\n this._overflowMode = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * The mask layer the sprite renderer belongs to.\n */\n get maskLayer(): number {\n return this._maskLayer;\n }\n\n set maskLayer(value: number) {\n this._maskLayer = value;\n }\n\n /**\n * The bounding volume of the TextRenderer.\n */\n override get bounds(): BoundingBox {\n if (this._isTextNoVisible()) {\n if (this._isContainDirtyFlag(RendererUpdateFlags.WorldVolume)) {\n const localBounds = this._localBounds;\n localBounds.min.set(0, 0, 0);\n localBounds.max.set(0, 0, 0);\n this._updateBounds(this._bounds);\n this._setDirtyFlagFalse(RendererUpdateFlags.WorldVolume);\n }\n return this._bounds;\n }\n this._isContainDirtyFlag(DirtyFlag.SubFont) && this._resetSubFont();\n this._isContainDirtyFlag(DirtyFlag.LocalPositionBounds) && this._updateLocalData();\n this._isContainDirtyFlag(DirtyFlag.WorldPosition) && this._updatePosition();\n this._isContainDirtyFlag(RendererUpdateFlags.WorldVolume) && this._updateBounds(this._bounds);\n this._setDirtyFlagFalse(DirtyFlag.Font);\n\n return this._bounds;\n }\n\n constructor(entity: Entity) {\n super(entity);\n const { engine } = this;\n // @ts-ignore\n this.font = engine._textDefaultFont;\n this.raycastEnabled = false;\n // @ts-ignore\n this.setMaterial(engine._basicResources.textDefaultMaterial);\n }\n\n /**\n * @internal\n */\n protected override _onDestroy(): void {\n if (this._font) {\n this._addResourceReferCount(this._font, -1);\n this._font = null;\n }\n\n super._onDestroy();\n\n this._freeTextChunks();\n this._textChunks = null;\n\n this._subFont && (this._subFont = null);\n }\n\n // @ts-ignore\n override _cloneTo(target: Text, srcRoot: Entity, targetRoot: Entity): void {\n // @ts-ignore\n super._cloneTo(target, srcRoot, targetRoot);\n target.font = this._font;\n target._subFont = this._subFont;\n }\n\n /**\n * @internal\n */\n _isContainDirtyFlag(type: number): boolean {\n return (this._dirtyUpdateFlag & type) != 0;\n }\n\n /**\n * @internal\n */\n _setDirtyFlagTrue(type: number): void {\n this._dirtyUpdateFlag |= type;\n }\n\n /**\n * @internal\n */\n _setDirtyFlagFalse(type: number): void {\n this._dirtyUpdateFlag &= ~type;\n }\n\n /**\n * @internal\n */\n _getSubFont(): SubFont {\n if (!this._subFont) {\n this._resetSubFont();\n }\n return this._subFont;\n }\n\n /**\n * @internal\n */\n _onRootCanvasModify(flag: RootCanvasModifyFlags): void {\n if (flag === RootCanvasModifyFlags.ReferenceResolutionPerUnit) {\n this._setDirtyFlagTrue(DirtyFlag.LocalPositionBounds);\n }\n }\n\n protected override _updateBounds(worldBounds: BoundingBox): void {\n const transform = <UITransform>this._transformEntity.transform;\n const { x: width, y: height } = transform.size;\n const { x: pivotX, y: pivotY } = transform.pivot;\n worldBounds.min.set(-width * pivotX, -height * pivotY, 0);\n worldBounds.max.set(width * (1 - pivotX), height * (1 - pivotY), 0);\n BoundingBox.transform(worldBounds, this._transformEntity.transform.worldMatrix, worldBounds);\n }\n\n protected override _render(context): void {\n if (this._isTextNoVisible()) {\n return;\n }\n\n if (this._isContainDirtyFlag(DirtyFlag.SubFont)) {\n this._resetSubFont();\n this._setDirtyFlagFalse(DirtyFlag.SubFont);\n }\n\n const canvas = this._getRootCanvas();\n if (this._isContainDirtyFlag(DirtyFlag.LocalPositionBounds)) {\n this._updateLocalData();\n this._setDirtyFlagTrue(DirtyFlag.LocalPositionBounds);\n }\n\n if (this._isContainDirtyFlag(DirtyFlag.WorldPosition)) {\n this._updatePosition();\n this._setDirtyFlagFalse(DirtyFlag.WorldPosition);\n }\n\n if (this._isContainDirtyFlag(UIRendererUpdateFlags.Color)) {\n this._updateColor();\n this._setDirtyFlagFalse(UIRendererUpdateFlags.Color);\n }\n\n const engine = context.camera.engine;\n const textSubRenderElementPool = engine._textSubRenderElementPool;\n const material = this.getMaterial();\n const renderElement = canvas._renderElement;\n const textChunks = this._textChunks;\n const isOverlay = canvas._realRenderMode === CanvasRenderMode.ScreenSpaceOverlay;\n for (let i = 0, n = textChunks.length; i < n; ++i) {\n const { subChunk, texture } = textChunks[i];\n const subRenderElement = textSubRenderElementPool.get();\n subRenderElement.set(this, material, subChunk.chunk.primitive, subChunk.subMesh, texture, subChunk);\n // @ts-ignore\n subRenderElement.shaderData ||= new ShaderData(ShaderDataGroup.RenderElement);\n subRenderElement.shaderData.setTexture(Text._textTextureProperty, texture);\n if (isOverlay) {\n subRenderElement.shaderPasses = material.shader.subShaders[0].passes;\n subRenderElement.renderQueueFlags = RenderQueueFlags.All;\n }\n renderElement.addSubRenderElement(subRenderElement);\n }\n }\n\n private _resetSubFont(): void {\n const font = this._font;\n // @ts-ignore\n this._subFont = font._getSubFont(this.fontSize, this.fontStyle);\n this._subFont.nativeFontString = TextUtils.getNativeFontString(font.name, this.fontSize, this.fontStyle);\n }\n\n private _updatePosition(): void {\n const e = this._transformEntity.transform.worldMatrix.elements;\n\n // prettier-ignore\n const e0 = e[0], e1 = e[1], e2 = e[2],\n e4 = e[4], e5 = e[5], e6 = e[6],\n e12 = e[12], e13 = e[13], e14 = e[14];\n\n const up = UIRenderer._tempVec31.set(e4, e5, e6);\n const right = UIRenderer._tempVec30.set(e0, e1, e2);\n\n const worldPositions = Text._worldPositions;\n const [worldPosition0, worldPosition1, worldPosition2, worldPosition3] = worldPositions;\n const textChunks = this._textChunks;\n for (let i = 0, n = textChunks.length; i < n; ++i) {\n const { subChunk, charRenderInfos } = textChunks[i];\n for (let j = 0, m = charRenderInfos.length; j < m; ++j) {\n const charRenderInfo = charRenderInfos[j];\n const { localPositions } = charRenderInfo;\n const { x: topLeftX, y: topLeftY } = localPositions;\n\n // Top-Left\n worldPosition0.set(\n topLeftX * e0 + topLeftY * e4 + e12,\n topLeftX * e1 + topLeftY * e5 + e13,\n topLeftX * e2 + topLeftY * e6 + e14\n );\n\n // Right offset\n Vector3.scale(right, localPositions.z - topLeftX, worldPosition1);\n // Top-Right\n Vector3.add(worldPosition0, worldPosition1, worldPosition1);\n // Up offset\n Vector3.scale(up, localPositions.w - topLeftY, worldPosition2);\n // Bottom-Left\n Vector3.add(worldPosition0, worldPosition2, worldPosition3);\n // Bottom-Right\n Vector3.add(worldPosition1, worldPosition2, worldPosition2);\n\n const vertices = subChunk.chunk.vertices;\n for (let k = 0, o = subChunk.vertexArea.start + charRenderInfo.indexInChunk * 36; k < 4; ++k, o += 9) {\n worldPositions[k].copyToArray(vertices, o);\n }\n }\n }\n }\n\n private _updateColor(): void {\n const { r, g, b, a } = this._color;\n const finalAlpha = a * this._getGlobalAlpha();\n const textChunks = this._textChunks;\n for (let i = 0, n = textChunks.length; i < n; ++i) {\n const subChunk = textChunks[i].subChunk;\n const vertexArea = subChunk.vertexArea;\n const vertexCount = vertexArea.size / 9;\n const vertices = subChunk.chunk.vertices;\n for (let j = 0, o = vertexArea.start + 5; j < vertexCount; ++j, o += 9) {\n vertices[o] = r;\n vertices[o + 1] = g;\n vertices[o + 2] = b;\n vertices[o + 3] = finalAlpha;\n }\n }\n }\n\n private _updateLocalData(): void {\n // @ts-ignore\n const pixelsPerResolution = Engine._pixelsPerUnit / this._getRootCanvas().referenceResolutionPerUnit;\n const { min, max } = this._localBounds;\n const charRenderInfos = Text._charRenderInfos;\n const charFont = this._getSubFont();\n const { size, pivot } = <UITransform>this._transformEntity.transform;\n let rendererWidth = size.x;\n let rendererHeight = size.y;\n const offsetWidth = rendererWidth * (0.5 - pivot.x);\n const offsetHeight = rendererHeight * (0.5 - pivot.y);\n const textMetrics = this.enableWrapping\n ? TextUtils.measureTextWithWrap(\n this,\n rendererWidth * pixelsPerResolution,\n rendererHeight * pixelsPerResolution,\n this._lineSpacing * pixelsPerResolution\n )\n : TextUtils.measureTextWithoutWrap(\n this,\n rendererHeight * pixelsPerResolution,\n this._lineSpacing * pixelsPerResolution\n );\n const { height, lines, lineWidths, lineHeight, lineMaxSizes } = textMetrics;\n // @ts-ignore\n const charRenderInfoPool = this.engine._charRenderInfoPool;\n const linesLen = lines.length;\n let renderElementCount = 0;\n\n if (linesLen > 0) {\n const { horizontalAlignment } = this;\n const pixelsPerUnitReciprocal = 1.0 / pixelsPerResolution;\n rendererWidth *= pixelsPerResolution;\n rendererHeight *= pixelsPerResolution;\n const halfRendererWidth = rendererWidth * 0.5;\n const halfLineHeight = lineHeight * 0.5;\n\n let startY = 0;\n const topDiff = lineHeight * 0.5 - lineMaxSizes[0].ascent;\n const bottomDiff = lineHeight * 0.5 - lineMaxSizes[linesLen - 1].descent - 1;\n switch (this.verticalAlignment) {\n case TextVerticalAlignment.Top:\n startY = rendererHeight * 0.5 - halfLineHeight + topDiff;\n break;\n case TextVerticalAlignment.Center:\n startY = height * 0.5 - halfLineHeight - (bottomDiff - topDiff) * 0.5;\n break;\n case TextVerticalAlignment.Bottom:\n startY = height - rendererHeight * 0.5 - halfLineHeight - bottomDiff;\n break;\n }\n\n let firstLine = -1;\n let minX = Number.MAX_SAFE_INTEGER;\n let minY = Number.MAX_SAFE_INTEGER;\n let maxX = Number.MIN_SAFE_INTEGER;\n let maxY = Number.MIN_SAFE_INTEGER;\n for (let i = 0; i < linesLen; ++i) {\n const lineWidth = lineWidths[i];\n if (lineWidth > 0) {\n const line = lines[i];\n let startX = 0;\n let firstRow = -1;\n if (firstLine < 0) {\n firstLine = i;\n }\n switch (horizontalAlignment) {\n case TextHorizontalAlignment.Left:\n startX = -halfRendererWidth;\n break;\n case TextHorizontalAlignment.Center:\n startX = -lineWidth * 0.5;\n break;\n case TextHorizontalAlignment.Right:\n startX = halfRendererWidth - lineWidth;\n break;\n }\n for (let j = 0, n = line.length; j < n; ++j) {\n const char = line[j];\n const charInfo = charFont._getCharInfo(char);\n if (charInfo.h > 0) {\n firstRow < 0 && (firstRow = j);\n const charRenderInfo = (charRenderInfos[renderElementCount++] = charRenderInfoPool.get());\n const { localPositions } = charRenderInfo;\n charRenderInfo.texture = charFont._getTextureByIndex(charInfo.index);\n charRenderInfo.uvs = charInfo.uvs;\n const { w, ascent, descent } = charInfo;\n const left = (startX + offsetWidth) * pixelsPerUnitReciprocal;\n const right = (startX + w + offsetWidth) * pixelsPerUnitReciprocal;\n const top = (startY + ascent + offsetHeight) * pixelsPerUnitReciprocal;\n const bottom = (startY - descent + offsetHeight) * pixelsPerUnitReciprocal;\n localPositions.set(left, top, right, bottom);\n i === firstLine && (maxY = Math.max(maxY, top));\n minY = Math.min(minY, bottom);\n j === firstRow && (minX = Math.min(minX, left));\n maxX = Math.max(maxX, right);\n }\n startX += charInfo.xAdvance + charInfo.offsetX;\n }\n }\n startY -= lineHeight;\n }\n if (firstLine < 0) {\n min.set(0, 0, 0);\n max.set(0, 0, 0);\n } else {\n min.set(minX, minY, 0);\n max.set(maxX, maxY, 0);\n }\n } else {\n min.set(0, 0, 0);\n max.set(0, 0, 0);\n }\n\n charFont._getLastIndex() > 0 &&\n charRenderInfos.sort((a, b) => {\n return a.texture.instanceId - b.texture.instanceId;\n });\n\n this._freeTextChunks();\n\n if (renderElementCount === 0) {\n return;\n }\n\n const textChunks = this._textChunks;\n let curTextChunk = new TextChunk();\n textChunks.push(curTextChunk);\n\n const chunkMaxVertexCount = this._getChunkManager().maxVertexCount;\n const curCharRenderInfo = charRenderInfos[0];\n let curTexture = curCharRenderInfo.texture;\n curTextChunk.texture = curTexture;\n let curCharInfos = curTextChunk.charRenderInfos;\n curCharInfos.push(curCharRenderInfo);\n\n for (let i = 1; i < renderElementCount; ++i) {\n const charRenderInfo = charRenderInfos[i];\n const texture = charRenderInfo.texture;\n if (curTexture !== texture || curCharInfos.length * 4 + 4 > chunkMaxVertexCount) {\n this._buildChunk(curTextChunk, curCharInfos.length);\n\n curTextChunk = new TextChunk();\n textChunks.push(curTextChunk);\n curTexture = texture;\n curTextChunk.texture = texture;\n curCharInfos = curTextChunk.charRenderInfos;\n }\n curCharInfos.push(charRenderInfo);\n }\n const charLength = curCharInfos.length;\n if (charLength > 0) {\n this._buildChunk(curTextChunk, charLength);\n }\n charRenderInfos.length = 0;\n }\n\n @ignoreClone\n protected override _onTransformChanged(type: number): void {\n if (type & UITransformModifyFlags.Size || type & UITransformModifyFlags.Pivot) {\n this._dirtyUpdateFlag |= DirtyFlag.LocalPositionBounds;\n }\n super._onTransformChanged(type);\n this._setDirtyFlagTrue(DirtyFlag.WorldPosition);\n }\n\n private _isTextNoVisible(): boolean {\n const size = (<UITransform>this._transformEntity.transform).size;\n return (\n this._text === \"\" ||\n this._fontSize === 0 ||\n (this.enableWrapping && size.x <= 0) ||\n (this.overflowMode === OverflowMode.Truncate && size.y <= 0) ||\n !this._getRootCanvas()\n );\n }\n\n private _buildChunk(textChunk: TextChunk, count: number) {\n const { r, g, b, a } = this.color;\n const tempIndices = CharRenderInfo.triangles;\n const tempIndicesLength = tempIndices.length;\n const subChunk = (textChunk.subChunk = this._getChunkManager().allocateSubChunk(count * 4));\n const vertices = subChunk.chunk.vertices;\n const indices = (subChunk.indices = []);\n const charRenderInfos = textChunk.charRenderInfos;\n for (let i = 0, ii = 0, io = 0, vo = subChunk.vertexArea.start + 3; i < count; ++i, io += 4) {\n const charRenderInfo = charRenderInfos[i];\n charRenderInfo.indexInChunk = i;\n\n // Set indices\n for (let j = 0; j < tempIndicesLength; ++j) {\n indices[ii++] = tempIndices[j] + io;\n }\n\n // Set uv and color for vertices\n for (let j = 0; j < 4; ++j, vo += 9) {\n const uv = charRenderInfo.uvs[j];\n uv.copyToArray(vertices, vo);\n vertices[vo + 2] = r;\n vertices[vo + 3] = g;\n vertices[vo + 4] = b;\n vertices[vo + 5] = a;\n }\n }\n\n return subChunk;\n }\n\n private _freeTextChunks(): void {\n const textChunks = this._textChunks;\n // @ts-ignore\n const charRenderInfoPool = this.engine._charRenderInfoPool;\n const manager = this._getChunkManager();\n for (let i = 0, n = textChunks.length; i < n; ++i) {\n const textChunk = textChunks[i];\n const { charRenderInfos } = textChunk;\n for (let j = 0, m = charRenderInfos.length; j < m; ++j) {\n charRenderInfoPool.return(charRenderInfos[j]);\n }\n charRenderInfos.length = 0;\n manager.freeSubChunk(textChunk.subChunk);\n textChunk.subChunk = null;\n textChunk.texture = null;\n }\n textChunks.length = 0;\n }\n}\n\nclass TextChunk {\n charRenderInfos = new Array<CharRenderInfo>();\n texture: Texture2D;\n subChunk;\n}\n\n/**\n * @remarks Extends `UIRendererUpdateFlags`.\n */\nenum DirtyFlag {\n SubFont = 0x4,\n LocalPositionBounds = 0x8,\n WorldPosition = 0x10,\n\n // LocalPositionBounds | WorldPosition | WorldVolume\n Position = 0x19,\n Font = SubFont | Position\n}\n","import { Color, ReferResource, Sprite } from \"@galacean/engine\";\nimport { UIRenderer } from \"../../UIRenderer\";\nimport { InteractiveState, UIInteractive } from \"../UIInteractive\";\n\n/**\n * The transition behavior of UIInteractive.\n */\nexport abstract class Transition<\n T extends TransitionValueType = TransitionValueType,\n K extends UIRenderer = UIRenderer\n> {\n /** @internal */\n _interactive: UIInteractive;\n\n protected _target: K;\n protected _normal: T;\n protected _pressed: T;\n protected _hover: T;\n protected _disabled: T;\n protected _duration: number = 0;\n protected _countDown: number = 0;\n protected _initialValue: T;\n protected _finalValue: T;\n protected _currentValue: T;\n protected _finalState: InteractiveState = InteractiveState.Normal;\n\n /**\n * The normal state of the transition.\n */\n get normal(): T {\n return this._normal;\n }\n\n set normal(value: T) {\n const preNormal = this._normal;\n if (preNormal !== value) {\n this._normal = value;\n this._onStateValueDirty(InteractiveState.Normal, preNormal, value);\n }\n }\n\n /**\n * The pressed state of the transition.\n */\n get pressed(): T {\n return this._pressed;\n }\n\n set pressed(value: T) {\n const prePressed = this._pressed;\n if (prePressed !== value) {\n this._pressed = value;\n this._onStateValueDirty(InteractiveState.Pressed, prePressed, value);\n }\n }\n\n /**\n * The hover state of the transition.\n */\n get hover(): T {\n return this._hover;\n }\n\n set hover(value: T) {\n const preHover = this._hover;\n if (preHover !== value) {\n this._hover = value;\n this._onStateValueDirty(InteractiveState.Hover, preHover, value);\n }\n }\n\n /**\n * The disabled state of the transition.\n */\n get disabled(): T {\n return this._disabled;\n }\n\n set disabled(value: T) {\n const preDisabled = this._disabled;\n if (preDisabled !== value) {\n this._disabled = value;\n this._onStateValueDirty(InteractiveState.Disable, preDisabled, value);\n }\n }\n\n /**\n * The target of the transition.\n */\n get target(): K {\n return this._target;\n }\n\n set target(value: K) {\n if (this._target !== value) {\n this._target = value;\n value?.enabled && this._applyValue(this._currentValue);\n }\n }\n\n /**\n * The duration of the transition.\n */\n get duration(): number {\n return this._duration;\n }\n\n set duration(value: number) {\n if (value < 0) value = 0;\n const preDuration = this._duration;\n if (preDuration !== value) {\n this._duration = value;\n if (this._countDown > 0) {\n this._countDown = value * (1 - this._countDown / preDuration);\n this._updateValue();\n }\n }\n }\n\n destroy(): void {\n this._interactive?.removeTransition(this);\n this._target = null;\n }\n\n /**\n * @internal\n */\n _setState(state: InteractiveState, instant: boolean) {\n this._finalState = state;\n const value = this._getValueByState(state);\n if (instant) {\n this._countDown = 0;\n this._initialValue = this._finalValue = value;\n } else {\n this._countDown = this._duration;\n this._initialValue = this._getTargetValueCopy();\n this._finalValue = value;\n }\n this._updateValue();\n }\n\n /**\n * @internal\n */\n _onUpdate(delta: number): void {\n if (this._countDown > 0) {\n this._countDown -= delta;\n this._updateValue();\n }\n }\n\n protected abstract _getTargetValueCopy(): T;\n protected abstract _updateCurrentValue(srcValue: T, destValue: T, weight: number): void;\n protected abstract _applyValue(value: T): void;\n\n protected _onStateValueDirty(state: InteractiveState, preValue: T, curValue: T): void {\n // @ts-ignore\n preValue instanceof ReferResource && preValue._addReferCount(-1);\n // @ts-ignore\n curValue instanceof ReferResource && curValue._addReferCount(1);\n if (this._finalState === state) {\n this._finalValue = curValue;\n this._updateValue();\n }\n }\n\n protected _updateValue() {\n const weight = this._duration ? 1 - this._countDown / this._duration : 1;\n this._updateCurrentValue(this._initialValue, this._finalValue, weight);\n this._target?.enabled && this._applyValue(this._currentValue);\n }\n\n private _getValueByState(state: InteractiveState): T {\n switch (state) {\n case InteractiveState.Normal:\n return this.normal;\n case InteractiveState.Pressed:\n return this.pressed;\n case InteractiveState.Hover:\n return this.hover;\n case InteractiveState.Disable:\n return this.disabled;\n }\n }\n}\n\nexport type TransitionValueType = number | Sprite | Color;\n","import { Color } from \"@galacean/engine\";\nimport { UIRenderer } from \"../../UIRenderer\";\nimport { InteractiveState } from \"../UIInteractive\";\nimport { Transition } from \"./Transition\";\n\n/**\n * Color transition.\n */\nexport class ColorTransition extends Transition<Color, UIRenderer> {\n private _color: Color = new Color();\n constructor() {\n super();\n this._normal = new Color(1, 1, 1, 1);\n this._hover = new Color(0.9130986517934192, 0.9130986517934192, 0.9130986517934192, 1);\n this._pressed = new Color(0.5775804404296506, 0.5775804404296506, 0.5775804404296506, 1);\n this._disabled = new Color(0.5775804404296506, 0.5775804404296506, 0.5775804404296506, 1);\n this._duration = 0.1;\n this._currentValue = new Color();\n\n this._onNormalValueChanged = this._onNormalValueChanged.bind(this);\n this._onHoverValueChanged = this._onHoverValueChanged.bind(this);\n this._onPressedValueChanged = this._onPressedValueChanged.bind(this);\n this._onDisabledValueChanged = this._onDisabledValueChanged.bind(this);\n\n // @ts-ignore\n this._normal._onValueChanged = this._onNormalValueChanged;\n // @ts-ignore\n this._hover._onValueChanged = this._onHoverValueChanged;\n // @ts-ignore\n this._pressed._onValueChanged = this._onPressedValueChanged;\n // @ts-ignore\n this._disabled._onValueChanged = this._onDisabledValueChanged;\n }\n\n private _onNormalValueChanged(): void {\n if (this._finalState === InteractiveState.Normal) {\n this._finalValue = this._normal;\n this._updateValue();\n }\n }\n\n private _onHoverValueChanged(): void {\n if (this._finalState === InteractiveState.Hover) {\n this._finalValue = this._hover;\n this._updateValue();\n }\n }\n\n private _onPressedValueChanged(): void {\n if (this._finalState === InteractiveState.Pressed) {\n this._finalValue = this._pressed;\n this._updateValue();\n }\n }\n\n private _onDisabledValueChanged(): void {\n if (this._finalState === InteractiveState.Disable) {\n this._finalValue = this._disabled;\n this._updateValue();\n }\n }\n\n protected _getTargetValueCopy(): Color {\n const color = this._color;\n color.copyFrom(this._target?.color || this._normal);\n return color;\n }\n\n protected override _updateCurrentValue(srcValue: Color, destValue: Color, weight: number): void {\n if (weight >= 1) {\n this._currentValue.copyFrom(destValue);\n } else {\n Color.lerp(srcValue, destValue, weight, this._currentValue);\n }\n }\n\n protected override _applyValue(value: Color): void {\n this._target.color = value;\n }\n}\n","import { UIRenderer } from \"../../UIRenderer\";\nimport { Transition } from \"./Transition\";\n\n/**\n * Scale transition.\n */\nexport class ScaleTransition extends Transition<number, UIRenderer> {\n constructor() {\n super();\n this._normal = 1;\n this._hover = 1;\n this._pressed = 1.2;\n this._disabled = 1;\n this._duration = 0.1;\n }\n\n protected _getTargetValueCopy(): number {\n return this._target?.entity.transform.scale.x || this._normal;\n }\n\n protected override _updateCurrentValue(srcValue: number, destValue: number, weight: number): void {\n this._currentValue = weight >= 1 ? destValue : (destValue - srcValue) * weight + srcValue;\n }\n\n protected override _applyValue(value: number): void {\n this._target.entity.transform.setScale(value, value, value);\n }\n}\n","import { Sprite } from \"@galacean/engine\";\nimport { Image } from \"../../advanced/Image\";\nimport { Transition } from \"./Transition\";\n\n/**\n * Sprite transition.\n */\nexport class SpriteTransition extends Transition<Sprite, Image> {\n /**\n * @internal\n */\n override destroy(): void {\n super.destroy();\n if (this._normal) {\n // @ts-ignore\n this._normal._addReferCount(-1);\n this._normal = null;\n }\n if (this._hover) {\n // @ts-ignore\n this._hover._addReferCount(-1);\n this._hover = null;\n }\n if (this._pressed) {\n // @ts-ignore\n this._pressed._addReferCount(-1);\n this._pressed = null;\n }\n if (this._disabled) {\n // @ts-ignore\n this._disabled._addReferCount(-1);\n this._disabled = null;\n }\n this._initialValue = this._currentValue = this._finalValue = null;\n this._target = null;\n }\n\n protected _getTargetValueCopy(): Sprite {\n return this._target?.sprite;\n }\n\n protected override _updateCurrentValue(srcValue: Sprite, destValue: Sprite, weight: number): void {\n this._currentValue = weight >= 1 ? destValue : srcValue;\n }\n\n protected override _applyValue(value: Sprite): void {\n this._target.sprite = value;\n }\n}\n","import { Entity, Vector3 } from \"@galacean/engine\";\nimport { UIRenderer } from \"../component/UIRenderer\";\n\n/**\n * @internal\n */\nexport class UIHitResult {\n entity: Entity = null;\n distance: number = 0;\n point: Vector3 = new Vector3();\n normal: Vector3 = new Vector3();\n component: UIRenderer = null;\n}\n","import {\n CameraClearFlags,\n DisorderedArray,\n Entity,\n Pointer,\n PointerEventData,\n PointerEventEmitter,\n Scene,\n registerPointerEventEmitter\n} from \"@galacean/engine\";\nimport { UICanvas } from \"..\";\nimport { UIRenderer } from \"../component/UIRenderer\";\nimport { UIHitResult } from \"./UIHitResult\";\n\n/**\n * @internal\n */\n@registerPointerEventEmitter()\nexport class UIPointerEventEmitter extends PointerEventEmitter {\n private static _MAX_PATH_DEPTH = 2048;\n private static _tempSet: Set<number> = new Set();\n private static _path: Entity[] = [];\n private static _tempArray0: Entity[] = [];\n private static _tempArray1: Entity[] = [];\n\n private _enteredPath: Entity[] = [];\n private _pressedPath: Entity[] = [];\n private _draggedPath: Entity[] = [];\n\n _init(): void {\n this._hitResult = new UIHitResult();\n }\n\n override processRaycast(scenes: readonly Scene[], pointer: Pointer): void {\n const { _tempRay: ray } = PointerEventEmitter;\n const hitResult = this._hitResult;\n const { position } = pointer;\n const { x, y } = position;\n for (let i = scenes.length - 1; i >= 0; i--) {\n const scene = scenes[i];\n if (!scene.isActive || scene.destroyed) continue;\n // @ts-ignore\n const componentsManager = scene._componentsManager;\n // Overlay Canvas\n let canvasElements: DisorderedArray<UICanvas> = componentsManager._overlayCanvases;\n // Screen to world ( Assume that world units have a one-to-one relationship with pixel units )\n ray.origin.set(position.x, scene.engine.canvas.height - position.y, 1);\n ray.direction.set(0, 0, -1);\n for (let j = canvasElements.length - 1; j >= 0; j--) {\n if (canvasElements.get(j)._raycast(ray, hitResult)) {\n this._updateRaycast((<UIHitResult>hitResult).component, pointer);\n return;\n }\n }\n\n const cameras = componentsManager._activeCameras;\n for (let j = cameras.length - 1; j >= 0; j--) {\n const camera = cameras.get(j);\n if (camera.renderTarget) continue;\n const { pixelViewport } = camera;\n if (\n x < pixelViewport.x ||\n y < pixelViewport.y ||\n x > pixelViewport.x + pixelViewport.width ||\n y > pixelViewport.y + pixelViewport.height\n ) {\n continue;\n }\n camera.screenPointToRay(pointer.position, ray);\n\n // Other canvases\n const isOrthographic = camera.isOrthographic;\n const { worldPosition: cameraPosition, worldForward: cameraForward } = camera.entity.transform;\n // Sort by rendering order\n canvasElements = componentsManager._canvases;\n for (let k = 0, n = canvasElements.length; k < n; k++) {\n canvasElements.get(k)._updateSortDistance(isOrthographic, cameraPosition, cameraForward);\n }\n canvasElements.sort((a, b) => a.sortOrder - b.sortOrder || a._sortDistance - b._sortDistance);\n for (let k = 0, n = canvasElements.length; k < n; k++) {\n canvasElements.get(k)._canvasIndex = k;\n }\n const farClipPlane = camera.farClipPlane;\n // Post-rendering first detection\n for (let k = 0, n = canvasElements.length; k < n; k++) {\n const canvas = canvasElements.get(k);\n if (!canvas._canRender(camera)) continue;\n if (canvas._raycast(ray, hitResult, farClipPlane)) {\n this._updateRaycast((<UIHitResult>hitResult).component, pointer);\n return;\n }\n }\n if (camera.clearFlags & CameraClearFlags.Color) {\n this._updateRaycast(null);\n return;\n }\n }\n this._updateRaycast(null);\n }\n }\n\n override processDrag(pointer: Pointer): void {\n const draggedPath = this._draggedPath;\n if (draggedPath.length > 0) {\n this._bubble(draggedPath, pointer, this._fireDrag);\n }\n }\n\n override processDown(pointer: Pointer): void {\n const enteredPath = this._enteredPath;\n const pressedPath = this._pressedPath;\n const draggedPath = this._draggedPath;\n const length = (draggedPath.length = pressedPath.length = enteredPath.length);\n if (length > 0) {\n for (let i = 0; i < length; i++) {\n pressedPath[i] = draggedPath[i] = enteredPath[i];\n }\n this._bubble(pressedPath, pointer, this._fireDown);\n this._bubble(draggedPath, pointer, this._fireBeginDrag);\n }\n }\n\n override processUp(pointer: Pointer): void {\n const enteredPath = this._enteredPath;\n const pressedPath = this._pressedPath;\n if (enteredPath.length > 0) {\n this._bubble(enteredPath, pointer, this._fireUp);\n if (pressedPath.length > 0) {\n const common = UIPointerEventEmitter._tempArray0;\n if (this._findCommonInPath(enteredPath, pressedPath, common)) {\n const eventData = this._createEventData(pointer);\n for (let i = 0, n = common.length; i < n; i++) {\n this._fireClick(common[i], eventData);\n }\n common.length = 0;\n }\n }\n }\n\n pressedPath.length = 0;\n\n const draggedPath = this._draggedPath;\n if (draggedPath.length > 0) {\n this._bubble(draggedPath, pointer, this._fireEndDrag);\n draggedPath.length = 0;\n }\n\n if (enteredPath.length > 0) {\n this._bubble(enteredPath, pointer, this._fireDrop);\n }\n }\n\n override processLeave(pointer: Pointer): void {\n const enteredPath = this._enteredPath;\n if (enteredPath.length > 0) {\n this._bubble(enteredPath, pointer, this._fireExit);\n enteredPath.length = 0;\n }\n\n const draggedPath = this._draggedPath;\n if (draggedPath.length > 0) {\n this._bubble(draggedPath, pointer, this._fireEndDrag);\n draggedPath.length = 0;\n }\n\n this._pressedPath.length = 0;\n }\n\n override dispose(): void {\n this._enteredPath.length = this._pressedPath.length = this._draggedPath.length = 0;\n }\n\n private _updateRaycast(element: UIRenderer, pointer: Pointer = null): void {\n const enteredPath = this._enteredPath;\n const curPath = this._composedPath(element, UIPointerEventEmitter._path);\n const add = UIPointerEventEmitter._tempArray0;\n const del = UIPointerEventEmitter._tempArray1;\n if (this._findDiffInPath(enteredPath, curPath, add, del)) {\n const eventData = this._createEventData(pointer);\n for (let i = 0, n = add.length; i < n; i++) {\n this._fireEnter(add[i], eventData);\n }\n for (let i = 0, n = del.length; i < n; i++) {\n this._fireExit(del[i], eventData);\n }\n\n const length = (enteredPath.length = curPath.length);\n for (let i = 0; i < length; i++) {\n enteredPath[i] = curPath[i];\n }\n add.length = del.length = 0;\n }\n curPath.length = 0;\n }\n\n private _composedPath(element: UIRenderer, path: Entity[]): Entity[] {\n if (!element) {\n path.length = 0;\n return path;\n }\n let entity = (path[0] = element.entity);\n let i = 1;\n const rootEntity = element._getRootCanvas().entity;\n for (; i < UIPointerEventEmitter._MAX_PATH_DEPTH && !!entity && entity !== rootEntity; i++) {\n entity = path[i] = entity.parent;\n }\n path.length = i;\n return path;\n }\n\n private _findCommonInPath(prePath: Entity[], curPath: Entity[], common: Entity[]): boolean {\n const idSet = UIPointerEventEmitter._tempSet;\n idSet.clear();\n for (let i = 0, n = prePath.length; i < n; i++) {\n idSet.add(prePath[i].instanceId);\n }\n let hasCommon = false;\n for (let i = 0, n = curPath.length; i < n; i++) {\n const entity = curPath[i];\n if (idSet.has(entity.instanceId)) {\n common.push(entity);\n hasCommon = true;\n }\n }\n return hasCommon;\n }\n\n private _findDiffInPath(prePath: Entity[], curPath: Entity[], add: Entity[], del: Entity[]): boolean {\n const idSet = UIPointerEventEmitter._tempSet;\n idSet.clear();\n let changed = false;\n for (let i = 0, n = prePath.length; i < n; i++) {\n idSet.add(prePath[i].instanceId);\n }\n for (let i = 0, n = curPath.length; i < n; i++) {\n const entity = curPath[i];\n if (!idSet.has(entity.instanceId)) {\n add.push(entity);\n changed = true;\n }\n }\n idSet.clear();\n for (let i = 0, n = curPath.length; i < n; i++) {\n idSet.add(curPath[i].instanceId);\n }\n for (let i = 0, n = prePath.length; i < n; i++) {\n const entity = prePath[i];\n if (!idSet.has(entity.instanceId)) {\n del.push(entity);\n changed = true;\n }\n }\n return changed;\n }\n\n private _bubble(path: Entity[], pointer: Pointer, fireEvent: FireEvent): void {\n const length = path.length;\n if (length <= 0) return;\n const eventData = this._createEventData(pointer);\n for (let i = 0; i < length; i++) {\n fireEvent(path[i], eventData);\n }\n }\n}\n\ntype FireEvent = (entity: Entity, eventData: PointerEventData) => void;\n","import {\n BlendFactor,\n BlendOperation,\n CullMode,\n Engine,\n Entity,\n Font,\n IClass,\n Loader,\n Material,\n PipelineStage,\n ReflectionParser,\n RenderQueueType,\n Shader,\n ShaderPass\n} from \"@galacean/engine\";\nimport * as GUIComponent from \"./component\";\nimport uiDefaultFs from \"./shader/uiDefault.fs.glsl\";\nimport uiDefaultVs from \"./shader/uiDefault.vs.glsl\";\nexport * from \"./component\";\nexport { CanvasRenderMode } from \"./enums/CanvasRenderMode\";\nexport { ResolutionAdaptationMode } from \"./enums/ResolutionAdaptationMode\";\nexport { UIPointerEventEmitter } from \"./input/UIPointerEventEmitter\";\n\nexport class EngineExtension {\n _uiDefaultMaterial: Material;\n _getUIDefaultMaterial(): Material {\n if (!this._uiDefaultMaterial) {\n const shader =\n Shader.find(\"ui\") ??\n Shader.create(\"ui\", [\n new ShaderPass(\"Forward\", uiDefaultVs, uiDefaultFs, {\n pipelineStage: PipelineStage.Forward\n })\n ]);\n // @ts-ignore\n const material = new Material(this, shader);\n const renderState = material.renderState;\n const target = renderState.blendState.targetBlendState;\n target.enabled = true;\n target.sourceColorBlendFactor = BlendFactor.SourceAlpha;\n target.destinationColorBlendFactor = BlendFactor.OneMinusSourceAlpha;\n target.sourceAlphaBlendFactor = BlendFactor.One;\n target.destinationAlphaBlendFactor = BlendFactor.OneMinusSourceAlpha;\n target.colorBlendOperation = target.alphaBlendOperation = BlendOperation.Add;\n renderState.depthState.writeEnabled = false;\n renderState.rasterState.cullMode = CullMode.Off;\n renderState.renderQueueType = RenderQueueType.Transparent;\n material.isGCIgnored = true;\n this._uiDefaultMaterial = material;\n }\n return this._uiDefaultMaterial;\n }\n}\n\nexport class EntityExtension {\n _uiHierarchyVersion = 0;\n _updateUIHierarchyVersion(version: number): void {\n if (this._uiHierarchyVersion !== version) {\n this._uiHierarchyVersion = version;\n // @ts-ignore\n this.parent?._updateUIHierarchyVersion(version);\n }\n }\n}\n\ndeclare module \"@galacean/engine\" {\n interface Engine {\n // @internal\n _uiDefaultMaterial: Material;\n // @internal\n _getUIDefaultMaterial(): Material;\n }\n interface Entity {\n // @internal\n _uiHierarchyVersion: number;\n // @internal\n _updateUIHierarchyVersion(version: number): void;\n }\n}\n\nfunction ApplyMixins(derivedCtor: any, baseCtors: any[]): void {\n baseCtors.forEach((baseCtor) => {\n Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {\n Object.defineProperty(\n derivedCtor.prototype,\n name,\n Object.getOwnPropertyDescriptor(baseCtor.prototype, name) || Object.create(null)\n );\n });\n });\n}\n\nApplyMixins(Engine, [EngineExtension]);\nApplyMixins(Entity, [EntityExtension]);\n\nReflectionParser.registerCustomParseComponent(\"Text\", async (instance: any, item: Omit<IClass, \"class\">) => {\n const { props } = item;\n if (!props.font) {\n // @ts-ignore\n instance.font = Font.createFromOS(instance.engine, props.fontFamily || \"Arial\");\n }\n return instance;\n});\n\n/**\n * Register GUI components for the editor.\n */\nexport function registerGUI() {\n for (let key in GUIComponent) {\n Loader.registerClass(key, GUIComponent[key]);\n }\n}\n"],"names":["UIGroup","entity","_indexInGroup","_indexInRootCanvas","_disorderedElements","DisorderedArray","_globalAlpha","_globalInteractive","_alpha","_interactive","_ignoreParentGroup","_rootCanvasListeningEntities","_groupListeningEntities","_isRootCanvasDirty","_isGroupDirty","_groupDirtyFlags","_rootCanvasListener","bind","_groupListener","_getGlobalAlpha","_isContainDirtyFlag","parentGroup","_getGroup","_setDirtyFlagFalse","_getGlobalInteractive","_onEnableInScene","Utils","setRootCanvasDirty","setGroupDirty","_dispatchModify","EntityUIModifyFlags","GroupEnableInScene","_onDisableInScene","cleanRootCanvas","cleanGroup","disorderedElements","forEach","element","length","garbageCollection","_getRootCanvas","setRootCanvas","searchRootCanvasInParents","_rootCanvas","setGroup","searchGroupInParents","_group","flag","EntityModifyFlags","Parent","CanvasEnableInScene","_onGroupModify","flags","isPass","_isContainDirtyFlags","_setDirtyFlagTrue","targetDirtyFlags","type","ignoreParentGroup","value","interactive","alpha","Math","max","min","Component","GroupModifyFlags","_registerRootCanvas","_onRootCanvasModify","RootCanvasModifyFlags","All","rootCanvas","fromEntity","UICanvas","parent","toEntity","_registerListener","_unRegisterListener","components","_components","i","n","component","enabled","_isRootCanvas","_registerGroup","group","rootCanvasParent","canvas","preCanvas","replaced","deleteByIndex","add","preGroup","root","listener","listeningEntities","count","preEntity","_unRegisterModifyListener","_registerModifyListener","CanvasRenderMode","ResolutionAdaptationMode","UITransform","_size","Vector2","_pivot","_onValueChanged","_onSizeChange","_onPivotChange","_copyFrom","transform","copyFrom","size","pivot","_entity","_updateFlagManager","dispatch","x","y","Transform","UITransformModifyFlags","UIRenderer","raycastPadding","Vector4","_raycastEnabled","_color","Color","_dirtyUpdateFlag","RendererUpdateFlags","WorldVolume","_onColorChanged","_canBatch","elementA","elementB","BatchUtils","canBatchSprite","_batch","batchFor2D","_updateTransformShaderData","context","onlyMVP","batched","_prepareRender","_renderFrameCount","engine","time","frameCount","_update","_render","ShaderMacroCollection","unionCollection","camera","_globalShaderMacro","shaderData","_macroCollection","_overrideUpdate","scene","_componentsManager","addOnUpdateRenderers","_updateUIHierarchyVersion","_hierarchyCounter","removeOnUpdateRenderers","Child","GlobalAlpha","_getChunkManager","_batcherManager","primitiveChunkManagerUI","_raycast","ray","out","distance","Number","MAX_SAFE_INTEGER","plane","_tempPlane","_transformEntity","normal","worldForward","Vector3","dot","worldPosition","curDistance","intersectPlane","hitPointWorld","getPoint","_tempVec30","worldMatrixInv","_tempMat","Matrix","invert","worldMatrix","localPosition","_tempVec31","transformCoordinate","_hitTest","point","uiTransform","width","height","pivotX","pivotY","paddingLeft","z","paddingRight","w","paddingTop","paddingBottom","_onDestroy","_subChunk","freeSubChunk","color","raycastEnabled","Renderer","Plane","_textureProperty","ShaderProperty","getByName","AutoAdd","UIRendererUpdateFlags","UIInteractive","_globalInteractiveDirty","_state","_transitions","_isPointerInside","_isPointerDragging","addTransition","transition","removeTransition","push","_setState","transitions","lastOneIndex","clearTransitions","onUpdate","deltaTime","_onUpdate","onPointerBeginDrag","_updateState","onPointerEndDrag","onPointerEnter","onPointerExit","onDestroy","destroy","GlobalInteractive","globalInteractive","instant","state","_getInteractiveState","Script","InteractiveState","_canvasIndex","_sortDistance","_orderedRenderers","_realRenderMode","_renderMode","WorldSpace","_resolutionAdaptationMode","HeightAdaptation","_sortOrder","_distance","_referenceResolution","_referenceResolutionPerUnit","_hierarchyVersion","_center","_onCanvasSizeListener","_onCameraModifyListener","_onCameraTransformListener","_onReferenceResolutionChanged","_centerDirtyFlag","registerWorldChangeFlag","renderers","_getRenderers","set","_canRender","ScreenSpaceCamera","_renderCamera","mode","enableFrustumCulling","cullingMask","_frustum","frustum","renderElement","_renderElement","_renderElementPool","get","virtualCamera","_updateSortDistance","isOrthographic","position","forward","sortOrder","renderer","layer","ScreenSpaceOverlay","bounds","intersectsBox","cameraPosition","cameraForward","boundsCenter","_getCenter","_tempVec3","subtract","distanceSquared","_setIsRootCanvas","param","_cloneTo","target","srcRoot","targetRoot","renderMode","uiHierarchyVersion","_uiHierarchyVersion","_walk","_tempGroupAbleList","_adapterPoseInScreenSpace","realRenderMode","cameraEntity","_isSameOrChildEntity","cameraTransform","cameraWorldForward","setWorldPosition","cameraWorldPosition","worldRotationQuaternion","_adapterSizeInScreenSpace","curWidth","curHeight","renderCamera","orthographicSize","tan","MathUtil","degreeToRadian","fieldOfView","aspectRatio","expectX","expectY","expectZ","WidthAdaptation","BothAdaptation","ExpandAdaptation","ShrinkAdaptation","affineTransformation","depth","tempGroupAbleList","groupAbleCount","children","child","isActive","_updateCameraObserver","preCamera","_cameraObserver","removeListener","addListener","CameraModifyFlags","ProjectionType","AspectRatio","FieldOfView","OrthographicSize","DisableInScene","_setRealRenderMode","EnableInScene","_addCanvasListener","_sizeUpdateFlagManager","_removeCanvasListener","isRootCanvas","_getRealRenderMode","center","curRealMode","preRealMode","componentsManager","removeUICanvas","addUICanvas","canvasEntity","referenceResolutionPerUnit","referenceResolution","preMode","Logger","warn","preRenderMode","curRenderMode","resolutionAdaptationMode","_overlayCanvasesSortingFlag","Button","_listeners","SafeLoopArray","addClicked","fn","removeClicked","findAndRemove","destroyed","onPointerClick","event","listeners","getLoopArray","Image","_sprite","_tileMode","SpriteTileMode","Continuous","_tiledAdaptiveThreshold","drawMode","SpriteDrawMode","Simple","setMaterial","_engine","_getUIDefaultMaterial","_onSpriteChange","ReferenceResolutionPerUnit","_drawMode","Tiled","Sliced","sprite","_updateBounds","worldBounds","_assembler","updatePositions","texture","material","getMaterial","a","dirtyUpdateFlag","updateUVs","updateColor","subRenderElement","_subRenderElementPool","subChunk","chunk","primitive","subMesh","shaderPasses","shader","subShaders","passes","renderQueueFlags","RenderQueueFlags","addSubRenderElement","_onTransformChanged","Size","_addResourceReferCount","SpriteModifyFlags","setTexture","border","region","atlasRegionOffset","atlasRegion","SimpleSpriteAssembler","SlicedSpriteAssembler","TiledSpriteAssembler","resetData","tileMode","tiledAdaptiveThreshold","clamp","lastSprite","Text","_textChunks","Array","_subFont","_text","_localBounds","BoundingBox","_font","_fontSize","_fontStyle","FontStyle","None","_lineSpacing","_horizontalAlignment","TextHorizontalAlignment","Center","_verticalAlignment","TextVerticalAlignment","_enableWrapping","_overflowMode","OverflowMode","Overflow","font","_textDefaultFont","_basicResources","textDefaultMaterial","_freeTextChunks","_getSubFont","_resetSubFont","_isTextNoVisible","_updateLocalData","_updatePosition","_updateColor","textSubRenderElementPool","_textSubRenderElementPool","textChunks","isOverlay","ShaderData","ShaderDataGroup","RenderElement","_textTextureProperty","fontSize","fontStyle","nativeFontString","TextUtils","getNativeFontString","name","e","elements","e0","e1","e2","e4","e5","e6","e12","e13","e14","up","right","worldPositions","_worldPositions","worldPosition0","worldPosition1","worldPosition2","worldPosition3","charRenderInfos","j","m","charRenderInfo","localPositions","topLeftY","topLeftX","scale","vertices","k","o","vertexArea","start","indexInChunk","copyToArray","r","g","b","finalAlpha","vertexCount","pixelsPerResolution","Engine","_pixelsPerUnit","_charRenderInfos","charFont","rendererWidth","rendererHeight","offsetWidth","offsetHeight","textMetrics","enableWrapping","measureTextWithWrap","measureTextWithoutWrap","lines","lineWidths","lineHeight","lineMaxSizes","charRenderInfoPool","_charRenderInfoPool","linesLen","renderElementCount","horizontalAlignment","pixelsPerUnitReciprocal","halfRendererWidth","halfLineHeight","startY","topDiff","ascent","bottomDiff","descent","verticalAlignment","Top","Bottom","firstLine","minX","minY","maxX","MIN_SAFE_INTEGER","maxY","lineWidth","line","startX","firstRow","Left","Right","char","charInfo","_getCharInfo","h","_getTextureByIndex","index","uvs","left","top","bottom","xAdvance","offsetX","_getLastIndex","sort","instanceId","curTextChunk","TextChunk","chunkMaxVertexCount","maxVertexCount","curCharRenderInfo","curTexture","curCharInfos","_buildChunk","charLength","Pivot","overflowMode","Truncate","textChunk","tempIndices","CharRenderInfo","triangles","tempIndicesLength","allocateSubChunk","indices","ii","io","vo","uv","manager","return","text","lastFont","lineSpacing","maskLayer","_maskLayer","localBounds","_bounds","Transition","_duration","_countDown","_finalState","Normal","_target","_getValueByState","_initialValue","_finalValue","_getTargetValueCopy","_updateValue","delta","_onStateValueDirty","preValue","curValue","ReferResource","_addReferCount","weight","_updateCurrentValue","_applyValue","_currentValue","Pressed","pressed","Hover","hover","Disable","disabled","_normal","preNormal","_pressed","prePressed","_hover","preHover","_disabled","preDisabled","duration","preDuration","ColorTransition","_onNormalValueChanged","_onHoverValueChanged","_onPressedValueChanged","_onDisabledValueChanged","srcValue","destValue","lerp","ScaleTransition","setScale","SpriteTransition","UIHitResult","UIPointerEventEmitter","_enteredPath","_pressedPath","_draggedPath","_init","_hitResult","processRaycast","scenes","pointer","PointerEventEmitter","_tempRay","hitResult","canvasElements","_overlayCanvases","origin","direction","_updateRaycast","cameras","_activeCameras","renderTarget","pixelViewport","screenPointToRay","_canvases","farClipPlane","clearFlags","CameraClearFlags","processDrag","draggedPath","_bubble","_fireDrag","processDown","enteredPath","pressedPath","_fireDown","_fireBeginDrag","processUp","_fireUp","common","_tempArray0","_findCommonInPath","eventData","_createEventData","_fireClick","_fireEndDrag","_fireDrop","processLeave","_fireExit","dispose","curPath","_composedPath","_path","del","_tempArray1","_findDiffInPath","_fireEnter","path","rootEntity","_MAX_PATH_DEPTH","prePath","idSet","_tempSet","clear","hasCommon","has","changed","fireEvent","Set","EngineExtension","_uiDefaultMaterial","Shader","find","create","ShaderPass","uiDefaultVs","uiDefaultFs","pipelineStage","PipelineStage","Forward","Material","renderState","blendState","targetBlendState","sourceColorBlendFactor","BlendFactor","SourceAlpha","destinationColorBlendFactor","OneMinusSourceAlpha","sourceAlphaBlendFactor","One","destinationAlphaBlendFactor","colorBlendOperation","alphaBlendOperation","BlendOperation","Add","depthState","writeEnabled","rasterState","cullMode","CullMode","Off","renderQueueType","RenderQueueType","Transparent","isGCIgnored","EntityExtension","version","ApplyMixins","derivedCtor","baseCtors","baseCtor","Object","getOwnPropertyNames","prototype","defineProperty","getOwnPropertyDescriptor","Entity","ReflectionParser","registerCustomParseComponent","instance","item","props","Font","createFromOS","fontFamily","registerGUI","key","GUIComponent","Loader","registerClass"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.js","sources":["../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_async_to_generator.js","../../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_create_class.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_set_prototype_of.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_inherits.js","../../../node_modules/.pnpm/@swc+helpers@0.5.15/node_modules/@swc/helpers/esm/_instanceof.js","../src/component/UIGroup.ts","../src/Utils.ts","../src/enums/CanvasRenderMode.ts","../src/enums/ResolutionAdaptationMode.ts","../src/component/UITransform.ts","../src/component/UIRenderer.ts","../src/component/interactive/UIInteractive.ts","../src/component/UICanvas.ts","../src/component/advanced/Button.ts","../src/component/advanced/Image.ts","../src/component/advanced/Text.ts","../src/component/interactive/transition/Transition.ts","../src/component/interactive/transition/ColorTransition.ts","../src/component/interactive/transition/ScaleTransition.ts","../src/component/interactive/transition/SpriteTransition.ts","../src/input/UIHitResult.ts","../src/input/UIPointerEventEmitter.ts","../src/index.ts"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) resolve(value);\n else Promise.resolve(value).then(_next, _throw);\n}\nfunction _async_to_generator(fn) {\n return function() {\n var self = this, args = arguments;\n\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\nexport { _async_to_generator as _ };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n\n if (\"value\" in descriptor) descriptor.writable = true;\n\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nfunction _create_class(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n\n return Constructor;\n}\nexport { _create_class as _ };\n","function _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {\n o.__proto__ = p;\n\n return o;\n };\n\n return _set_prototype_of(o, p);\n}\nexport { _set_prototype_of as _ };\n","import { _ as _set_prototype_of } from \"./_set_prototype_of.js\";\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nexport { _inherits as _ };\n","function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else return left instanceof right;\n}\nexport { _instanceof as _ };\n","import { Component, DisorderedArray, Entity, EntityModifyFlags, assignmentClone, ignoreClone } from \"@galacean/engine\";\nimport { Utils } from \"../Utils\";\nimport { IGroupAble } from \"../interface/IGroupAble\";\nimport { EntityUIModifyFlags, UICanvas } from \"./UICanvas\";\n\nexport class UIGroup extends Component implements IGroupAble {\n /** @internal */\n @ignoreClone\n _indexInGroup: number = -1;\n /** @internal */\n @ignoreClone\n _indexInRootCanvas: number = -1;\n /** @internal */\n @ignoreClone\n _group: UIGroup;\n /** @internal */\n @ignoreClone\n _rootCanvas: UICanvas;\n /** @internal */\n @ignoreClone\n _disorderedElements: DisorderedArray<IGroupAble> = new DisorderedArray<IGroupAble>();\n\n /** @internal */\n @ignoreClone\n _globalAlpha = 1;\n /** @internal */\n _globalInteractive = true;\n\n @assignmentClone\n private _alpha = 1;\n @assignmentClone\n private _interactive = true;\n @assignmentClone\n private _ignoreParentGroup = false;\n\n /** @internal */\n @ignoreClone\n _rootCanvasListeningEntities: Entity[] = [];\n /** @internal */\n @ignoreClone\n _groupListeningEntities: Entity[] = [];\n /** @internal */\n @ignoreClone\n _isRootCanvasDirty: boolean = true;\n /** @internal */\n @ignoreClone\n _isGroupDirty: boolean = true;\n /** @internal */\n @ignoreClone\n _groupDirtyFlags: number = GroupModifyFlags.None;\n\n /**\n * Whether to ignore the parent group.\n * @remarks If this parameter set to `true`,\n * all settings of the parent group will be ignored.\n */\n get ignoreParentGroup(): boolean {\n return this._ignoreParentGroup;\n }\n\n set ignoreParentGroup(value: boolean) {\n if (this._ignoreParentGroup !== value) {\n this._ignoreParentGroup = value;\n this._onGroupModify(GroupModifyFlags.All);\n }\n }\n\n /**\n * Whether the group is interactive.\n */\n get interactive(): boolean {\n return this._interactive;\n }\n\n set interactive(value: boolean) {\n if (this._interactive !== value) {\n this._interactive = value;\n this._onGroupModify(GroupModifyFlags.GlobalInteractive);\n }\n }\n\n /**\n * The alpha value of the group.\n */\n get alpha(): number {\n return this._alpha;\n }\n\n set alpha(value: number) {\n value = Math.max(0, Math.min(value, 1));\n if (this._alpha !== value) {\n this._alpha = value;\n this._onGroupModify(GroupModifyFlags.GlobalAlpha);\n }\n }\n\n /**\n * @internal\n */\n _getGlobalAlpha(): number {\n if (this._isContainDirtyFlag(GroupModifyFlags.GlobalAlpha)) {\n if (this._ignoreParentGroup) {\n this._globalAlpha = this._alpha;\n } else {\n const parentGroup = this._getGroup();\n this._globalAlpha = this._alpha * (parentGroup ? parentGroup._getGlobalAlpha() : 1);\n }\n this._setDirtyFlagFalse(GroupModifyFlags.GlobalAlpha);\n }\n return this._globalAlpha;\n }\n\n /**\n * @internal\n */\n _getGlobalInteractive(): boolean {\n if (this._isContainDirtyFlag(GroupModifyFlags.GlobalInteractive)) {\n if (this._ignoreParentGroup) {\n this._globalInteractive = this._interactive;\n } else {\n const parentGroup = this._getGroup();\n this._globalInteractive = this._interactive && (!parentGroup || parentGroup._getGlobalInteractive());\n }\n this._setDirtyFlagFalse(GroupModifyFlags.GlobalInteractive);\n }\n return this._globalInteractive;\n }\n\n constructor(entity: Entity) {\n super(entity);\n this._rootCanvasListener = this._rootCanvasListener.bind(this);\n this._groupListener = this._groupListener.bind(this);\n }\n\n // @ts-ignore\n override _onEnableInScene(): void {\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n // @ts-ignore\n this.entity._dispatchModify(EntityUIModifyFlags.GroupEnableInScene);\n }\n\n // @ts-ignore\n override _onDisableInScene(): void {\n Utils.cleanRootCanvas(this);\n Utils.cleanGroup(this);\n const disorderedElements = this._disorderedElements;\n disorderedElements.forEach((element: IGroupAble) => {\n Utils.setGroupDirty(element);\n });\n disorderedElements.length = 0;\n disorderedElements.garbageCollection();\n this._isRootCanvasDirty = this._isGroupDirty = false;\n }\n\n /**\n * @internal\n */\n _getRootCanvas(): UICanvas {\n this._isRootCanvasDirty && Utils.setRootCanvas(this, Utils.searchRootCanvasInParents(this));\n return this._rootCanvas;\n }\n\n /**\n * @internal\n */\n _getGroup(): UIGroup {\n this._isGroupDirty && Utils.setGroup(this, Utils.searchGroupInParents(this));\n return this._group;\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _groupListener(flag: number): void {\n if (flag === EntityModifyFlags.Parent || flag === EntityUIModifyFlags.GroupEnableInScene) {\n Utils.setGroupDirty(this);\n }\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _rootCanvasListener(flag: number): void {\n if (flag === EntityModifyFlags.Parent || flag === EntityUIModifyFlags.CanvasEnableInScene) {\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n }\n }\n\n /**\n * @internal\n */\n _onGroupModify(flags: GroupModifyFlags, isPass: boolean = false): void {\n if (isPass && this._ignoreParentGroup) return;\n if (this._isContainDirtyFlags(flags)) return;\n this._setDirtyFlagTrue(flags);\n this._disorderedElements.forEach((element) => {\n element._onGroupModify(flags, true);\n });\n }\n\n private _isContainDirtyFlags(targetDirtyFlags: number): boolean {\n return (this._groupDirtyFlags & targetDirtyFlags) === targetDirtyFlags;\n }\n\n private _isContainDirtyFlag(type: number): boolean {\n return (this._groupDirtyFlags & type) != 0;\n }\n\n private _setDirtyFlagTrue(type: number) {\n this._groupDirtyFlags |= type;\n }\n\n private _setDirtyFlagFalse(type: number) {\n this._groupDirtyFlags &= ~type;\n }\n}\n\nexport enum GroupModifyFlags {\n None = 0x0,\n GlobalAlpha = 0x1,\n GlobalInteractive = 0x2,\n All = 0x3\n}\n","import { Entity } from \"@galacean/engine\";\nimport { RootCanvasModifyFlags, UICanvas } from \"./component/UICanvas\";\nimport { GroupModifyFlags, UIGroup } from \"./component/UIGroup\";\nimport { IElement } from \"./interface/IElement\";\nimport { IGroupAble } from \"./interface/IGroupAble\";\n\nexport class Utils {\n static setRootCanvasDirty(element: IElement): void {\n if (element._isRootCanvasDirty) return;\n element._isRootCanvasDirty = true;\n this._registerRootCanvas(element, null);\n element._onRootCanvasModify?.(RootCanvasModifyFlags.All);\n }\n\n static setRootCanvas(element: IElement, rootCanvas: UICanvas): void {\n element._isRootCanvasDirty = false;\n this._registerRootCanvas(element, rootCanvas);\n const fromEntity = element instanceof UICanvas ? element.entity.parent : element.entity;\n const toEntity = rootCanvas?.entity.parent ?? null;\n this._registerListener(fromEntity, toEntity, element._rootCanvasListener, element._rootCanvasListeningEntities);\n }\n\n static cleanRootCanvas(element: IElement): void {\n this._registerRootCanvas(element, null);\n this._unRegisterListener(element._rootCanvasListener, element._rootCanvasListeningEntities);\n }\n\n static searchRootCanvasInParents(element: IElement): UICanvas {\n let entity = element instanceof UICanvas ? element.entity.parent : element.entity;\n while (entity) {\n // @ts-ignore\n const components = entity._components;\n for (let i = 0, n = components.length; i < n; i++) {\n const component = components[i];\n if (component.enabled && component instanceof UICanvas && component._isRootCanvas) {\n return component;\n }\n }\n entity = entity.parent;\n }\n return null;\n }\n\n static setGroupDirty(element: IGroupAble): void {\n if (element._isGroupDirty) return;\n element._isGroupDirty = true;\n this._registerGroup(element, null);\n element._onGroupModify(GroupModifyFlags.All);\n }\n\n static setGroup(element: IGroupAble, group: UIGroup): void {\n element._isGroupDirty = false;\n this._registerGroup(element, group);\n const rootCanvas = element._getRootCanvas();\n if (rootCanvas) {\n const fromEntity = element instanceof UIGroup ? element.entity.parent : element.entity;\n const toEntity = group?.entity ?? rootCanvas.entity.parent;\n this._registerListener(fromEntity, toEntity, element._groupListener, element._groupListeningEntities);\n } else {\n this._unRegisterListener(element._groupListener, element._groupListeningEntities);\n }\n }\n\n static cleanGroup(element: IGroupAble): void {\n this._registerGroup(element, null);\n this._unRegisterListener(element._groupListener, element._groupListeningEntities);\n }\n\n static searchGroupInParents(element: IGroupAble): UIGroup {\n const rootCanvas = element._getRootCanvas();\n if (!rootCanvas) return null;\n let entity = element instanceof UIGroup ? element.entity.parent : element.entity;\n const rootCanvasParent = rootCanvas.entity.parent;\n while (entity && entity !== rootCanvasParent) {\n // @ts-ignore\n const components = entity._components;\n for (let i = 0, n = components.length; i < n; i++) {\n const component = components[i];\n if (component.enabled && component instanceof UIGroup) {\n return component;\n }\n }\n entity = entity.parent;\n }\n return null;\n }\n\n private static _registerRootCanvas(element: IElement, canvas: UICanvas): void {\n const preCanvas = element._rootCanvas;\n if (preCanvas !== canvas) {\n if (preCanvas) {\n const replaced = preCanvas._disorderedElements.deleteByIndex(element._indexInRootCanvas);\n replaced && (replaced._indexInRootCanvas = element._indexInRootCanvas);\n element._indexInRootCanvas = -1;\n }\n if (canvas) {\n const disorderedElements = canvas._disorderedElements;\n element._indexInRootCanvas = disorderedElements.length;\n disorderedElements.add(element);\n }\n element._rootCanvas = canvas;\n }\n }\n\n private static _registerGroup(element: IGroupAble, group: UIGroup): void {\n const preGroup = element._group;\n if (preGroup !== group) {\n if (preGroup) {\n const replaced = preGroup._disorderedElements.deleteByIndex(element._indexInGroup);\n replaced && (replaced._indexInGroup = element._indexInGroup);\n element._indexInGroup = -1;\n }\n if (group) {\n const disorderedElements = group._disorderedElements;\n element._indexInGroup = disorderedElements.length;\n disorderedElements.add(element);\n }\n element._group = group;\n element._onGroupModify(GroupModifyFlags.All);\n }\n }\n\n private static _registerListener(\n entity: Entity,\n root: Entity,\n listener: (flag: number, param?: any) => void,\n listeningEntities: Entity[]\n ): void {\n let count = 0;\n while (entity && entity !== root) {\n const preEntity = listeningEntities[count];\n if (preEntity !== entity) {\n // @ts-ignore\n preEntity?._unRegisterModifyListener(listener);\n listeningEntities[count] = entity;\n // @ts-ignore\n entity._registerModifyListener(listener);\n }\n entity = entity.parent;\n count++;\n }\n listeningEntities.length = count;\n }\n\n private static _unRegisterListener(listener: (flag: number, param?: any) => void, listeningEntities: Entity[]): void {\n for (let i = 0, n = listeningEntities.length; i < n; i++) {\n // @ts-ignore\n listeningEntities[i]._unRegisterModifyListener(listener);\n }\n listeningEntities.length = 0;\n }\n}\n","/**\n * Render mode for ui canvas.\n */\nexport enum CanvasRenderMode {\n /**\n * The UI canvas will be rendered directly onto the screen and adapted to screen space,\n * overlaying other rendering elements in the same scene.\n * @remarks if the `engine.canvas` size change, the UI canvas will automatically adapt.\n */\n ScreenSpaceOverlay = 0,\n /**\n * The UI canvas is placed at a specified distance in front of the camera and adapted to screen space,\n * with all objects rendered by the camera.\n * @remarks if the camera's properties or the `engine.canvas` size change, the UI canvas will automatically adapt.\n * @remarks if set `ScreenSpaceCamera` but no corresponding camera is assigned, the actual rendering mode defaults to `ScreenSpaceOverlay`.\n */\n ScreenSpaceCamera = 1,\n /**\n * The UI canvas is placed in the 3D world space and rendered by every camera in the same scene.\n */\n WorldSpace = 2\n}\n","/**\n * Resolution adaptation mode.\n * @remarks Only effective in screen space.\n */\nexport enum ResolutionAdaptationMode {\n /** Adapt based on width.(`referenceResolution.x`) */\n WidthAdaptation,\n /** Adapt based on height.(`referenceResolution.y`) */\n HeightAdaptation,\n /** Adapt based on both width and height.(`referenceResolution`) */\n BothAdaptation,\n /** Adapt to the side with a larger ratio. */\n ExpandAdaptation,\n /** Adapt to the side with smaller ratio. */\n ShrinkAdaptation\n}\n","import { Entity, Transform, Vector2, deepClone, ignoreClone } from \"@galacean/engine\";\n\n/**\n * The Transform component exclusive to the UI element.\n */\nexport class UITransform extends Transform {\n @deepClone\n private _size: Vector2 = new Vector2(100, 100);\n @deepClone\n private _pivot: Vector2 = new Vector2(0.5, 0.5);\n\n /**\n * Width and height of UI element.\n */\n get size(): Vector2 {\n return this._size;\n }\n\n set size(value: Vector2) {\n const { _size: size } = this;\n if (size === value) return;\n (size.x !== value.x || size.y !== value.y) && size.copyFrom(value);\n }\n\n /**\n * Pivot of UI element.\n */\n get pivot(): Vector2 {\n return this._pivot;\n }\n\n set pivot(value: Vector2) {\n const { _pivot: pivot } = this;\n if (pivot === value) return;\n (pivot.x !== value.x || pivot.y !== value.y) && pivot.copyFrom(value);\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n // @ts-ignore\n this._size._onValueChanged = this._onSizeChange.bind(this);\n // @ts-ignore\n this._pivot._onValueChanged = this._onPivotChange.bind(this);\n }\n\n // @ts-ignore\n override _cloneTo(target: UITransform, srcRoot: Entity, targetRoot: Entity): void {\n // @ts-ignore\n super._cloneTo(target, srcRoot, targetRoot);\n target.size.copyFrom(this._size);\n target.pivot.copyFrom(this._pivot);\n }\n\n @ignoreClone\n private _onSizeChange(): void {\n // @ts-ignore\n this._entity._updateFlagManager.dispatch(UITransformModifyFlags.Size);\n }\n\n @ignoreClone\n private _onPivotChange(): void {\n // @ts-ignore\n this._entity._updateFlagManager.dispatch(UITransformModifyFlags.Pivot);\n }\n}\n\n/**\n * @internal\n * extends TransformModifyFlags\n */\nexport enum UITransformModifyFlags {\n /** Size. */\n Size = 0x200,\n /** Pivot. */\n Pivot = 0x400\n}\n","import {\n BatchUtils,\n Color,\n DependentMode,\n Entity,\n EntityModifyFlags,\n Matrix,\n Plane,\n Ray,\n Renderer,\n RendererUpdateFlags,\n ShaderMacroCollection,\n ShaderProperty,\n Vector3,\n Vector4,\n deepClone,\n dependentComponents,\n ignoreClone\n} from \"@galacean/engine\";\nimport { Utils } from \"../Utils\";\nimport { UIHitResult } from \"../input/UIHitResult\";\nimport { IGraphics } from \"../interface/IGraphics\";\nimport { EntityUIModifyFlags, UICanvas } from \"./UICanvas\";\nimport { GroupModifyFlags, UIGroup } from \"./UIGroup\";\nimport { UITransform } from \"./UITransform\";\n\n@dependentComponents(UITransform, DependentMode.AutoAdd)\nexport class UIRenderer extends Renderer implements IGraphics {\n /** @internal */\n static _tempVec30: Vector3 = new Vector3();\n /** @internal */\n static _tempVec31: Vector3 = new Vector3();\n /** @internal */\n static _tempMat: Matrix = new Matrix();\n /** @internal */\n static _tempPlane: Plane = new Plane();\n /** @internal */\n static _textureProperty: ShaderProperty = ShaderProperty.getByName(\"renderer_UITexture\");\n\n /**\n * Custom boundary for raycast detection.\n * @remarks this is based on `this.entity.transform`.\n */\n @deepClone\n raycastPadding: Vector4 = new Vector4(0, 0, 0, 0);\n /** @internal */\n @ignoreClone\n _rootCanvas: UICanvas;\n /** @internal */\n @ignoreClone\n _indexInRootCanvas: number = -1;\n /** @internal */\n @ignoreClone\n _isRootCanvasDirty: boolean = false;\n /** @internal */\n @ignoreClone\n _rootCanvasListeningEntities: Entity[] = [];\n /** @internal */\n @ignoreClone\n _group: UIGroup;\n /** @internal */\n @ignoreClone\n _indexInGroup: number = -1;\n /** @internal */\n @ignoreClone\n _isGroupDirty: boolean = false;\n /** @internal */\n @ignoreClone\n _groupListeningEntities: Entity[] = [];\n /** @internal */\n @ignoreClone\n _subChunk;\n\n @ignoreClone\n private _raycastEnabled: boolean = true;\n @deepClone\n protected _color: Color = new Color(1, 1, 1, 1);\n\n /**\n * Rendering color for the ui renderer.\n */\n get color(): Color {\n return this._color;\n }\n\n set color(value: Color) {\n if (this._color !== value) {\n this._color.copyFrom(value);\n }\n }\n\n /**\n * Whether this renderer be picked up by raycast.\n */\n get raycastEnabled(): boolean {\n return this._raycastEnabled;\n }\n\n set raycastEnabled(value: boolean) {\n this._raycastEnabled = value;\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n this._dirtyUpdateFlag = RendererUpdateFlags.WorldVolume | UIRendererUpdateFlags.Color;\n this._onColorChanged = this._onColorChanged.bind(this);\n //@ts-ignore\n this._color._onValueChanged = this._onColorChanged;\n this._groupListener = this._groupListener.bind(this);\n this._rootCanvasListener = this._rootCanvasListener.bind(this);\n }\n\n // @ts-ignore\n override _canBatch(elementA, elementB): boolean {\n return BatchUtils.canBatchSprite(elementA, elementB);\n }\n\n // @ts-ignore\n override _batch(elementA, elementB?): void {\n BatchUtils.batchFor2D(elementA, elementB);\n }\n\n // @ts-ignore\n override _updateTransformShaderData(context, onlyMVP: boolean, batched: boolean): void {\n // @ts-ignore\n super._updateTransformShaderData(context, onlyMVP, true);\n }\n\n // @ts-ignore\n override _prepareRender(context): void {\n // Update once per frame per renderer, not influenced by batched\n if (this._renderFrameCount !== this.engine.time.frameCount) {\n this._update(context);\n }\n\n this._render(context);\n\n // union camera global macro and renderer macro.\n ShaderMacroCollection.unionCollection(\n context.camera._globalShaderMacro,\n // @ts-ignore\n this.shaderData._macroCollection,\n //@ts-ignore\n this._globalShaderMacro\n );\n }\n\n // @ts-ignore\n override _onEnableInScene(): void {\n // @ts-ignore\n this._overrideUpdate && this.scene._componentsManager.addOnUpdateRenderers(this);\n this.entity._updateUIHierarchyVersion(UICanvas._hierarchyCounter);\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n }\n\n // @ts-ignore\n override _onDisableInScene(): void {\n // @ts-ignore\n this._overrideUpdate && this.scene._componentsManager.removeOnUpdateRenderers(this);\n this.entity._updateUIHierarchyVersion(UICanvas._hierarchyCounter);\n Utils.cleanRootCanvas(this);\n Utils.cleanGroup(this);\n }\n\n /**\n * @internal\n */\n _getGlobalAlpha(): number {\n return this._getGroup()?._getGlobalAlpha() ?? 1;\n }\n\n /**\n * @internal\n */\n _getRootCanvas(): UICanvas {\n this._isRootCanvasDirty && Utils.setRootCanvas(this, Utils.searchRootCanvasInParents(this));\n return this._rootCanvas;\n }\n\n /**\n * @internal\n */\n _getGroup(): UIGroup {\n this._isGroupDirty && Utils.setGroup(this, Utils.searchGroupInParents(this));\n return this._group;\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _groupListener(flag: number): void {\n if (flag === EntityModifyFlags.Parent || flag === EntityUIModifyFlags.GroupEnableInScene) {\n Utils.setGroupDirty(this);\n }\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _rootCanvasListener(flag: number, entity: Entity): void {\n switch (flag) {\n case EntityModifyFlags.Parent:\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n case EntityModifyFlags.Child:\n entity._updateUIHierarchyVersion(UICanvas._hierarchyCounter);\n break;\n default:\n break;\n }\n }\n\n /**\n * @internal\n */\n _onGroupModify(flags: GroupModifyFlags): void {\n if (flags & GroupModifyFlags.GlobalAlpha) {\n this._dirtyUpdateFlag |= UIRendererUpdateFlags.Color;\n }\n }\n\n @ignoreClone\n private _onColorChanged(): void {\n this._dirtyUpdateFlag |= UIRendererUpdateFlags.Color;\n }\n\n /**\n * @internal\n */\n _getChunkManager() {\n // @ts-ignore\n return this.engine._batcherManager.primitiveChunkManagerUI;\n }\n\n /**\n * @internal\n */\n _raycast(ray: Ray, out: UIHitResult, distance: number = Number.MAX_SAFE_INTEGER): boolean {\n const plane = UIRenderer._tempPlane;\n const transform = <UITransform>this._transformEntity.transform;\n const normal = plane.normal.copyFrom(transform.worldForward);\n plane.distance = -Vector3.dot(normal, transform.worldPosition);\n const curDistance = ray.intersectPlane(plane);\n if (curDistance >= 0 && curDistance < distance) {\n const hitPointWorld = ray.getPoint(curDistance, UIRenderer._tempVec30);\n const worldMatrixInv = UIRenderer._tempMat;\n Matrix.invert(transform.worldMatrix, worldMatrixInv);\n const localPosition = UIRenderer._tempVec31;\n Vector3.transformCoordinate(hitPointWorld, worldMatrixInv, localPosition);\n if (this._hitTest(localPosition)) {\n out.component = this;\n out.distance = curDistance;\n out.entity = this.entity;\n out.normal.copyFrom(normal);\n out.point.copyFrom(hitPointWorld);\n return true;\n }\n }\n return false;\n }\n\n protected _hitTest(localPosition: Vector3): boolean {\n const { x, y } = localPosition;\n const uiTransform = <UITransform>this._transformEntity.transform;\n const { x: width, y: height } = uiTransform.size;\n const { x: pivotX, y: pivotY } = uiTransform.pivot;\n const { x: paddingLeft, y: paddingBottom, z: paddingRight, w: paddingTop } = this.raycastPadding;\n return (\n x >= -width * pivotX + paddingLeft &&\n x <= width * (1 - pivotX) - paddingRight &&\n y >= -height * pivotY + paddingTop &&\n y <= height * (1 - pivotY) - paddingBottom\n );\n }\n\n protected override _onDestroy(): void {\n if (this._subChunk) {\n this._getChunkManager().freeSubChunk(this._subChunk);\n this._subChunk = null;\n }\n super._onDestroy();\n //@ts-ignore\n this._color._onValueChanged = null;\n this._color = null;\n }\n}\n\n/**\n * @remarks Extends `RendererUpdateFlags`.\n */\nexport enum UIRendererUpdateFlags {\n Color = 0x2\n}\n","import { Entity, EntityModifyFlags, Script, ignoreClone } from \"@galacean/engine\";\nimport { UIGroup } from \"../..\";\nimport { Utils } from \"../../Utils\";\nimport { IGroupAble } from \"../../interface/IGroupAble\";\nimport { EntityUIModifyFlags, UICanvas } from \"../UICanvas\";\nimport { GroupModifyFlags } from \"../UIGroup\";\nimport { Transition } from \"./transition/Transition\";\n\n/**\n * Interactive component.\n */\nexport class UIInteractive extends Script implements IGroupAble {\n private static _targetTempPath = new Array<number>();\n\n /** @internal */\n @ignoreClone\n _rootCanvas: UICanvas;\n /** @internal */\n @ignoreClone\n _indexInRootCanvas: number = -1;\n /** @internal */\n @ignoreClone\n _isRootCanvasDirty: boolean = false;\n /** @internal */\n @ignoreClone\n _rootCanvasListeningEntities: Entity[] = [];\n /** @internal */\n @ignoreClone\n _group: UIGroup;\n /** @internal */\n @ignoreClone\n _indexInGroup: number = -1;\n /** @internal */\n @ignoreClone\n _isGroupDirty: boolean = false;\n /** @internal */\n @ignoreClone\n _groupListeningEntities: Entity[] = [];\n\n /** @internal */\n @ignoreClone\n _globalInteractive: boolean = false;\n /** @internal */\n @ignoreClone\n _globalInteractiveDirty: boolean = false;\n\n @ignoreClone\n protected _transitions: Transition[] = [];\n protected _interactive: boolean = true;\n protected _state: InteractiveState = InteractiveState.Normal;\n\n /** @todo Multi-touch points are not considered yet. */\n private _isPointerInside: boolean = false;\n private _isPointerDragging: boolean = false;\n\n /**\n * The transitions of this interactive.\n */\n get transitions(): Readonly<Transition[]> {\n return this._transitions;\n }\n\n /**\n * Whether the interactive is enabled.\n */\n get interactive() {\n return this._interactive;\n }\n\n set interactive(value: boolean) {\n if (this._interactive !== value) {\n this._interactive = value;\n this._globalInteractiveDirty = true;\n }\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n this._groupListener = this._groupListener.bind(this);\n this._rootCanvasListener = this._rootCanvasListener.bind(this);\n }\n\n /**\n * Add transition on this interactive.\n * @param transition - The transition\n */\n addTransition(transition: Transition): void {\n const interactive = transition._interactive;\n if (interactive !== this) {\n interactive?.removeTransition(transition);\n this._transitions.push(transition);\n transition._interactive = this;\n transition._setState(this._state, true);\n }\n }\n\n /**\n * Remove a transition.\n * @param shape - The transition.\n */\n removeTransition(transition: Transition): void {\n const transitions = this._transitions;\n const lastOneIndex = transitions.length - 1;\n for (let i = lastOneIndex; i >= 0; i--) {\n if (transitions[i] === transition) {\n i !== lastOneIndex && (transitions[i] = transitions[lastOneIndex]);\n transitions.length = lastOneIndex;\n transition._interactive = null;\n break;\n }\n }\n }\n\n /**\n * Remove all transitions.\n */\n clearTransitions(): void {\n const transitions = this._transitions;\n for (let i = 0, n = transitions.length; i < n; i++) {\n transitions[i]._interactive = null;\n }\n transitions.length = 0;\n }\n\n override onUpdate(deltaTime: number): void {\n if (this._getGlobalInteractive()) {\n const transitions = this._transitions;\n for (let i = 0, n = transitions.length; i < n; i++) {\n transitions[i]._onUpdate(deltaTime);\n }\n }\n }\n\n override onPointerBeginDrag(): void {\n this._isPointerDragging = true;\n this._updateState(false);\n }\n\n override onPointerEndDrag(): void {\n this._isPointerDragging = false;\n this._updateState(false);\n }\n\n override onPointerEnter(): void {\n this._isPointerInside = true;\n this._updateState(false);\n }\n\n override onPointerExit(): void {\n this._isPointerInside = false;\n this._updateState(false);\n }\n\n override onDestroy(): void {\n super.onDestroy();\n const transitions = this._transitions;\n for (let i = transitions.length - 1; i >= 0; i--) {\n transitions[i].destroy();\n }\n }\n\n // @ts-ignore\n override _cloneTo(target: UIInteractive, srcRoot: Entity, targetRoot: Entity): void {\n const transitions = this._transitions;\n for (let i = 0, n = transitions.length; i < n; i++) {\n const srcTransition = transitions[i];\n const dstTransition = new (transitions[i].constructor as new () => Transition)();\n dstTransition.normal = srcTransition.normal;\n dstTransition.pressed = srcTransition.pressed;\n dstTransition.hover = srcTransition.hover;\n dstTransition.disabled = srcTransition.disabled;\n const transitionTarget = srcTransition.target;\n if (transitionTarget) {\n const paths = UIInteractive._targetTempPath;\n // @ts-ignore\n const success = Entity._getEntityHierarchyPath(srcRoot, transitionTarget.entity, paths);\n dstTransition.target = success\n ? // @ts-ignore\n Entity._getEntityByHierarchyPath(targetRoot, paths).getComponent(transitionTarget.constructor)\n : transitionTarget;\n }\n target.addTransition(dstTransition);\n }\n }\n\n /**\n * @internal\n */\n _getRootCanvas(): UICanvas {\n this._isRootCanvasDirty && Utils.setRootCanvas(this, Utils.searchRootCanvasInParents(this));\n return this._rootCanvas;\n }\n\n /**\n * @internal\n */\n _getGroup(): UIGroup {\n this._isGroupDirty && Utils.setGroup(this, Utils.searchGroupInParents(this));\n return this._group;\n }\n\n // @ts-ignore\n override _onEnableInScene(): void {\n // @ts-ignore\n super._onEnableInScene();\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n this._updateState(true);\n }\n\n // @ts-ignore\n override _onDisableInScene(): void {\n // @ts-ignore\n super._onDisableInScene();\n Utils.cleanRootCanvas(this);\n Utils.cleanGroup(this);\n this._isPointerInside = this._isPointerDragging = false;\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _groupListener(flag: number): void {\n if (flag === EntityModifyFlags.Parent || flag === EntityUIModifyFlags.GroupEnableInScene) {\n Utils.setGroupDirty(this);\n }\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _rootCanvasListener(flag: number): void {\n if (flag === EntityModifyFlags.Parent || flag === EntityUIModifyFlags.CanvasEnableInScene) {\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(this);\n }\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _onGroupModify(flags: GroupModifyFlags): void {\n if (flags & GroupModifyFlags.GlobalInteractive) {\n this._globalInteractiveDirty = true;\n }\n }\n\n /**\n * @internal\n */\n _getGlobalInteractive(): boolean {\n if (this._globalInteractiveDirty) {\n const group = this._getGroup();\n const globalInteractive = this._interactive && (!group || group._getGlobalInteractive());\n if (this._globalInteractive !== globalInteractive) {\n this._globalInteractive = globalInteractive;\n this._updateState(true);\n }\n this._globalInteractiveDirty = false;\n }\n return this._globalInteractive;\n }\n\n private _updateState(instant: boolean): void {\n const state = this._getInteractiveState();\n if (this._state !== state) {\n this._state = state;\n const transitions = this._transitions;\n for (let i = 0, n = transitions.length; i < n; i++) {\n transitions[i]._setState(state, instant);\n }\n }\n }\n\n private _getInteractiveState(): InteractiveState {\n if (!this._getGlobalInteractive()) {\n return InteractiveState.Disable;\n }\n if (this._isPointerDragging) {\n return InteractiveState.Pressed;\n } else {\n return this._isPointerInside ? InteractiveState.Hover : InteractiveState.Normal;\n }\n }\n}\n\nexport enum InteractiveState {\n Normal,\n Pressed,\n Hover,\n Disable\n}\n","import {\n BoolUpdateFlag,\n Camera,\n CameraModifyFlags,\n Component,\n DependentMode,\n DisorderedArray,\n Entity,\n EntityModifyFlags,\n Logger,\n MathUtil,\n Matrix,\n Ray,\n Vector2,\n Vector3,\n assignmentClone,\n deepClone,\n dependentComponents,\n ignoreClone\n} from \"@galacean/engine\";\nimport { Utils } from \"../Utils\";\nimport { CanvasRenderMode } from \"../enums/CanvasRenderMode\";\nimport { ResolutionAdaptationMode } from \"../enums/ResolutionAdaptationMode\";\nimport { UIHitResult } from \"../input/UIHitResult\";\nimport { IElement } from \"../interface/IElement\";\nimport { IGroupAble } from \"../interface/IGroupAble\";\nimport { UIGroup } from \"./UIGroup\";\nimport { UIRenderer } from \"./UIRenderer\";\nimport { UITransform } from \"./UITransform\";\nimport { UIInteractive } from \"./interactive/UIInteractive\";\n\n/**\n * The UI Canvas component serves as the root node for UI elements,\n * handling rendering and events based on it.\n */\n@dependentComponents(UITransform, DependentMode.AutoAdd)\nexport class UICanvas extends Component implements IElement {\n /** @internal */\n static _hierarchyCounter: number = 1;\n private static _tempGroupAbleList: IGroupAble[] = [];\n private static _tempVec3: Vector3 = new Vector3();\n private static _tempMat: Matrix = new Matrix();\n\n /** @internal */\n @ignoreClone\n _canvasIndex: number = -1;\n /** @internal */\n @ignoreClone\n _rootCanvas: UICanvas;\n /** @internal */\n @ignoreClone\n _indexInRootCanvas: number = -1;\n /** @internal */\n @ignoreClone\n _isRootCanvasDirty: boolean = false;\n /** @internal */\n @ignoreClone\n _rootCanvasListeningEntities: Entity[] = [];\n\n /** @internal */\n @ignoreClone\n _isRootCanvas: boolean = false;\n /** @internal */\n @ignoreClone\n _renderElement: any;\n /** @internal */\n @ignoreClone\n _sortDistance: number = 0;\n /** @internal */\n @ignoreClone\n _orderedRenderers: UIRenderer[] = [];\n /** @internal */\n @ignoreClone\n _realRenderMode: number = CanvasRealRenderMode.None;\n /** @internal */\n @ignoreClone\n _disorderedElements: DisorderedArray<IElement> = new DisorderedArray<IElement>();\n\n @ignoreClone\n private _renderMode = CanvasRenderMode.WorldSpace;\n @assignmentClone\n private _renderCamera: Camera;\n @ignoreClone\n private _cameraObserver: Camera;\n @assignmentClone\n private _resolutionAdaptationMode = ResolutionAdaptationMode.HeightAdaptation;\n @assignmentClone\n private _sortOrder: number = 0;\n @assignmentClone\n private _distance: number = 10;\n @deepClone\n private _referenceResolution: Vector2 = new Vector2(800, 600);\n @assignmentClone\n private _referenceResolutionPerUnit: number = 100;\n @ignoreClone\n private _hierarchyVersion: number = -1;\n @ignoreClone\n private _center: Vector3 = new Vector3();\n @ignoreClone\n private _centerDirtyFlag: BoolUpdateFlag;\n\n /**\n * The conversion ratio between reference resolution and unit for UI elements in this canvas.\n */\n get referenceResolutionPerUnit(): number {\n return this._referenceResolutionPerUnit;\n }\n\n set referenceResolutionPerUnit(value: number) {\n if (this._referenceResolutionPerUnit !== value) {\n this._referenceResolutionPerUnit = value;\n this._disorderedElements.forEach((element) => {\n element._onRootCanvasModify?.(RootCanvasModifyFlags.ReferenceResolutionPerUnit);\n });\n }\n }\n\n /**\n * The reference resolution of the UI canvas in `ScreenSpaceCamera` and `ScreenSpaceOverlay` mode.\n */\n get referenceResolution(): Vector2 {\n return this._referenceResolution;\n }\n\n set referenceResolution(value: Vector2) {\n const referenceResolution = this._referenceResolution;\n if (referenceResolution === value) return;\n (referenceResolution.x !== value.x || referenceResolution.y !== value.y) && referenceResolution.copyFrom(value);\n }\n\n /**\n * The rendering mode of the UI canvas.\n */\n get renderMode(): CanvasRenderMode {\n return this._renderMode;\n }\n\n set renderMode(mode: CanvasRenderMode) {\n const preMode = this._renderMode;\n if (preMode !== mode) {\n this._renderMode = mode;\n this._updateCameraObserver();\n this._setRealRenderMode(this._getRealRenderMode());\n }\n }\n\n /**\n * The camera used to render the UI canvas in `ScreenSpaceCamera` mode.\n * @remarks If set `ScreenSpaceCamera` but no corresponding camera is assigned, the actual rendering mode defaults to `ScreenSpaceOverlay`.\n */\n get renderCamera(): Camera {\n return this._renderCamera;\n }\n\n set renderCamera(value: Camera) {\n const preCamera = this._renderCamera;\n if (preCamera !== value) {\n value &&\n this._isSameOrChildEntity(value.entity) &&\n Logger.warn(\n \"Camera entity matching or nested within the canvas entity disables canvas auto-adaptation in ScreenSpaceCamera mode.\"\n );\n this._renderCamera = value;\n this._updateCameraObserver();\n const preRenderMode = this._realRenderMode;\n const curRenderMode = this._getRealRenderMode();\n if (preRenderMode === curRenderMode) {\n if (curRenderMode === CanvasRenderMode.ScreenSpaceCamera) {\n this._adapterPoseInScreenSpace();\n this._adapterSizeInScreenSpace();\n }\n } else {\n this._setRealRenderMode(curRenderMode);\n }\n }\n }\n\n /**\n * The screen resolution adaptation mode of the UI canvas in `ScreenSpaceCamera` and `ScreenSpaceOverlay` mode.\n */\n get resolutionAdaptationMode(): ResolutionAdaptationMode {\n return this._resolutionAdaptationMode;\n }\n\n set resolutionAdaptationMode(value: ResolutionAdaptationMode) {\n if (this._resolutionAdaptationMode !== value) {\n this._resolutionAdaptationMode = value;\n const realRenderMode = this._realRenderMode;\n if (\n realRenderMode === CanvasRenderMode.ScreenSpaceCamera ||\n realRenderMode === CanvasRenderMode.ScreenSpaceOverlay\n ) {\n this._adapterSizeInScreenSpace();\n }\n }\n }\n\n /**\n * The rendering order priority of the UI canvas in `ScreenSpaceOverlay` mode.\n */\n get sortOrder(): number {\n return this._sortOrder;\n }\n\n set sortOrder(value: number) {\n if (this._sortOrder !== value) {\n this._sortOrder = value;\n this._realRenderMode === CanvasRenderMode.ScreenSpaceOverlay &&\n // @ts-ignore\n (this.scene._componentsManager._overlayCanvasesSortingFlag = true);\n }\n }\n\n /**\n * The distance between the UI canvas and the camera in `ScreenSpaceCamera` mode.\n */\n get distance(): number {\n return this._distance;\n }\n\n set distance(value: number) {\n if (this._distance !== value) {\n this._distance = value;\n if (this._realRenderMode === CanvasRenderMode.ScreenSpaceCamera) {\n this._adapterPoseInScreenSpace();\n this._adapterSizeInScreenSpace();\n }\n }\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n this._onCanvasSizeListener = this._onCanvasSizeListener.bind(this);\n this._onCameraModifyListener = this._onCameraModifyListener.bind(this);\n this._onCameraTransformListener = this._onCameraTransformListener.bind(this);\n this._onReferenceResolutionChanged = this._onReferenceResolutionChanged.bind(this);\n // @ts-ignore\n this._referenceResolution._onValueChanged = this._onReferenceResolutionChanged;\n this._rootCanvasListener = this._rootCanvasListener.bind(this);\n this._centerDirtyFlag = entity.registerWorldChangeFlag();\n }\n\n /**\n * @internal\n */\n _raycast(ray: Ray, out: UIHitResult, distance: number = Number.MAX_SAFE_INTEGER): boolean {\n const renderers = this._getRenderers();\n for (let i = renderers.length - 1; i >= 0; i--) {\n const element = renderers[i];\n if (element.raycastEnabled && element._raycast(ray, out, distance)) {\n return true;\n }\n }\n out.component = null;\n out.entity = null;\n out.distance = 0;\n out.point.set(0, 0, 0);\n out.normal.set(0, 0, 0);\n return false;\n }\n\n /**\n * @internal\n */\n _getRootCanvas(): UICanvas {\n return this._rootCanvas;\n }\n\n /**\n * @internal\n */\n _canRender(camera: Camera): boolean {\n return this._renderMode !== CanvasRenderMode.ScreenSpaceCamera || this._renderCamera === camera;\n }\n\n /**\n * @internal\n */\n _prepareRender(context): void {\n const { engine, _realRenderMode: mode } = this;\n const { enableFrustumCulling, cullingMask, _frustum: frustum } = context.camera;\n const { frameCount } = engine.time;\n // @ts-ignore\n const renderElement = (this._renderElement = engine._renderElementPool.get());\n const virtualCamera = context.virtualCamera;\n this._updateSortDistance(virtualCamera.isOrthographic, virtualCamera.position, virtualCamera.forward);\n renderElement.set(this.sortOrder, this._sortDistance);\n const { width, height } = engine.canvas;\n const renderers = this._getRenderers();\n for (let i = 0, n = renderers.length; i < n; i++) {\n const renderer = renderers[i];\n // Filter by camera culling mask\n if (!(cullingMask & renderer.entity.layer)) {\n continue;\n }\n // Filter by camera frustum\n if (enableFrustumCulling) {\n switch (mode) {\n case CanvasRenderMode.ScreenSpaceOverlay:\n const { min, max } = renderer.bounds;\n if (min.x > width || max.x < 0 || min.y > height || max.y < 0) {\n continue;\n }\n break;\n case CanvasRenderMode.ScreenSpaceCamera:\n case CanvasRenderMode.WorldSpace:\n if (!frustum.intersectsBox(renderer.bounds)) {\n continue;\n }\n break;\n default:\n break;\n }\n }\n renderer._prepareRender(context);\n renderer._renderFrameCount = frameCount;\n }\n }\n\n /**\n * @internal\n */\n _updateSortDistance(isOrthographic: boolean, cameraPosition: Vector3, cameraForward: Vector3): void {\n switch (this._realRenderMode) {\n case CanvasRenderMode.ScreenSpaceOverlay:\n this._sortDistance = 0;\n break;\n case CanvasRenderMode.ScreenSpaceCamera:\n this._sortDistance = this._distance;\n break;\n case CanvasRenderMode.WorldSpace:\n const boundsCenter = this._getCenter();\n if (isOrthographic) {\n const distance = UICanvas._tempVec3;\n Vector3.subtract(boundsCenter, cameraPosition, distance);\n this._sortDistance = Vector3.dot(distance, cameraForward);\n } else {\n this._sortDistance = Vector3.distanceSquared(boundsCenter, cameraPosition);\n }\n break;\n }\n }\n\n // @ts-ignore\n override _onEnableInScene(): void {\n const entity = this.entity;\n // @ts-ignore\n entity._dispatchModify(EntityUIModifyFlags.CanvasEnableInScene, this);\n const rootCanvas = Utils.searchRootCanvasInParents(this);\n this._setIsRootCanvas(!rootCanvas);\n Utils.setRootCanvas(this, rootCanvas);\n }\n\n // @ts-ignore\n override _onDisableInScene(): void {\n this._setIsRootCanvas(false);\n Utils.cleanRootCanvas(this);\n }\n\n /**\n * @internal\n */\n @ignoreClone\n _rootCanvasListener(flag: number, param: any): void {\n if (this._isRootCanvas) {\n if (flag === EntityModifyFlags.Parent) {\n const rootCanvas = Utils.searchRootCanvasInParents(this);\n this._setIsRootCanvas(!rootCanvas);\n Utils.setRootCanvas(this, rootCanvas);\n } else if (flag === EntityUIModifyFlags.CanvasEnableInScene) {\n this._setIsRootCanvas(false);\n Utils.setRootCanvas(this, <UICanvas>param);\n }\n } else {\n if (flag === EntityModifyFlags.Parent) {\n const rootCanvas = Utils.searchRootCanvasInParents(this);\n this._setIsRootCanvas(!rootCanvas);\n Utils.setRootCanvas(this, rootCanvas);\n }\n }\n }\n\n /**\n * @internal\n */\n _cloneTo(target: UICanvas, srcRoot: Entity, targetRoot: Entity): void {\n target.renderMode = this._renderMode;\n }\n\n private _getRenderers(): UIRenderer[] {\n const { _orderedRenderers: renderers, entity } = this;\n const uiHierarchyVersion = entity._uiHierarchyVersion;\n if (this._hierarchyVersion !== uiHierarchyVersion) {\n renderers.length = this._walk(this.entity, renderers);\n UICanvas._tempGroupAbleList.length = 0;\n this._hierarchyVersion = uiHierarchyVersion;\n ++UICanvas._hierarchyCounter;\n }\n return renderers;\n }\n\n private _adapterPoseInScreenSpace(): void {\n const transform = this.entity.transform;\n const realRenderMode = this._realRenderMode;\n if (realRenderMode === CanvasRenderMode.ScreenSpaceCamera) {\n const cameraEntity = this._renderCamera.entity;\n if (!this._isSameOrChildEntity(cameraEntity)) {\n const { transform: cameraTransform } = cameraEntity;\n const { worldPosition: cameraWorldPosition, worldForward: cameraWorldForward } = cameraTransform;\n const distance = this._distance;\n transform.setWorldPosition(\n cameraWorldPosition.x + cameraWorldForward.x * distance,\n cameraWorldPosition.y + cameraWorldForward.y * distance,\n cameraWorldPosition.z + cameraWorldForward.z * distance\n );\n transform.worldRotationQuaternion.copyFrom(cameraTransform.worldRotationQuaternion);\n }\n } else {\n const { canvas } = this.engine;\n transform.setWorldPosition(canvas.width * 0.5, canvas.height * 0.5, 0);\n transform.worldRotationQuaternion.set(0, 0, 0, 1);\n }\n }\n\n private _adapterSizeInScreenSpace(): void {\n const transform = <UITransform>this.entity.transform;\n const realRenderMode = this._realRenderMode;\n const { x: width, y: height } = this._referenceResolution;\n let curWidth: number;\n let curHeight: number;\n if (realRenderMode === CanvasRenderMode.ScreenSpaceCamera) {\n const renderCamera = this._renderCamera;\n curHeight = renderCamera.isOrthographic\n ? renderCamera.orthographicSize * 2\n : 2 * (Math.tan(MathUtil.degreeToRadian(renderCamera.fieldOfView * 0.5)) * this._distance);\n curWidth = renderCamera.aspectRatio * curHeight;\n } else {\n const canvas = this.engine.canvas;\n curHeight = canvas.height;\n curWidth = canvas.width;\n }\n let expectX: number, expectY: number, expectZ: number;\n switch (this._resolutionAdaptationMode) {\n case ResolutionAdaptationMode.WidthAdaptation:\n expectX = expectY = expectZ = curWidth / width;\n break;\n case ResolutionAdaptationMode.HeightAdaptation:\n expectX = expectY = expectZ = curHeight / height;\n break;\n case ResolutionAdaptationMode.BothAdaptation:\n expectX = curWidth / width;\n expectY = curHeight / height;\n expectZ = (expectX + expectY) * 0.5;\n break;\n case ResolutionAdaptationMode.ExpandAdaptation:\n expectX = expectY = expectZ = Math.min(curWidth / width, curHeight / height);\n break;\n case ResolutionAdaptationMode.ShrinkAdaptation:\n expectX = expectY = expectZ = Math.max(curWidth / width, curHeight / height);\n break;\n default:\n break;\n }\n\n const worldMatrix = UICanvas._tempMat;\n Matrix.affineTransformation(\n UICanvas._tempVec3.set(expectX, expectY, expectZ),\n transform.worldRotationQuaternion,\n transform.worldPosition,\n worldMatrix\n );\n transform.worldMatrix = worldMatrix;\n transform.size.set(curWidth / expectX, curHeight / expectY);\n }\n\n private _walk(entity: Entity, renderers: UIRenderer[], depth = 0, group: UIGroup = null): number {\n // @ts-ignore\n const components: Component[] = entity._components;\n const tempGroupAbleList = UICanvas._tempGroupAbleList;\n let groupAbleCount = 0;\n for (let i = 0, n = components.length; i < n; i++) {\n const component = components[i];\n if (!component.enabled) continue;\n if (component instanceof UIRenderer) {\n renderers[depth] = component;\n ++depth;\n component._isRootCanvasDirty && Utils.setRootCanvas(component, this);\n if (component._isGroupDirty) {\n tempGroupAbleList[groupAbleCount++] = component;\n }\n } else if (component instanceof UIInteractive) {\n component._isRootCanvasDirty && Utils.setRootCanvas(component, this);\n if (component._isGroupDirty) {\n tempGroupAbleList[groupAbleCount++] = component;\n }\n } else if (component instanceof UIGroup) {\n component._isRootCanvasDirty && Utils.setRootCanvas(component, this);\n component._isGroupDirty && Utils.setGroup(component, group);\n group = component;\n }\n }\n for (let i = 0; i < groupAbleCount; i++) {\n Utils.setGroup(tempGroupAbleList[i], group);\n }\n const children = entity.children;\n for (let i = 0, n = children.length; i < n; i++) {\n const child = children[i];\n child.isActive && (depth = this._walk(child, renderers, depth, group));\n }\n return depth;\n }\n\n private _updateCameraObserver(): void {\n const camera =\n this._isRootCanvas && this._renderMode === CanvasRenderMode.ScreenSpaceCamera ? this._renderCamera : null;\n const preCamera = this._cameraObserver;\n if (preCamera !== camera) {\n this._cameraObserver = camera;\n if (preCamera) {\n // @ts-ignore\n preCamera.entity._updateFlagManager.removeListener(this._onCameraTransformListener);\n // @ts-ignore\n preCamera._unRegisterModifyListener(this._onCameraModifyListener);\n }\n if (camera) {\n // @ts-ignore\n camera.entity._updateFlagManager.addListener(this._onCameraTransformListener);\n // @ts-ignore\n camera._registerModifyListener(this._onCameraModifyListener);\n }\n }\n }\n\n @ignoreClone\n private _onCameraModifyListener(flag: CameraModifyFlags): void {\n if (this._realRenderMode === CanvasRenderMode.ScreenSpaceCamera) {\n switch (flag) {\n case CameraModifyFlags.ProjectionType:\n case CameraModifyFlags.AspectRatio:\n this._adapterSizeInScreenSpace();\n break;\n case CameraModifyFlags.FieldOfView:\n !this._renderCamera.isOrthographic && this._adapterSizeInScreenSpace();\n break;\n case CameraModifyFlags.OrthographicSize:\n this._renderCamera.isOrthographic && this._adapterSizeInScreenSpace();\n break;\n case CameraModifyFlags.DisableInScene:\n this._setRealRenderMode(CanvasRenderMode.ScreenSpaceOverlay);\n break;\n default:\n break;\n }\n } else {\n flag === CameraModifyFlags.EnableInScene && this._setRealRenderMode(CanvasRenderMode.ScreenSpaceCamera);\n }\n }\n\n @ignoreClone\n private _onCameraTransformListener(): void {\n this._realRenderMode === CanvasRenderMode.ScreenSpaceCamera && this._adapterPoseInScreenSpace();\n }\n\n private _addCanvasListener(): void {\n // @ts-ignore\n this.engine.canvas._sizeUpdateFlagManager.addListener(this._onCanvasSizeListener);\n }\n\n private _removeCanvasListener(): void {\n // @ts-ignore\n this.engine.canvas._sizeUpdateFlagManager.removeListener(this._onCanvasSizeListener);\n }\n\n @ignoreClone\n private _onCanvasSizeListener(): void {\n const { canvas } = this.engine;\n this.entity.transform.setWorldPosition(canvas.width * 0.5, canvas.height * 0.5, 0);\n this._adapterSizeInScreenSpace();\n }\n\n @ignoreClone\n private _onReferenceResolutionChanged(): void {\n const realRenderMode = this._realRenderMode;\n if (\n realRenderMode === CanvasRenderMode.ScreenSpaceOverlay ||\n realRenderMode === CanvasRenderMode.ScreenSpaceCamera\n ) {\n this._adapterSizeInScreenSpace();\n }\n }\n\n private _setIsRootCanvas(isRootCanvas: boolean): void {\n if (this._isRootCanvas !== isRootCanvas) {\n this._isRootCanvas = isRootCanvas;\n this._updateCameraObserver();\n this._setRealRenderMode(this._getRealRenderMode());\n if (isRootCanvas) {\n this.entity._updateUIHierarchyVersion(UICanvas._hierarchyCounter);\n } else {\n const { _disorderedElements: disorderedElements } = this;\n disorderedElements.forEach((element: IElement) => {\n if (element instanceof UICanvas) {\n const rootCanvas = Utils.searchRootCanvasInParents(element);\n element._setIsRootCanvas(!rootCanvas);\n Utils.setRootCanvas(element, rootCanvas);\n } else {\n Utils.setRootCanvasDirty(this);\n Utils.setGroupDirty(<IGroupAble>element);\n }\n });\n disorderedElements.length = 0;\n disorderedElements.garbageCollection();\n this._orderedRenderers.length = 0;\n }\n }\n }\n\n private _getCenter(): Vector3 {\n if (this._centerDirtyFlag.flag) {\n const center = this._center;\n const uiTransform = <UITransform>this.entity.transform;\n const { pivot, size } = uiTransform;\n center.set((0.5 - pivot.x) * size.x, (0.5 - pivot.y) * size.y, 0);\n Vector3.transformCoordinate(center, uiTransform.worldMatrix, center);\n this._centerDirtyFlag.flag = false;\n }\n return this._center;\n }\n\n private _getRealRenderMode(): number {\n if (this._isRootCanvas) {\n const mode = this._renderMode;\n if (mode === CanvasRenderMode.ScreenSpaceCamera && !this._renderCamera?.enabled) {\n return CanvasRenderMode.ScreenSpaceOverlay;\n } else {\n return mode;\n }\n } else {\n return CanvasRealRenderMode.None;\n }\n }\n\n private _setRealRenderMode(curRealMode: number): void {\n const preRealMode = this._realRenderMode;\n if (preRealMode !== curRealMode) {\n this._realRenderMode = curRealMode;\n // @ts-ignore\n const componentsManager = this.scene._componentsManager;\n switch (preRealMode) {\n case CanvasRenderMode.ScreenSpaceOverlay:\n this._removeCanvasListener();\n case CanvasRenderMode.ScreenSpaceCamera:\n case CanvasRenderMode.WorldSpace:\n componentsManager.removeUICanvas(this, preRealMode === CanvasRenderMode.ScreenSpaceOverlay);\n break;\n default:\n break;\n }\n switch (curRealMode) {\n case CanvasRenderMode.ScreenSpaceOverlay:\n this._addCanvasListener();\n case CanvasRenderMode.ScreenSpaceCamera:\n this._adapterPoseInScreenSpace();\n this._adapterSizeInScreenSpace();\n case CanvasRenderMode.WorldSpace:\n componentsManager.addUICanvas(this, curRealMode === CanvasRenderMode.ScreenSpaceOverlay);\n break;\n default:\n break;\n }\n }\n }\n\n private _isSameOrChildEntity(cameraEntity: Entity): boolean {\n const canvasEntity = this.entity;\n while (cameraEntity) {\n if (cameraEntity === canvasEntity) return true;\n cameraEntity = cameraEntity.parent;\n }\n return false;\n }\n}\n\n/**\n * @remarks Extends `CanvasRenderMode`.\n */\nenum CanvasRealRenderMode {\n None = 4\n}\n\n/**\n * @remarks Extends `EntityModifyFlags`.\n */\nexport enum EntityUIModifyFlags {\n CanvasEnableInScene = 0x4,\n GroupEnableInScene = 0x8\n}\n\nexport enum RootCanvasModifyFlags {\n None = 0x0,\n ReferenceResolutionPerUnit = 0x1,\n All = 0x1\n}\n","import { PointerEventData, SafeLoopArray } from \"@galacean/engine\";\nimport { UIInteractive } from \"../interactive/UIInteractive\";\n\nexport class Button extends UIInteractive {\n private _listeners: SafeLoopArray<IUIListener> = new SafeLoopArray<IUIListener>();\n\n /**\n * Add a listening function for click.\n * @param listener - The listening function\n */\n addClicked(listener: (event: PointerEventData) => void): void {\n this._listeners.push({ fn: listener });\n }\n\n /**\n * Remove a listening function of click.\n * @param listener - The listening function\n */\n removeClicked(listener: (event: PointerEventData) => void): void {\n this._listeners.findAndRemove((value) => (value.fn === listener ? (value.destroyed = true) : false));\n }\n\n override onPointerClick(event: PointerEventData): void {\n if (!this._getGlobalInteractive()) return;\n const listeners = this._listeners.getLoopArray();\n for (let i = 0, n = listeners.length; i < n; i++) {\n const listener = listeners[i];\n !listener.destroyed && listener.fn(event);\n }\n }\n\n override onDestroy(): void {\n super.onDestroy();\n this._listeners.findAndRemove((value) => (value.destroyed = true));\n }\n}\n\nexport interface IUIListener {\n fn: (event: PointerEventData) => void;\n destroyed?: boolean;\n}\n","import {\n BoundingBox,\n Entity,\n ISpriteAssembler,\n ISpriteRenderer,\n MathUtil,\n RenderQueueFlags,\n RendererUpdateFlags,\n SimpleSpriteAssembler,\n SlicedSpriteAssembler,\n Sprite,\n SpriteDrawMode,\n SpriteModifyFlags,\n SpriteTileMode,\n TiledSpriteAssembler,\n assignmentClone,\n ignoreClone\n} from \"@galacean/engine\";\nimport { CanvasRenderMode } from \"../../enums/CanvasRenderMode\";\nimport { RootCanvasModifyFlags } from \"../UICanvas\";\nimport { UIRenderer, UIRendererUpdateFlags } from \"../UIRenderer\";\nimport { UITransform, UITransformModifyFlags } from \"../UITransform\";\n\n/**\n * UI element that renders an image.\n */\nexport class Image extends UIRenderer implements ISpriteRenderer {\n @ignoreClone\n private _sprite: Sprite = null;\n @ignoreClone\n private _drawMode: SpriteDrawMode;\n @ignoreClone\n private _assembler: ISpriteAssembler;\n @assignmentClone\n private _tileMode: SpriteTileMode = SpriteTileMode.Continuous;\n @assignmentClone\n private _tiledAdaptiveThreshold: number = 0.5;\n\n /**\n * The draw mode of the image.\n */\n get drawMode(): SpriteDrawMode {\n return this._drawMode;\n }\n\n set drawMode(value: SpriteDrawMode) {\n if (this._drawMode !== value) {\n this._drawMode = value;\n switch (value) {\n case SpriteDrawMode.Simple:\n this._assembler = SimpleSpriteAssembler;\n break;\n case SpriteDrawMode.Sliced:\n this._assembler = SlicedSpriteAssembler;\n break;\n case SpriteDrawMode.Tiled:\n this._assembler = TiledSpriteAssembler;\n break;\n default:\n break;\n }\n this._assembler.resetData(this);\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n }\n }\n\n /**\n * The tiling mode of the image. (Only works in tiled mode.)\n */\n get tileMode(): SpriteTileMode {\n return this._tileMode;\n }\n\n set tileMode(value: SpriteTileMode) {\n if (this._tileMode !== value) {\n this._tileMode = value;\n if (this.drawMode === SpriteDrawMode.Tiled) {\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n }\n }\n }\n\n /**\n * Stretch Threshold in Tile Adaptive Mode, specified in normalized. (Only works in tiled adaptive mode.)\n */\n get tiledAdaptiveThreshold(): number {\n return this._tiledAdaptiveThreshold;\n }\n\n set tiledAdaptiveThreshold(value: number) {\n if (value !== this._tiledAdaptiveThreshold) {\n value = MathUtil.clamp(value, 0, 1);\n this._tiledAdaptiveThreshold = value;\n if (this.drawMode === SpriteDrawMode.Tiled) {\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n }\n }\n }\n\n /**\n * The Sprite to render.\n */\n get sprite(): Sprite {\n return this._sprite;\n }\n\n set sprite(value: Sprite | null) {\n const lastSprite = this._sprite;\n if (lastSprite !== value) {\n if (lastSprite) {\n this._addResourceReferCount(lastSprite, -1);\n // @ts-ignore\n lastSprite._updateFlagManager.removeListener(this._onSpriteChange);\n }\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n if (value) {\n this._addResourceReferCount(value, 1);\n // @ts-ignore\n value._updateFlagManager.addListener(this._onSpriteChange);\n this.shaderData.setTexture(UIRenderer._textureProperty, value.texture);\n } else {\n this.shaderData.setTexture(UIRenderer._textureProperty, null);\n }\n this._sprite = value;\n }\n }\n\n /**\n * @internal\n */\n constructor(entity: Entity) {\n super(entity);\n this.drawMode = SpriteDrawMode.Simple;\n this.setMaterial(this._engine._getUIDefaultMaterial());\n this._onSpriteChange = this._onSpriteChange.bind(this);\n }\n\n /**\n * @internal\n */\n _onRootCanvasModify(flag: RootCanvasModifyFlags): void {\n if (flag & RootCanvasModifyFlags.ReferenceResolutionPerUnit) {\n const drawMode = this._drawMode;\n if (drawMode === SpriteDrawMode.Tiled) {\n this._dirtyUpdateFlag |= ImageUpdateFlags.All;\n } else if (drawMode === SpriteDrawMode.Sliced) {\n this._dirtyUpdateFlag |= RendererUpdateFlags.WorldVolume;\n }\n }\n }\n\n /**\n * @internal\n */\n _cloneTo(target: Image, srcRoot: Entity, targetRoot: Entity): void {\n // @ts-ignore\n super._cloneTo(target, srcRoot, targetRoot);\n target.sprite = this._sprite;\n target.drawMode = this._drawMode;\n }\n\n protected override _updateBounds(worldBounds: BoundingBox): void {\n const sprite = this._sprite;\n const rootCanvas = this._getRootCanvas();\n if (sprite && rootCanvas) {\n const transform = <UITransform>this._transformEntity.transform;\n const { size } = transform;\n this._assembler.updatePositions(\n this,\n transform.worldMatrix,\n size.x,\n size.y,\n transform.pivot,\n false,\n false,\n rootCanvas.referenceResolutionPerUnit\n );\n } else {\n const { worldPosition } = this._transformEntity.transform;\n worldBounds.min.copyFrom(worldPosition);\n worldBounds.max.copyFrom(worldPosition);\n }\n }\n\n protected override _render(context): void {\n const { _sprite: sprite } = this;\n const transform = <UITransform>this._transformEntity.transform;\n const { x: width, y: height } = transform.size;\n if (!sprite?.texture || !width || !height) {\n return;\n }\n\n let material = this.getMaterial();\n if (!material) {\n return;\n }\n // @todo: This question needs to be raised rather than hidden.\n if (material.destroyed) {\n material = this._engine._getUIDefaultMaterial();\n }\n\n const alpha = this._getGlobalAlpha();\n if (this._color.a * alpha <= 0) {\n return;\n }\n\n let { _dirtyUpdateFlag: dirtyUpdateFlag } = this;\n const canvas = this._getRootCanvas();\n // Update position\n if (dirtyUpdateFlag & RendererUpdateFlags.WorldVolume) {\n this._assembler.updatePositions(\n this,\n transform.worldMatrix,\n width,\n height,\n transform.pivot,\n false,\n false,\n canvas.referenceResolutionPerUnit\n );\n dirtyUpdateFlag &= ~RendererUpdateFlags.WorldVolume;\n }\n\n // Update uv\n if (dirtyUpdateFlag & ImageUpdateFlags.UV) {\n this._assembler.updateUVs(this);\n dirtyUpdateFlag &= ~ImageUpdateFlags.UV;\n }\n\n // Update color\n if (dirtyUpdateFlag & UIRendererUpdateFlags.Color) {\n this._assembler.updateColor(this, alpha);\n dirtyUpdateFlag &= ~UIRendererUpdateFlags.Color;\n }\n\n this._dirtyUpdateFlag = dirtyUpdateFlag;\n // Init sub render element.\n const { engine } = context.camera;\n const subRenderElement = engine._subRenderElementPool.get();\n const subChunk = this._subChunk;\n subRenderElement.set(this, material, subChunk.chunk.primitive, subChunk.subMesh, this.sprite.texture, subChunk);\n if (canvas._realRenderMode === CanvasRenderMode.ScreenSpaceOverlay) {\n subRenderElement.shaderPasses = material.shader.subShaders[0].passes;\n subRenderElement.renderQueueFlags = RenderQueueFlags.All;\n }\n canvas._renderElement.addSubRenderElement(subRenderElement);\n }\n\n @ignoreClone\n protected override _onTransformChanged(type: number): void {\n if (type & UITransformModifyFlags.Size && this._drawMode === SpriteDrawMode.Tiled) {\n this._dirtyUpdateFlag |= ImageUpdateFlags.All;\n }\n this._dirtyUpdateFlag |= RendererUpdateFlags.WorldVolume;\n }\n\n protected override _onDestroy(): void {\n const sprite = this._sprite;\n if (sprite) {\n this._addResourceReferCount(sprite, -1);\n // @ts-ignore\n sprite._updateFlagManager.removeListener(this._onSpriteChange);\n this._sprite = null;\n }\n super._onDestroy();\n }\n\n @ignoreClone\n private _onSpriteChange(type: SpriteModifyFlags): void {\n switch (type) {\n case SpriteModifyFlags.texture:\n this.shaderData.setTexture(UIRenderer._textureProperty, this.sprite.texture);\n break;\n case SpriteModifyFlags.size:\n switch (this._drawMode) {\n case SpriteDrawMode.Sliced:\n this._dirtyUpdateFlag |= RendererUpdateFlags.WorldVolume;\n break;\n case SpriteDrawMode.Tiled:\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n break;\n default:\n break;\n }\n break;\n case SpriteModifyFlags.border:\n switch (this._drawMode) {\n case SpriteDrawMode.Sliced:\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeAndUV;\n break;\n case SpriteDrawMode.Tiled:\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeUVAndColor;\n break;\n default:\n break;\n }\n break;\n case SpriteModifyFlags.region:\n case SpriteModifyFlags.atlasRegionOffset:\n this._dirtyUpdateFlag |= ImageUpdateFlags.WorldVolumeAndUV;\n break;\n case SpriteModifyFlags.atlasRegion:\n this._dirtyUpdateFlag |= ImageUpdateFlags.UV;\n break;\n case SpriteModifyFlags.destroy:\n this.sprite = null;\n break;\n }\n }\n}\n\n/**\n * @remarks Extends `UIRendererUpdateFlags`.\n */\nenum ImageUpdateFlags {\n /** UV. */\n UV = 0x4,\n /** Automatic Size. */\n AutomaticSize = 0x8,\n /** WorldVolume and UV. */\n WorldVolumeAndUV = 0x5,\n /** WorldVolume, UV and Color. */\n WorldVolumeUVAndColor = 0x7,\n /** All. */\n All = 0xf\n}\n","import {\n BoundingBox,\n CharRenderInfo,\n Engine,\n Entity,\n Font,\n FontStyle,\n ITextRenderer,\n OverflowMode,\n RenderQueueFlags,\n RendererUpdateFlags,\n ShaderData,\n ShaderDataGroup,\n ShaderProperty,\n SubFont,\n TextHorizontalAlignment,\n TextUtils,\n TextVerticalAlignment,\n Texture2D,\n Vector3,\n assignmentClone,\n ignoreClone\n} from \"@galacean/engine\";\nimport { CanvasRenderMode } from \"../../enums/CanvasRenderMode\";\nimport { RootCanvasModifyFlags } from \"../UICanvas\";\nimport { UIRenderer, UIRendererUpdateFlags } from \"../UIRenderer\";\nimport { UITransform, UITransformModifyFlags } from \"../UITransform\";\n\n/**\n * UI component used to render text.\n */\nexport class Text extends UIRenderer implements ITextRenderer {\n private static _textTextureProperty = ShaderProperty.getByName(\"renderElement_TextTexture\");\n private static _worldPositions = [new Vector3(), new Vector3(), new Vector3(), new Vector3()];\n private static _charRenderInfos: CharRenderInfo[] = [];\n\n @ignoreClone\n private _textChunks = Array<TextChunk>();\n @ignoreClone\n private _subFont: SubFont = null;\n @assignmentClone\n private _text: string = \"\";\n @ignoreClone\n private _localBounds: BoundingBox = new BoundingBox();\n @assignmentClone\n private _font: Font = null;\n @assignmentClone\n private _fontSize: number = 24;\n @assignmentClone\n private _fontStyle: FontStyle = FontStyle.None;\n @assignmentClone\n private _lineSpacing: number = 0;\n @assignmentClone\n private _horizontalAlignment: TextHorizontalAlignment = TextHorizontalAlignment.Center;\n @assignmentClone\n private _verticalAlignment: TextVerticalAlignment = TextVerticalAlignment.Center;\n @assignmentClone\n private _enableWrapping: boolean = false;\n @assignmentClone\n private _overflowMode: OverflowMode = OverflowMode.Overflow;\n\n /**\n * Rendering string for the Text.\n */\n get text(): string {\n return this._text;\n }\n\n set text(value: string) {\n value = value || \"\";\n if (this._text !== value) {\n this._text = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * The font of the Text.\n */\n get font(): Font {\n return this._font;\n }\n\n set font(value: Font) {\n const lastFont = this._font;\n if (lastFont !== value) {\n lastFont && this._addResourceReferCount(lastFont, -1);\n value && this._addResourceReferCount(value, 1);\n this._font = value;\n this._setDirtyFlagTrue(DirtyFlag.Font);\n }\n }\n\n /**\n * The font size of the Text.\n */\n get fontSize(): number {\n return this._fontSize;\n }\n\n set fontSize(value: number) {\n if (this._fontSize !== value) {\n this._fontSize = value;\n this._setDirtyFlagTrue(DirtyFlag.Font);\n }\n }\n\n /**\n * The style of the font.\n */\n get fontStyle(): FontStyle {\n return this._fontStyle;\n }\n\n set fontStyle(value: FontStyle) {\n if (this.fontStyle !== value) {\n this._fontStyle = value;\n this._setDirtyFlagTrue(DirtyFlag.Font);\n }\n }\n\n /**\n * The space between two lines (in pixels).\n */\n get lineSpacing(): number {\n return this._lineSpacing;\n }\n\n set lineSpacing(value: number) {\n if (this._lineSpacing !== value) {\n this._lineSpacing = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * The horizontal alignment.\n */\n get horizontalAlignment(): TextHorizontalAlignment {\n return this._horizontalAlignment;\n }\n\n set horizontalAlignment(value: TextHorizontalAlignment) {\n if (this._horizontalAlignment !== value) {\n this._horizontalAlignment = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * The vertical alignment.\n */\n get verticalAlignment(): TextVerticalAlignment {\n return this._verticalAlignment;\n }\n\n set verticalAlignment(value: TextVerticalAlignment) {\n if (this._verticalAlignment !== value) {\n this._verticalAlignment = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * Whether wrap text to next line when exceeds the width of the container.\n */\n get enableWrapping(): boolean {\n return this._enableWrapping;\n }\n\n set enableWrapping(value: boolean) {\n if (this._enableWrapping !== value) {\n this._enableWrapping = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * The overflow mode.\n */\n get overflowMode(): OverflowMode {\n return this._overflowMode;\n }\n\n set overflowMode(value: OverflowMode) {\n if (this._overflowMode !== value) {\n this._overflowMode = value;\n this._setDirtyFlagTrue(DirtyFlag.Position);\n }\n }\n\n /**\n * The mask layer the sprite renderer belongs to.\n */\n get maskLayer(): number {\n return this._maskLayer;\n }\n\n set maskLayer(value: number) {\n this._maskLayer = value;\n }\n\n /**\n * The bounding volume of the TextRenderer.\n */\n override get bounds(): BoundingBox {\n if (this._isTextNoVisible()) {\n if (this._isContainDirtyFlag(RendererUpdateFlags.WorldVolume)) {\n const localBounds = this._localBounds;\n localBounds.min.set(0, 0, 0);\n localBounds.max.set(0, 0, 0);\n this._updateBounds(this._bounds);\n this._setDirtyFlagFalse(RendererUpdateFlags.WorldVolume);\n }\n return this._bounds;\n }\n this._isContainDirtyFlag(DirtyFlag.SubFont) && this._resetSubFont();\n this._isContainDirtyFlag(DirtyFlag.LocalPositionBounds) && this._updateLocalData();\n this._isContainDirtyFlag(DirtyFlag.WorldPosition) && this._updatePosition();\n this._isContainDirtyFlag(RendererUpdateFlags.WorldVolume) && this._updateBounds(this._bounds);\n this._setDirtyFlagFalse(DirtyFlag.Font);\n\n return this._bounds;\n }\n\n constructor(entity: Entity) {\n super(entity);\n const { engine } = this;\n // @ts-ignore\n this.font = engine._textDefaultFont;\n this.raycastEnabled = false;\n // @ts-ignore\n this.setMaterial(engine._basicResources.textDefaultMaterial);\n }\n\n /**\n * @internal\n */\n protected override _onDestroy(): void {\n if (this._font) {\n this._addResourceReferCount(this._font, -1);\n this._font = null;\n }\n\n super._onDestroy();\n\n this._freeTextChunks();\n this._textChunks = null;\n\n this._subFont && (this._subFont = null);\n }\n\n // @ts-ignore\n override _cloneTo(target: Text, srcRoot: Entity, targetRoot: Entity): void {\n // @ts-ignore\n super._cloneTo(target, srcRoot, targetRoot);\n target.font = this._font;\n target._subFont = this._subFont;\n }\n\n /**\n * @internal\n */\n _isContainDirtyFlag(type: number): boolean {\n return (this._dirtyUpdateFlag & type) != 0;\n }\n\n /**\n * @internal\n */\n _setDirtyFlagTrue(type: number): void {\n this._dirtyUpdateFlag |= type;\n }\n\n /**\n * @internal\n */\n _setDirtyFlagFalse(type: number): void {\n this._dirtyUpdateFlag &= ~type;\n }\n\n /**\n * @internal\n */\n _getSubFont(): SubFont {\n if (!this._subFont) {\n this._resetSubFont();\n }\n return this._subFont;\n }\n\n /**\n * @internal\n */\n _onRootCanvasModify(flag: RootCanvasModifyFlags): void {\n if (flag === RootCanvasModifyFlags.ReferenceResolutionPerUnit) {\n this._setDirtyFlagTrue(DirtyFlag.LocalPositionBounds);\n }\n }\n\n protected override _updateBounds(worldBounds: BoundingBox): void {\n const transform = <UITransform>this._transformEntity.transform;\n const { x: width, y: height } = transform.size;\n const { x: pivotX, y: pivotY } = transform.pivot;\n worldBounds.min.set(-width * pivotX, -height * pivotY, 0);\n worldBounds.max.set(width * (1 - pivotX), height * (1 - pivotY), 0);\n BoundingBox.transform(worldBounds, this._transformEntity.transform.worldMatrix, worldBounds);\n }\n\n protected override _render(context): void {\n if (this._isTextNoVisible()) {\n return;\n }\n\n if (this._isContainDirtyFlag(DirtyFlag.SubFont)) {\n this._resetSubFont();\n this._setDirtyFlagFalse(DirtyFlag.SubFont);\n }\n\n const canvas = this._getRootCanvas();\n if (this._isContainDirtyFlag(DirtyFlag.LocalPositionBounds)) {\n this._updateLocalData();\n this._setDirtyFlagTrue(DirtyFlag.LocalPositionBounds);\n }\n\n if (this._isContainDirtyFlag(DirtyFlag.WorldPosition)) {\n this._updatePosition();\n this._setDirtyFlagFalse(DirtyFlag.WorldPosition);\n }\n\n if (this._isContainDirtyFlag(UIRendererUpdateFlags.Color)) {\n this._updateColor();\n this._setDirtyFlagFalse(UIRendererUpdateFlags.Color);\n }\n\n const engine = context.camera.engine;\n const textSubRenderElementPool = engine._textSubRenderElementPool;\n const material = this.getMaterial();\n const renderElement = canvas._renderElement;\n const textChunks = this._textChunks;\n const isOverlay = canvas._realRenderMode === CanvasRenderMode.ScreenSpaceOverlay;\n for (let i = 0, n = textChunks.length; i < n; ++i) {\n const { subChunk, texture } = textChunks[i];\n const subRenderElement = textSubRenderElementPool.get();\n subRenderElement.set(this, material, subChunk.chunk.primitive, subChunk.subMesh, texture, subChunk);\n // @ts-ignore\n subRenderElement.shaderData ||= new ShaderData(ShaderDataGroup.RenderElement);\n subRenderElement.shaderData.setTexture(Text._textTextureProperty, texture);\n if (isOverlay) {\n subRenderElement.shaderPasses = material.shader.subShaders[0].passes;\n subRenderElement.renderQueueFlags = RenderQueueFlags.All;\n }\n renderElement.addSubRenderElement(subRenderElement);\n }\n }\n\n private _resetSubFont(): void {\n const font = this._font;\n // @ts-ignore\n this._subFont = font._getSubFont(this.fontSize, this.fontStyle);\n this._subFont.nativeFontString = TextUtils.getNativeFontString(font.name, this.fontSize, this.fontStyle);\n }\n\n private _updatePosition(): void {\n const e = this._transformEntity.transform.worldMatrix.elements;\n\n // prettier-ignore\n const e0 = e[0], e1 = e[1], e2 = e[2],\n e4 = e[4], e5 = e[5], e6 = e[6],\n e12 = e[12], e13 = e[13], e14 = e[14];\n\n const up = UIRenderer._tempVec31.set(e4, e5, e6);\n const right = UIRenderer._tempVec30.set(e0, e1, e2);\n\n const worldPositions = Text._worldPositions;\n const [worldPosition0, worldPosition1, worldPosition2, worldPosition3] = worldPositions;\n const textChunks = this._textChunks;\n for (let i = 0, n = textChunks.length; i < n; ++i) {\n const { subChunk, charRenderInfos } = textChunks[i];\n for (let j = 0, m = charRenderInfos.length; j < m; ++j) {\n const charRenderInfo = charRenderInfos[j];\n const { localPositions } = charRenderInfo;\n const { x: topLeftX, y: topLeftY } = localPositions;\n\n // Top-Left\n worldPosition0.set(\n topLeftX * e0 + topLeftY * e4 + e12,\n topLeftX * e1 + topLeftY * e5 + e13,\n topLeftX * e2 + topLeftY * e6 + e14\n );\n\n // Right offset\n Vector3.scale(right, localPositions.z - topLeftX, worldPosition1);\n // Top-Right\n Vector3.add(worldPosition0, worldPosition1, worldPosition1);\n // Up offset\n Vector3.scale(up, localPositions.w - topLeftY, worldPosition2);\n // Bottom-Left\n Vector3.add(worldPosition0, worldPosition2, worldPosition3);\n // Bottom-Right\n Vector3.add(worldPosition1, worldPosition2, worldPosition2);\n\n const vertices = subChunk.chunk.vertices;\n for (let k = 0, o = subChunk.vertexArea.start + charRenderInfo.indexInChunk * 36; k < 4; ++k, o += 9) {\n worldPositions[k].copyToArray(vertices, o);\n }\n }\n }\n }\n\n private _updateColor(): void {\n const { r, g, b, a } = this._color;\n const finalAlpha = a * this._getGlobalAlpha();\n const textChunks = this._textChunks;\n for (let i = 0, n = textChunks.length; i < n; ++i) {\n const subChunk = textChunks[i].subChunk;\n const vertexArea = subChunk.vertexArea;\n const vertexCount = vertexArea.size / 9;\n const vertices = subChunk.chunk.vertices;\n for (let j = 0, o = vertexArea.start + 5; j < vertexCount; ++j, o += 9) {\n vertices[o] = r;\n vertices[o + 1] = g;\n vertices[o + 2] = b;\n vertices[o + 3] = finalAlpha;\n }\n }\n }\n\n private _updateLocalData(): void {\n // @ts-ignore\n const pixelsPerResolution = Engine._pixelsPerUnit / this._getRootCanvas().referenceResolutionPerUnit;\n const { min, max } = this._localBounds;\n const charRenderInfos = Text._charRenderInfos;\n const charFont = this._getSubFont();\n const { size, pivot } = <UITransform>this._transformEntity.transform;\n let rendererWidth = size.x;\n let rendererHeight = size.y;\n const offsetWidth = rendererWidth * (0.5 - pivot.x);\n const offsetHeight = rendererHeight * (0.5 - pivot.y);\n const textMetrics = this.enableWrapping\n ? TextUtils.measureTextWithWrap(\n this,\n rendererWidth * pixelsPerResolution,\n rendererHeight * pixelsPerResolution,\n this._lineSpacing * pixelsPerResolution\n )\n : TextUtils.measureTextWithoutWrap(\n this,\n rendererHeight * pixelsPerResolution,\n this._lineSpacing * pixelsPerResolution\n );\n const { height, lines, lineWidths, lineHeight, lineMaxSizes } = textMetrics;\n // @ts-ignore\n const charRenderInfoPool = this.engine._charRenderInfoPool;\n const linesLen = lines.length;\n let renderElementCount = 0;\n\n if (linesLen > 0) {\n const { horizontalAlignment } = this;\n const pixelsPerUnitReciprocal = 1.0 / pixelsPerResolution;\n rendererWidth *= pixelsPerResolution;\n rendererHeight *= pixelsPerResolution;\n const halfRendererWidth = rendererWidth * 0.5;\n const halfLineHeight = lineHeight * 0.5;\n\n let startY = 0;\n const topDiff = lineHeight * 0.5 - lineMaxSizes[0].ascent;\n const bottomDiff = lineHeight * 0.5 - lineMaxSizes[linesLen - 1].descent - 1;\n switch (this.verticalAlignment) {\n case TextVerticalAlignment.Top:\n startY = rendererHeight * 0.5 - halfLineHeight + topDiff;\n break;\n case TextVerticalAlignment.Center:\n startY = height * 0.5 - halfLineHeight - (bottomDiff - topDiff) * 0.5;\n break;\n case TextVerticalAlignment.Bottom:\n startY = height - rendererHeight * 0.5 - halfLineHeight - bottomDiff;\n break;\n }\n\n let firstLine = -1;\n let minX = Number.MAX_SAFE_INTEGER;\n let minY = Number.MAX_SAFE_INTEGER;\n let maxX = Number.MIN_SAFE_INTEGER;\n let maxY = Number.MIN_SAFE_INTEGER;\n for (let i = 0; i < linesLen; ++i) {\n const lineWidth = lineWidths[i];\n if (lineWidth > 0) {\n const line = lines[i];\n let startX = 0;\n let firstRow = -1;\n if (firstLine < 0) {\n firstLine = i;\n }\n switch (horizontalAlignment) {\n case TextHorizontalAlignment.Left:\n startX = -halfRendererWidth;\n break;\n case TextHorizontalAlignment.Center:\n startX = -lineWidth * 0.5;\n break;\n case TextHorizontalAlignment.Right:\n startX = halfRendererWidth - lineWidth;\n break;\n }\n for (let j = 0, n = line.length; j < n; ++j) {\n const char = line[j];\n const charInfo = charFont._getCharInfo(char);\n if (charInfo.h > 0) {\n firstRow < 0 && (firstRow = j);\n const charRenderInfo = (charRenderInfos[renderElementCount++] = charRenderInfoPool.get());\n const { localPositions } = charRenderInfo;\n charRenderInfo.texture = charFont._getTextureByIndex(charInfo.index);\n charRenderInfo.uvs = charInfo.uvs;\n const { w, ascent, descent } = charInfo;\n const left = (startX + offsetWidth) * pixelsPerUnitReciprocal;\n const right = (startX + w + offsetWidth) * pixelsPerUnitReciprocal;\n const top = (startY + ascent + offsetHeight) * pixelsPerUnitReciprocal;\n const bottom = (startY - descent + offsetHeight) * pixelsPerUnitReciprocal;\n localPositions.set(left, top, right, bottom);\n i === firstLine && (maxY = Math.max(maxY, top));\n minY = Math.min(minY, bottom);\n j === firstRow && (minX = Math.min(minX, left));\n maxX = Math.max(maxX, right);\n }\n startX += charInfo.xAdvance + charInfo.offsetX;\n }\n }\n startY -= lineHeight;\n }\n if (firstLine < 0) {\n min.set(0, 0, 0);\n max.set(0, 0, 0);\n } else {\n min.set(minX, minY, 0);\n max.set(maxX, maxY, 0);\n }\n } else {\n min.set(0, 0, 0);\n max.set(0, 0, 0);\n }\n\n charFont._getLastIndex() > 0 &&\n charRenderInfos.sort((a, b) => {\n return a.texture.instanceId - b.texture.instanceId;\n });\n\n this._freeTextChunks();\n\n if (renderElementCount === 0) {\n return;\n }\n\n const textChunks = this._textChunks;\n let curTextChunk = new TextChunk();\n textChunks.push(curTextChunk);\n\n const chunkMaxVertexCount = this._getChunkManager().maxVertexCount;\n const curCharRenderInfo = charRenderInfos[0];\n let curTexture = curCharRenderInfo.texture;\n curTextChunk.texture = curTexture;\n let curCharInfos = curTextChunk.charRenderInfos;\n curCharInfos.push(curCharRenderInfo);\n\n for (let i = 1; i < renderElementCount; ++i) {\n const charRenderInfo = charRenderInfos[i];\n const texture = charRenderInfo.texture;\n if (curTexture !== texture || curCharInfos.length * 4 + 4 > chunkMaxVertexCount) {\n this._buildChunk(curTextChunk, curCharInfos.length);\n\n curTextChunk = new TextChunk();\n textChunks.push(curTextChunk);\n curTexture = texture;\n curTextChunk.texture = texture;\n curCharInfos = curTextChunk.charRenderInfos;\n }\n curCharInfos.push(charRenderInfo);\n }\n const charLength = curCharInfos.length;\n if (charLength > 0) {\n this._buildChunk(curTextChunk, charLength);\n }\n charRenderInfos.length = 0;\n }\n\n @ignoreClone\n protected override _onTransformChanged(type: number): void {\n if (type & UITransformModifyFlags.Size || type & UITransformModifyFlags.Pivot) {\n this._dirtyUpdateFlag |= DirtyFlag.LocalPositionBounds;\n }\n super._onTransformChanged(type);\n this._setDirtyFlagTrue(DirtyFlag.WorldPosition);\n }\n\n private _isTextNoVisible(): boolean {\n const size = (<UITransform>this._transformEntity.transform).size;\n return (\n this._text === \"\" ||\n this._fontSize === 0 ||\n (this.enableWrapping && size.x <= 0) ||\n (this.overflowMode === OverflowMode.Truncate && size.y <= 0) ||\n !this._getRootCanvas()\n );\n }\n\n private _buildChunk(textChunk: TextChunk, count: number) {\n const { r, g, b, a } = this.color;\n const tempIndices = CharRenderInfo.triangles;\n const tempIndicesLength = tempIndices.length;\n const subChunk = (textChunk.subChunk = this._getChunkManager().allocateSubChunk(count * 4));\n const vertices = subChunk.chunk.vertices;\n const indices = (subChunk.indices = []);\n const charRenderInfos = textChunk.charRenderInfos;\n for (let i = 0, ii = 0, io = 0, vo = subChunk.vertexArea.start + 3; i < count; ++i, io += 4) {\n const charRenderInfo = charRenderInfos[i];\n charRenderInfo.indexInChunk = i;\n\n // Set indices\n for (let j = 0; j < tempIndicesLength; ++j) {\n indices[ii++] = tempIndices[j] + io;\n }\n\n // Set uv and color for vertices\n for (let j = 0; j < 4; ++j, vo += 9) {\n const uv = charRenderInfo.uvs[j];\n uv.copyToArray(vertices, vo);\n vertices[vo + 2] = r;\n vertices[vo + 3] = g;\n vertices[vo + 4] = b;\n vertices[vo + 5] = a;\n }\n }\n\n return subChunk;\n }\n\n private _freeTextChunks(): void {\n const textChunks = this._textChunks;\n // @ts-ignore\n const charRenderInfoPool = this.engine._charRenderInfoPool;\n const manager = this._getChunkManager();\n for (let i = 0, n = textChunks.length; i < n; ++i) {\n const textChunk = textChunks[i];\n const { charRenderInfos } = textChunk;\n for (let j = 0, m = charRenderInfos.length; j < m; ++j) {\n charRenderInfoPool.return(charRenderInfos[j]);\n }\n charRenderInfos.length = 0;\n manager.freeSubChunk(textChunk.subChunk);\n textChunk.subChunk = null;\n textChunk.texture = null;\n }\n textChunks.length = 0;\n }\n}\n\nclass TextChunk {\n charRenderInfos = new Array<CharRenderInfo>();\n texture: Texture2D;\n subChunk;\n}\n\n/**\n * @remarks Extends `UIRendererUpdateFlags`.\n */\nenum DirtyFlag {\n SubFont = 0x4,\n LocalPositionBounds = 0x8,\n WorldPosition = 0x10,\n\n // LocalPositionBounds | WorldPosition | WorldVolume\n Position = 0x19,\n Font = SubFont | Position\n}\n","import { Color, ReferResource, Sprite } from \"@galacean/engine\";\nimport { UIRenderer } from \"../../UIRenderer\";\nimport { InteractiveState, UIInteractive } from \"../UIInteractive\";\n\n/**\n * The transition behavior of UIInteractive.\n */\nexport abstract class Transition<\n T extends TransitionValueType = TransitionValueType,\n K extends UIRenderer = UIRenderer\n> {\n /** @internal */\n _interactive: UIInteractive;\n\n protected _target: K;\n protected _normal: T;\n protected _pressed: T;\n protected _hover: T;\n protected _disabled: T;\n protected _duration: number = 0;\n protected _countDown: number = 0;\n protected _initialValue: T;\n protected _finalValue: T;\n protected _currentValue: T;\n protected _finalState: InteractiveState = InteractiveState.Normal;\n\n /**\n * The normal state of the transition.\n */\n get normal(): T {\n return this._normal;\n }\n\n set normal(value: T) {\n const preNormal = this._normal;\n if (preNormal !== value) {\n this._normal = value;\n this._onStateValueDirty(InteractiveState.Normal, preNormal, value);\n }\n }\n\n /**\n * The pressed state of the transition.\n */\n get pressed(): T {\n return this._pressed;\n }\n\n set pressed(value: T) {\n const prePressed = this._pressed;\n if (prePressed !== value) {\n this._pressed = value;\n this._onStateValueDirty(InteractiveState.Pressed, prePressed, value);\n }\n }\n\n /**\n * The hover state of the transition.\n */\n get hover(): T {\n return this._hover;\n }\n\n set hover(value: T) {\n const preHover = this._hover;\n if (preHover !== value) {\n this._hover = value;\n this._onStateValueDirty(InteractiveState.Hover, preHover, value);\n }\n }\n\n /**\n * The disabled state of the transition.\n */\n get disabled(): T {\n return this._disabled;\n }\n\n set disabled(value: T) {\n const preDisabled = this._disabled;\n if (preDisabled !== value) {\n this._disabled = value;\n this._onStateValueDirty(InteractiveState.Disable, preDisabled, value);\n }\n }\n\n /**\n * The target of the transition.\n */\n get target(): K {\n return this._target;\n }\n\n set target(value: K) {\n if (this._target !== value) {\n this._target = value;\n value?.enabled && this._applyValue(this._currentValue);\n }\n }\n\n /**\n * The duration of the transition.\n */\n get duration(): number {\n return this._duration;\n }\n\n set duration(value: number) {\n if (value < 0) value = 0;\n const preDuration = this._duration;\n if (preDuration !== value) {\n this._duration = value;\n if (this._countDown > 0) {\n this._countDown = value * (1 - this._countDown / preDuration);\n this._updateValue();\n }\n }\n }\n\n destroy(): void {\n this._interactive?.removeTransition(this);\n this._target = null;\n }\n\n /**\n * @internal\n */\n _setState(state: InteractiveState, instant: boolean) {\n this._finalState = state;\n const value = this._getValueByState(state);\n if (instant) {\n this._countDown = 0;\n this._initialValue = this._finalValue = value;\n } else {\n this._countDown = this._duration;\n this._initialValue = this._getTargetValueCopy();\n this._finalValue = value;\n }\n this._updateValue();\n }\n\n /**\n * @internal\n */\n _onUpdate(delta: number): void {\n if (this._countDown > 0) {\n this._countDown -= delta;\n this._updateValue();\n }\n }\n\n protected abstract _getTargetValueCopy(): T;\n protected abstract _updateCurrentValue(srcValue: T, destValue: T, weight: number): void;\n protected abstract _applyValue(value: T): void;\n\n protected _onStateValueDirty(state: InteractiveState, preValue: T, curValue: T): void {\n // @ts-ignore\n preValue instanceof ReferResource && preValue._addReferCount(-1);\n // @ts-ignore\n curValue instanceof ReferResource && curValue._addReferCount(1);\n if (this._finalState === state) {\n this._finalValue = curValue;\n this._updateValue();\n }\n }\n\n protected _updateValue() {\n const weight = this._duration ? 1 - this._countDown / this._duration : 1;\n this._updateCurrentValue(this._initialValue, this._finalValue, weight);\n this._target?.enabled && this._applyValue(this._currentValue);\n }\n\n private _getValueByState(state: InteractiveState): T {\n switch (state) {\n case InteractiveState.Normal:\n return this.normal;\n case InteractiveState.Pressed:\n return this.pressed;\n case InteractiveState.Hover:\n return this.hover;\n case InteractiveState.Disable:\n return this.disabled;\n }\n }\n}\n\nexport type TransitionValueType = number | Sprite | Color;\n","import { Color } from \"@galacean/engine\";\nimport { UIRenderer } from \"../../UIRenderer\";\nimport { InteractiveState } from \"../UIInteractive\";\nimport { Transition } from \"./Transition\";\n\n/**\n * Color transition.\n */\nexport class ColorTransition extends Transition<Color, UIRenderer> {\n private _color: Color = new Color();\n constructor() {\n super();\n this._normal = new Color(1, 1, 1, 1);\n this._hover = new Color(0.9130986517934192, 0.9130986517934192, 0.9130986517934192, 1);\n this._pressed = new Color(0.5775804404296506, 0.5775804404296506, 0.5775804404296506, 1);\n this._disabled = new Color(0.5775804404296506, 0.5775804404296506, 0.5775804404296506, 1);\n this._duration = 0.1;\n this._currentValue = new Color();\n\n this._onNormalValueChanged = this._onNormalValueChanged.bind(this);\n this._onHoverValueChanged = this._onHoverValueChanged.bind(this);\n this._onPressedValueChanged = this._onPressedValueChanged.bind(this);\n this._onDisabledValueChanged = this._onDisabledValueChanged.bind(this);\n\n // @ts-ignore\n this._normal._onValueChanged = this._onNormalValueChanged;\n // @ts-ignore\n this._hover._onValueChanged = this._onHoverValueChanged;\n // @ts-ignore\n this._pressed._onValueChanged = this._onPressedValueChanged;\n // @ts-ignore\n this._disabled._onValueChanged = this._onDisabledValueChanged;\n }\n\n private _onNormalValueChanged(): void {\n if (this._finalState === InteractiveState.Normal) {\n this._finalValue = this._normal;\n this._updateValue();\n }\n }\n\n private _onHoverValueChanged(): void {\n if (this._finalState === InteractiveState.Hover) {\n this._finalValue = this._hover;\n this._updateValue();\n }\n }\n\n private _onPressedValueChanged(): void {\n if (this._finalState === InteractiveState.Pressed) {\n this._finalValue = this._pressed;\n this._updateValue();\n }\n }\n\n private _onDisabledValueChanged(): void {\n if (this._finalState === InteractiveState.Disable) {\n this._finalValue = this._disabled;\n this._updateValue();\n }\n }\n\n protected _getTargetValueCopy(): Color {\n const color = this._color;\n color.copyFrom(this._target?.color || this._normal);\n return color;\n }\n\n protected override _updateCurrentValue(srcValue: Color, destValue: Color, weight: number): void {\n if (weight >= 1) {\n this._currentValue.copyFrom(destValue);\n } else {\n Color.lerp(srcValue, destValue, weight, this._currentValue);\n }\n }\n\n protected override _applyValue(value: Color): void {\n this._target.color = value;\n }\n}\n","import { UIRenderer } from \"../../UIRenderer\";\nimport { Transition } from \"./Transition\";\n\n/**\n * Scale transition.\n */\nexport class ScaleTransition extends Transition<number, UIRenderer> {\n constructor() {\n super();\n this._normal = 1;\n this._hover = 1;\n this._pressed = 1.2;\n this._disabled = 1;\n this._duration = 0.1;\n }\n\n protected _getTargetValueCopy(): number {\n return this._target?.entity.transform.scale.x || this._normal;\n }\n\n protected override _updateCurrentValue(srcValue: number, destValue: number, weight: number): void {\n this._currentValue = weight >= 1 ? destValue : (destValue - srcValue) * weight + srcValue;\n }\n\n protected override _applyValue(value: number): void {\n this._target.entity.transform.setScale(value, value, value);\n }\n}\n","import { Sprite } from \"@galacean/engine\";\nimport { Image } from \"../../advanced/Image\";\nimport { Transition } from \"./Transition\";\n\n/**\n * Sprite transition.\n */\nexport class SpriteTransition extends Transition<Sprite, Image> {\n /**\n * @internal\n */\n override destroy(): void {\n super.destroy();\n if (this._normal) {\n // @ts-ignore\n this._normal._addReferCount(-1);\n this._normal = null;\n }\n if (this._hover) {\n // @ts-ignore\n this._hover._addReferCount(-1);\n this._hover = null;\n }\n if (this._pressed) {\n // @ts-ignore\n this._pressed._addReferCount(-1);\n this._pressed = null;\n }\n if (this._disabled) {\n // @ts-ignore\n this._disabled._addReferCount(-1);\n this._disabled = null;\n }\n this._initialValue = this._currentValue = this._finalValue = null;\n this._target = null;\n }\n\n protected _getTargetValueCopy(): Sprite {\n return this._target?.sprite;\n }\n\n protected override _updateCurrentValue(srcValue: Sprite, destValue: Sprite, weight: number): void {\n this._currentValue = weight >= 1 ? destValue : srcValue;\n }\n\n protected override _applyValue(value: Sprite): void {\n this._target.sprite = value;\n }\n}\n","import { Entity, Vector3 } from \"@galacean/engine\";\nimport { UIRenderer } from \"../component/UIRenderer\";\n\n/**\n * @internal\n */\nexport class UIHitResult {\n entity: Entity = null;\n distance: number = 0;\n point: Vector3 = new Vector3();\n normal: Vector3 = new Vector3();\n component: UIRenderer = null;\n}\n","import {\n CameraClearFlags,\n DisorderedArray,\n Entity,\n Pointer,\n PointerEventData,\n PointerEventEmitter,\n Scene,\n registerPointerEventEmitter\n} from \"@galacean/engine\";\nimport { UICanvas } from \"..\";\nimport { UIRenderer } from \"../component/UIRenderer\";\nimport { UIHitResult } from \"./UIHitResult\";\n\n/**\n * @internal\n */\n@registerPointerEventEmitter()\nexport class UIPointerEventEmitter extends PointerEventEmitter {\n private static _MAX_PATH_DEPTH = 2048;\n private static _tempSet: Set<number> = new Set();\n private static _path: Entity[] = [];\n private static _tempArray0: Entity[] = [];\n private static _tempArray1: Entity[] = [];\n\n private _enteredPath: Entity[] = [];\n private _pressedPath: Entity[] = [];\n private _draggedPath: Entity[] = [];\n\n _init(): void {\n this._hitResult = new UIHitResult();\n }\n\n override processRaycast(scenes: readonly Scene[], pointer: Pointer): void {\n const { _tempRay: ray } = PointerEventEmitter;\n const hitResult = this._hitResult;\n const { position } = pointer;\n const { x, y } = position;\n for (let i = scenes.length - 1; i >= 0; i--) {\n const scene = scenes[i];\n if (!scene.isActive || scene.destroyed) continue;\n // @ts-ignore\n const componentsManager = scene._componentsManager;\n // Overlay Canvas\n let canvasElements: DisorderedArray<UICanvas> = componentsManager._overlayCanvases;\n // Screen to world ( Assume that world units have a one-to-one relationship with pixel units )\n ray.origin.set(position.x, scene.engine.canvas.height - position.y, 1);\n ray.direction.set(0, 0, -1);\n for (let j = canvasElements.length - 1; j >= 0; j--) {\n if (canvasElements.get(j)._raycast(ray, hitResult)) {\n this._updateRaycast((<UIHitResult>hitResult).component, pointer);\n return;\n }\n }\n\n const cameras = componentsManager._activeCameras;\n for (let j = cameras.length - 1; j >= 0; j--) {\n const camera = cameras.get(j);\n if (camera.renderTarget) continue;\n const { pixelViewport } = camera;\n if (\n x < pixelViewport.x ||\n y < pixelViewport.y ||\n x > pixelViewport.x + pixelViewport.width ||\n y > pixelViewport.y + pixelViewport.height\n ) {\n continue;\n }\n camera.screenPointToRay(pointer.position, ray);\n\n // Other canvases\n const isOrthographic = camera.isOrthographic;\n const { worldPosition: cameraPosition, worldForward: cameraForward } = camera.entity.transform;\n // Sort by rendering order\n canvasElements = componentsManager._canvases;\n for (let k = 0, n = canvasElements.length; k < n; k++) {\n canvasElements.get(k)._updateSortDistance(isOrthographic, cameraPosition, cameraForward);\n }\n canvasElements.sort((a, b) => a.sortOrder - b.sortOrder || a._sortDistance - b._sortDistance);\n for (let k = 0, n = canvasElements.length; k < n; k++) {\n canvasElements.get(k)._canvasIndex = k;\n }\n const farClipPlane = camera.farClipPlane;\n // Post-rendering first detection\n for (let k = 0, n = canvasElements.length; k < n; k++) {\n const canvas = canvasElements.get(k);\n if (!canvas._canRender(camera)) continue;\n if (canvas._raycast(ray, hitResult, farClipPlane)) {\n this._updateRaycast((<UIHitResult>hitResult).component, pointer);\n return;\n }\n }\n if (camera.clearFlags & CameraClearFlags.Color) {\n this._updateRaycast(null);\n return;\n }\n }\n this._updateRaycast(null);\n }\n }\n\n override processDrag(pointer: Pointer): void {\n const draggedPath = this._draggedPath;\n if (draggedPath.length > 0) {\n this._bubble(draggedPath, pointer, this._fireDrag);\n }\n }\n\n override processDown(pointer: Pointer): void {\n const enteredPath = this._enteredPath;\n const pressedPath = this._pressedPath;\n const draggedPath = this._draggedPath;\n const length = (draggedPath.length = pressedPath.length = enteredPath.length);\n if (length > 0) {\n for (let i = 0; i < length; i++) {\n pressedPath[i] = draggedPath[i] = enteredPath[i];\n }\n this._bubble(pressedPath, pointer, this._fireDown);\n this._bubble(draggedPath, pointer, this._fireBeginDrag);\n }\n }\n\n override processUp(pointer: Pointer): void {\n const enteredPath = this._enteredPath;\n const pressedPath = this._pressedPath;\n if (enteredPath.length > 0) {\n this._bubble(enteredPath, pointer, this._fireUp);\n if (pressedPath.length > 0) {\n const common = UIPointerEventEmitter._tempArray0;\n if (this._findCommonInPath(enteredPath, pressedPath, common)) {\n const eventData = this._createEventData(pointer);\n for (let i = 0, n = common.length; i < n; i++) {\n this._fireClick(common[i], eventData);\n }\n common.length = 0;\n }\n }\n }\n\n pressedPath.length = 0;\n\n const draggedPath = this._draggedPath;\n if (draggedPath.length > 0) {\n this._bubble(draggedPath, pointer, this._fireEndDrag);\n draggedPath.length = 0;\n }\n\n if (enteredPath.length > 0) {\n this._bubble(enteredPath, pointer, this._fireDrop);\n }\n }\n\n override processLeave(pointer: Pointer): void {\n const enteredPath = this._enteredPath;\n if (enteredPath.length > 0) {\n this._bubble(enteredPath, pointer, this._fireExit);\n enteredPath.length = 0;\n }\n\n const draggedPath = this._draggedPath;\n if (draggedPath.length > 0) {\n this._bubble(draggedPath, pointer, this._fireEndDrag);\n draggedPath.length = 0;\n }\n\n this._pressedPath.length = 0;\n }\n\n override dispose(): void {\n this._enteredPath.length = this._pressedPath.length = this._draggedPath.length = 0;\n }\n\n private _updateRaycast(element: UIRenderer, pointer: Pointer = null): void {\n const enteredPath = this._enteredPath;\n const curPath = this._composedPath(element, UIPointerEventEmitter._path);\n const add = UIPointerEventEmitter._tempArray0;\n const del = UIPointerEventEmitter._tempArray1;\n if (this._findDiffInPath(enteredPath, curPath, add, del)) {\n const eventData = this._createEventData(pointer);\n for (let i = 0, n = add.length; i < n; i++) {\n this._fireEnter(add[i], eventData);\n }\n for (let i = 0, n = del.length; i < n; i++) {\n this._fireExit(del[i], eventData);\n }\n\n const length = (enteredPath.length = curPath.length);\n for (let i = 0; i < length; i++) {\n enteredPath[i] = curPath[i];\n }\n add.length = del.length = 0;\n }\n curPath.length = 0;\n }\n\n private _composedPath(element: UIRenderer, path: Entity[]): Entity[] {\n if (!element) {\n path.length = 0;\n return path;\n }\n let entity = (path[0] = element.entity);\n let i = 1;\n const rootEntity = element._getRootCanvas().entity;\n for (; i < UIPointerEventEmitter._MAX_PATH_DEPTH && !!entity && entity !== rootEntity; i++) {\n entity = path[i] = entity.parent;\n }\n path.length = i;\n return path;\n }\n\n private _findCommonInPath(prePath: Entity[], curPath: Entity[], common: Entity[]): boolean {\n const idSet = UIPointerEventEmitter._tempSet;\n idSet.clear();\n for (let i = 0, n = prePath.length; i < n; i++) {\n idSet.add(prePath[i].instanceId);\n }\n let hasCommon = false;\n for (let i = 0, n = curPath.length; i < n; i++) {\n const entity = curPath[i];\n if (idSet.has(entity.instanceId)) {\n common.push(entity);\n hasCommon = true;\n }\n }\n return hasCommon;\n }\n\n private _findDiffInPath(prePath: Entity[], curPath: Entity[], add: Entity[], del: Entity[]): boolean {\n const idSet = UIPointerEventEmitter._tempSet;\n idSet.clear();\n let changed = false;\n for (let i = 0, n = prePath.length; i < n; i++) {\n idSet.add(prePath[i].instanceId);\n }\n for (let i = 0, n = curPath.length; i < n; i++) {\n const entity = curPath[i];\n if (!idSet.has(entity.instanceId)) {\n add.push(entity);\n changed = true;\n }\n }\n idSet.clear();\n for (let i = 0, n = curPath.length; i < n; i++) {\n idSet.add(curPath[i].instanceId);\n }\n for (let i = 0, n = prePath.length; i < n; i++) {\n const entity = prePath[i];\n if (!idSet.has(entity.instanceId)) {\n del.push(entity);\n changed = true;\n }\n }\n return changed;\n }\n\n private _bubble(path: Entity[], pointer: Pointer, fireEvent: FireEvent): void {\n const length = path.length;\n if (length <= 0) return;\n const eventData = this._createEventData(pointer);\n for (let i = 0; i < length; i++) {\n fireEvent(path[i], eventData);\n }\n }\n}\n\ntype FireEvent = (entity: Entity, eventData: PointerEventData) => void;\n","import {\n BlendFactor,\n BlendOperation,\n CullMode,\n Engine,\n Entity,\n Font,\n IClass,\n Loader,\n Material,\n PipelineStage,\n ReflectionParser,\n RenderQueueType,\n Shader,\n ShaderPass\n} from \"@galacean/engine\";\nimport * as GUIComponent from \"./component\";\nimport uiDefaultFs from \"./shader/uiDefault.fs.glsl\";\nimport uiDefaultVs from \"./shader/uiDefault.vs.glsl\";\nexport * from \"./component\";\nexport { CanvasRenderMode } from \"./enums/CanvasRenderMode\";\nexport { ResolutionAdaptationMode } from \"./enums/ResolutionAdaptationMode\";\nexport { UIPointerEventEmitter } from \"./input/UIPointerEventEmitter\";\n\nexport class EngineExtension {\n _uiDefaultMaterial: Material;\n _getUIDefaultMaterial(): Material {\n if (!this._uiDefaultMaterial) {\n const shader =\n Shader.find(\"ui\") ??\n Shader.create(\"ui\", [\n new ShaderPass(\"Forward\", uiDefaultVs, uiDefaultFs, {\n pipelineStage: PipelineStage.Forward\n })\n ]);\n // @ts-ignore\n const material = new Material(this, shader);\n const renderState = material.renderState;\n const target = renderState.blendState.targetBlendState;\n target.enabled = true;\n target.sourceColorBlendFactor = BlendFactor.SourceAlpha;\n target.destinationColorBlendFactor = BlendFactor.OneMinusSourceAlpha;\n target.sourceAlphaBlendFactor = BlendFactor.One;\n target.destinationAlphaBlendFactor = BlendFactor.OneMinusSourceAlpha;\n target.colorBlendOperation = target.alphaBlendOperation = BlendOperation.Add;\n renderState.depthState.writeEnabled = false;\n renderState.rasterState.cullMode = CullMode.Off;\n renderState.renderQueueType = RenderQueueType.Transparent;\n material.isGCIgnored = true;\n this._uiDefaultMaterial = material;\n }\n return this._uiDefaultMaterial;\n }\n}\n\nexport class EntityExtension {\n _uiHierarchyVersion = 0;\n _updateUIHierarchyVersion(version: number): void {\n if (this._uiHierarchyVersion !== version) {\n this._uiHierarchyVersion = version;\n // @ts-ignore\n this.parent?._updateUIHierarchyVersion(version);\n }\n }\n}\n\ndeclare module \"@galacean/engine\" {\n interface Engine {\n // @internal\n _uiDefaultMaterial: Material;\n // @internal\n _getUIDefaultMaterial(): Material;\n }\n interface Entity {\n // @internal\n _uiHierarchyVersion: number;\n // @internal\n _updateUIHierarchyVersion(version: number): void;\n }\n}\n\nfunction ApplyMixins(derivedCtor: any, baseCtors: any[]): void {\n baseCtors.forEach((baseCtor) => {\n Object.getOwnPropertyNames(baseCtor.prototype).forEach((name) => {\n Object.defineProperty(\n derivedCtor.prototype,\n name,\n Object.getOwnPropertyDescriptor(baseCtor.prototype, name) || Object.create(null)\n );\n });\n });\n}\n\nApplyMixins(Engine, [EngineExtension]);\nApplyMixins(Entity, [EntityExtension]);\n\nReflectionParser.registerCustomParseComponent(\"Text\", async (instance: any, item: Omit<IClass, \"class\">) => {\n const { props } = item;\n if (!props.font) {\n // @ts-ignore\n instance.font = Font.createFromOS(instance.engine, props.fontFamily || \"Arial\");\n }\n return instance;\n});\n\n/**\n * Register GUI components for the editor.\n */\nexport function registerGUI() {\n for (let key in GUIComponent) {\n Loader.registerClass(key, GUIComponent[key]);\n }\n}\n"],"names":["UIGroup","entity","_indexInGroup","_indexInRootCanvas","_disorderedElements","DisorderedArray","_globalAlpha","_globalInteractive","_alpha","_interactive","_ignoreParentGroup","_rootCanvasListeningEntities","_groupListeningEntities","_isRootCanvasDirty","_isGroupDirty","_groupDirtyFlags","_rootCanvasListener","bind","_groupListener","_getGlobalAlpha","_isContainDirtyFlag","parentGroup","_getGroup","_setDirtyFlagFalse","_getGlobalInteractive","_onEnableInScene","Utils","setRootCanvasDirty","setGroupDirty","_dispatchModify","EntityUIModifyFlags","GroupEnableInScene","_onDisableInScene","cleanRootCanvas","cleanGroup","disorderedElements","forEach","element","length","garbageCollection","_getRootCanvas","setRootCanvas","searchRootCanvasInParents","_rootCanvas","setGroup","searchGroupInParents","_group","flag","EntityModifyFlags","Parent","CanvasEnableInScene","_onGroupModify","flags","isPass","_isContainDirtyFlags","_setDirtyFlagTrue","targetDirtyFlags","type","ignoreParentGroup","value","interactive","alpha","Math","max","min","Component","GroupModifyFlags","_registerRootCanvas","_onRootCanvasModify","RootCanvasModifyFlags","All","rootCanvas","fromEntity","UICanvas","parent","toEntity","_registerListener","_unRegisterListener","components","_components","i","n","component","enabled","_isRootCanvas","_registerGroup","group","rootCanvasParent","canvas","preCanvas","replaced","deleteByIndex","add","preGroup","root","listener","listeningEntities","count","preEntity","_unRegisterModifyListener","_registerModifyListener","CanvasRenderMode","ResolutionAdaptationMode","UITransform","_size","Vector2","_pivot","_onValueChanged","_onSizeChange","_onPivotChange","_cloneTo","target","srcRoot","targetRoot","size","copyFrom","pivot","_entity","_updateFlagManager","dispatch","x","y","Transform","UITransformModifyFlags","UIRenderer","raycastPadding","Vector4","_raycastEnabled","_color","Color","_dirtyUpdateFlag","RendererUpdateFlags","WorldVolume","_onColorChanged","_canBatch","elementA","elementB","BatchUtils","canBatchSprite","_batch","batchFor2D","_updateTransformShaderData","context","onlyMVP","batched","_prepareRender","_renderFrameCount","engine","time","frameCount","_update","_render","ShaderMacroCollection","unionCollection","camera","_globalShaderMacro","shaderData","_macroCollection","_overrideUpdate","scene","_componentsManager","addOnUpdateRenderers","_updateUIHierarchyVersion","_hierarchyCounter","removeOnUpdateRenderers","Child","GlobalAlpha","_getChunkManager","_batcherManager","primitiveChunkManagerUI","_raycast","ray","out","distance","Number","MAX_SAFE_INTEGER","plane","_tempPlane","transform","_transformEntity","normal","worldForward","Vector3","dot","worldPosition","curDistance","intersectPlane","hitPointWorld","getPoint","_tempVec30","worldMatrixInv","_tempMat","Matrix","invert","worldMatrix","localPosition","_tempVec31","transformCoordinate","_hitTest","point","uiTransform","width","height","pivotX","pivotY","paddingLeft","z","paddingRight","w","paddingTop","paddingBottom","_onDestroy","_subChunk","freeSubChunk","color","raycastEnabled","Renderer","Plane","_textureProperty","ShaderProperty","getByName","AutoAdd","UIRendererUpdateFlags","UIInteractive","_globalInteractiveDirty","_transitions","_state","_isPointerInside","_isPointerDragging","addTransition","transition","removeTransition","push","_setState","transitions","lastOneIndex","clearTransitions","onUpdate","deltaTime","_onUpdate","onPointerBeginDrag","_updateState","onPointerEndDrag","onPointerEnter","onPointerExit","onDestroy","destroy","srcTransition","dstTransition","constructor","pressed","hover","disabled","transitionTarget","paths","_targetTempPath","success","Entity","_getEntityHierarchyPath","_getEntityByHierarchyPath","getComponent","GlobalInteractive","globalInteractive","instant","state","_getInteractiveState","Script","Array","InteractiveState","_canvasIndex","_sortDistance","_orderedRenderers","_realRenderMode","_renderMode","WorldSpace","_resolutionAdaptationMode","HeightAdaptation","_sortOrder","_distance","_referenceResolution","_referenceResolutionPerUnit","_hierarchyVersion","_center","_onCanvasSizeListener","_onCameraModifyListener","_onCameraTransformListener","_onReferenceResolutionChanged","_centerDirtyFlag","registerWorldChangeFlag","renderers","_getRenderers","set","_canRender","ScreenSpaceCamera","_renderCamera","mode","enableFrustumCulling","cullingMask","_frustum","frustum","renderElement","_renderElement","_renderElementPool","get","virtualCamera","_updateSortDistance","isOrthographic","position","forward","sortOrder","renderer","layer","ScreenSpaceOverlay","bounds","intersectsBox","cameraPosition","cameraForward","boundsCenter","_getCenter","_tempVec3","subtract","distanceSquared","_setIsRootCanvas","param","renderMode","uiHierarchyVersion","_uiHierarchyVersion","_walk","_tempGroupAbleList","_adapterPoseInScreenSpace","realRenderMode","cameraEntity","_isSameOrChildEntity","cameraTransform","cameraWorldForward","setWorldPosition","cameraWorldPosition","worldRotationQuaternion","_adapterSizeInScreenSpace","curWidth","curHeight","renderCamera","orthographicSize","tan","MathUtil","degreeToRadian","fieldOfView","aspectRatio","expectX","expectY","expectZ","WidthAdaptation","BothAdaptation","ExpandAdaptation","ShrinkAdaptation","affineTransformation","depth","tempGroupAbleList","groupAbleCount","children","child","isActive","_updateCameraObserver","preCamera","_cameraObserver","removeListener","addListener","CameraModifyFlags","ProjectionType","AspectRatio","FieldOfView","OrthographicSize","DisableInScene","_setRealRenderMode","EnableInScene","_addCanvasListener","_sizeUpdateFlagManager","_removeCanvasListener","isRootCanvas","_getRealRenderMode","center","curRealMode","preRealMode","componentsManager","removeUICanvas","addUICanvas","canvasEntity","referenceResolutionPerUnit","referenceResolution","preMode","Logger","warn","preRenderMode","curRenderMode","resolutionAdaptationMode","_overlayCanvasesSortingFlag","Button","_listeners","SafeLoopArray","addClicked","fn","removeClicked","findAndRemove","destroyed","onPointerClick","event","listeners","getLoopArray","Image","_sprite","_tileMode","SpriteTileMode","Continuous","_tiledAdaptiveThreshold","drawMode","SpriteDrawMode","Simple","setMaterial","_engine","_getUIDefaultMaterial","_onSpriteChange","ReferenceResolutionPerUnit","_drawMode","Tiled","Sliced","sprite","_updateBounds","worldBounds","_assembler","updatePositions","texture","material","getMaterial","a","dirtyUpdateFlag","updateUVs","updateColor","subRenderElement","_subRenderElementPool","subChunk","chunk","primitive","subMesh","shaderPasses","shader","subShaders","passes","renderQueueFlags","RenderQueueFlags","addSubRenderElement","_onTransformChanged","Size","_addResourceReferCount","SpriteModifyFlags","setTexture","border","region","atlasRegionOffset","atlasRegion","SimpleSpriteAssembler","SlicedSpriteAssembler","TiledSpriteAssembler","resetData","tileMode","tiledAdaptiveThreshold","clamp","lastSprite","Text","_textChunks","_subFont","_text","_localBounds","BoundingBox","_font","_fontSize","_fontStyle","FontStyle","None","_lineSpacing","_horizontalAlignment","TextHorizontalAlignment","Center","_verticalAlignment","TextVerticalAlignment","_enableWrapping","_overflowMode","OverflowMode","Overflow","font","_textDefaultFont","_basicResources","textDefaultMaterial","_freeTextChunks","_getSubFont","_resetSubFont","_isTextNoVisible","_updateLocalData","_updatePosition","_updateColor","textSubRenderElementPool","_textSubRenderElementPool","textChunks","isOverlay","ShaderData","ShaderDataGroup","RenderElement","_textTextureProperty","fontSize","fontStyle","nativeFontString","TextUtils","getNativeFontString","name","e","elements","e0","e1","e2","e4","e5","e6","e12","e13","e14","up","right","worldPositions","_worldPositions","worldPosition0","worldPosition1","worldPosition2","worldPosition3","charRenderInfos","j","m","charRenderInfo","localPositions","topLeftY","topLeftX","scale","vertices","k","o","vertexArea","start","indexInChunk","copyToArray","r","g","b","finalAlpha","vertexCount","pixelsPerResolution","Engine","_pixelsPerUnit","_charRenderInfos","charFont","rendererWidth","rendererHeight","offsetWidth","offsetHeight","textMetrics","enableWrapping","measureTextWithWrap","measureTextWithoutWrap","lines","lineWidths","lineHeight","lineMaxSizes","charRenderInfoPool","_charRenderInfoPool","linesLen","renderElementCount","horizontalAlignment","pixelsPerUnitReciprocal","halfRendererWidth","halfLineHeight","startY","topDiff","ascent","bottomDiff","descent","verticalAlignment","Top","Bottom","firstLine","minX","minY","maxX","MIN_SAFE_INTEGER","maxY","lineWidth","line","startX","firstRow","Left","Right","char","charInfo","_getCharInfo","h","_getTextureByIndex","index","uvs","left","top","bottom","xAdvance","offsetX","_getLastIndex","sort","instanceId","curTextChunk","TextChunk","chunkMaxVertexCount","maxVertexCount","curCharRenderInfo","curTexture","curCharInfos","_buildChunk","charLength","Pivot","overflowMode","Truncate","textChunk","tempIndices","CharRenderInfo","triangles","tempIndicesLength","allocateSubChunk","indices","ii","io","vo","uv","manager","return","text","lastFont","lineSpacing","maskLayer","_maskLayer","localBounds","_bounds","Transition","_duration","_countDown","_finalState","Normal","_target","_getValueByState","_initialValue","_finalValue","_getTargetValueCopy","_updateValue","delta","_onStateValueDirty","preValue","curValue","ReferResource","_addReferCount","weight","_updateCurrentValue","_applyValue","_currentValue","Pressed","Hover","Disable","_normal","preNormal","_pressed","prePressed","_hover","preHover","_disabled","preDisabled","duration","preDuration","ColorTransition","_onNormalValueChanged","_onHoverValueChanged","_onPressedValueChanged","_onDisabledValueChanged","srcValue","destValue","lerp","ScaleTransition","setScale","SpriteTransition","UIHitResult","UIPointerEventEmitter","_enteredPath","_pressedPath","_draggedPath","_init","_hitResult","processRaycast","scenes","pointer","PointerEventEmitter","_tempRay","hitResult","canvasElements","_overlayCanvases","origin","direction","_updateRaycast","cameras","_activeCameras","renderTarget","pixelViewport","screenPointToRay","_canvases","farClipPlane","clearFlags","CameraClearFlags","processDrag","draggedPath","_bubble","_fireDrag","processDown","enteredPath","pressedPath","_fireDown","_fireBeginDrag","processUp","_fireUp","common","_tempArray0","_findCommonInPath","eventData","_createEventData","_fireClick","_fireEndDrag","_fireDrop","processLeave","_fireExit","dispose","curPath","_composedPath","_path","del","_tempArray1","_findDiffInPath","_fireEnter","path","rootEntity","_MAX_PATH_DEPTH","prePath","idSet","_tempSet","clear","hasCommon","has","changed","fireEvent","Set","EngineExtension","_uiDefaultMaterial","Shader","find","create","ShaderPass","uiDefaultVs","uiDefaultFs","pipelineStage","PipelineStage","Forward","Material","renderState","blendState","targetBlendState","sourceColorBlendFactor","BlendFactor","SourceAlpha","destinationColorBlendFactor","OneMinusSourceAlpha","sourceAlphaBlendFactor","One","destinationAlphaBlendFactor","colorBlendOperation","alphaBlendOperation","BlendOperation","Add","depthState","writeEnabled","rasterState","cullMode","CullMode","Off","renderQueueType","RenderQueueType","Transparent","isGCIgnored","EntityExtension","version","ApplyMixins","derivedCtor","baseCtors","baseCtor","Object","getOwnPropertyNames","prototype","defineProperty","getOwnPropertyDescriptor","ReflectionParser","registerCustomParseComponent","instance","item","props","Font","createFromOS","fontFamily","registerGUI","key","GUIComponent","Loader","registerClass"],"mappings":"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"}
|