@galacean/engine-ui 1.5.0-alpha.1 → 1.5.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +3 -3
- 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 +3 -3
- package/dist/main.js.map +1 -1
- package/dist/module.js +3 -3
- package/dist/module.js.map +1 -1
- package/package.json +3 -3
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.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 @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(245 / 255, 245 / 255, 245 / 255, 1);\n this._pressed = new Color(200 / 255, 200 / 255, 200 / 255, 1);\n this._disabled = new Color(200 / 255, 200 / 255, 200 / 255, 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","_entity","_updateFlagManager","dispatch","size","x","y","copyFrom","pivot","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","_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":"main.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 @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","_entity","_updateFlagManager","dispatch","size","x","y","copyFrom","pivot","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","_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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"}
|