123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380 |
- System.register(["__unresolved_0", "cc", "__unresolved_1"], function (_export, _context) {
- "use strict";
- var _reporterNs, _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, _decorator, Node, Component, UIRenderer, director, UITransform, instantiate, sys, UIOpacity, Label, RenderReactiveHandler, _dec, _dec2, _class, _class2, _descriptor, _descriptor2, _descriptor3, _class3, _crd, ccclass, property, RenderAlternative;
- function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
- function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
- function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }
- function _reportPossibleCrUseOfRenderReactiveHandler(extras) {
- _reporterNs.report("RenderReactiveHandler", "./RenderReactiveHandler", _context.meta, extras);
- }
- return {
- setters: [function (_unresolved_) {
- _reporterNs = _unresolved_;
- }, function (_cc) {
- _cclegacy = _cc.cclegacy;
- __checkObsolete__ = _cc.__checkObsolete__;
- __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
- _decorator = _cc._decorator;
- Node = _cc.Node;
- Component = _cc.Component;
- UIRenderer = _cc.UIRenderer;
- director = _cc.director;
- UITransform = _cc.UITransform;
- instantiate = _cc.instantiate;
- sys = _cc.sys;
- UIOpacity = _cc.UIOpacity;
- Label = _cc.Label;
- }, function (_unresolved_2) {
- RenderReactiveHandler = _unresolved_2.RenderReactiveHandler;
- }],
- execute: function () {
- _crd = true;
- _cclegacy._RF.push({}, "1541daeJmFOIJRUZwZXMr9Q", "RenderAlternative", undefined);
- __checkObsolete__(['_decorator', 'Node', 'Component', 'UIRenderer', 'Mat4', 'Vec3', 'director', 'UITransform', 'instantiate', 'sys', 'UIOpacity', 'Label']);
- /**
- * 目前该渲染代理功能存在的问题
- * 1.被代理节点的父级不能出现scaleX和scaleY不一致的情况,被代理节点本身没有这个限制
- */
- ({
- ccclass,
- property
- } = _decorator);
- _export("default", RenderAlternative = (_dec = property(Node), _dec2 = property({
- tooltip: '设置同步的间隔(秒为单位),0就是每帧都同步,0.1就是隔0.1秒同步一次'
- }), ccclass(_class = (_class2 = (_class3 = class RenderAlternative extends Component {
- constructor() {
- super(...arguments);
- /**渲染层节点 */
- _initializerDefineProperty(this, "renderLayer", _descriptor, this);
- /**渲染的zIndex */
- _initializerDefineProperty(this, "renderZIndex", _descriptor2, this);
- /**同步的间隔(帧为单位) */
- _initializerDefineProperty(this, "syncInv", _descriptor3, this);
- /**渲染的sIndex */
- this.sIndex = 0;
- /**非渲染组件 */
- this.proxyRender = null;
- /**渲染组件 */
- this.renderCompnent = null;
- /**渲染节点的ui控件 */
- this.renderUiTrans = null;
- /**ui控件 */
- this.uiTrans = null;
- /**上次更新的数据 */
- this.lastWMat4 = null;
- /**上次更新的数据 */
- this.lastLMat4 = null;
- /**上次更新的数据 */
- this.lastPos = null;
- /**距离下次刷新累计了多少间隔 */
- this.accuTime = 0;
- /**最后一次刷新时间 */
- this.lastFrameTime = null;
- /**是否进行刷新 */
- this.isAttachFrame = false;
- }
- static isDirty(renderLayer) {
- return this._isDirty.has(renderLayer) ? this._isDirty.get(renderLayer) : false;
- }
- static setDirty(renderLayer) {
- if (renderLayer && !this.isDirty(renderLayer)) {
- this._isDirty.set(renderLayer, true);
- this.sortOnce(renderLayer);
- }
- }
- static sortOnce(renderLayer) {
- requestAnimationFrame(() => {
- renderLayer.children.sort(this.sortChildren);
- this._isDirty.set(renderLayer, false);
- });
- }
- static sortChildren(a, b) {
- //@ts-ignore
- var aindex = a._rZIndex,
- bindex = b._rZIndex;
- if (Number.isFinite(aindex) && Number.isFinite(bindex)) {
- return aindex - bindex;
- } else if (!Number.isFinite(aindex)) {
- return 1;
- } else {
- return -1;
- }
- }
- /**获取总的ZIndex */
- get zIndex() {
- var zIndex = this.renderZIndex + this.sIndex * 0.01;
- var parentNode = this.node.parent;
- while (parentNode != ((_this$renderLayer = this.renderLayer) == null ? void 0 : _this$renderLayer.parent) && parentNode != director.getScene()) {
- var _this$renderLayer;
- var render = parentNode.getComponent(RenderAlternative);
- if (render) {
- zIndex += render.zIndex + 1;
- break;
- }
- parentNode = parentNode.parent;
- }
- return zIndex;
- }
- /**
- * 设置渲染节点层
- * @param layer
- */
- init(layer) {
- if (layer) {
- this.renderLayer = layer;
- }
- if (!this.renderLayer) {
- console.warn("\u8282\u70B9" + this.node.name + "\u6CA1\u6709\u8BBE\u7F6E\u6E32\u67D3\u5C42");
- return null;
- }
- return this.initRender();
- }
- /**
- * 初始化渲染节点
- */
- initRender() {
- var node = this.getRender();
- node.setParent(this.renderLayer ? this.renderLayer : director.getScene().getChildByName("Canvas"));
- this.isAttachFrame = true;
- requestAnimationFrame(this.frameUpdate.bind(this));
- return this.doProxy();
- }
- /**生成代理 */
- doProxy() {
- this.proxyRender = new Proxy(this.renderCompnent, new (_crd && RenderReactiveHandler === void 0 ? (_reportPossibleCrUseOfRenderReactiveHandler({
- error: Error()
- }), RenderReactiveHandler) : RenderReactiveHandler)());
- return this.proxyRender;
- }
- frameUpdate() {
- var now = sys.now();
- !this.lastFrameTime && (this.lastFrameTime = now);
- var dt = (now - this.lastFrameTime) / 1000;
- this.lastFrameTime = now;
- if (this.proxyRender) {
- this.accuTime += dt;
- if (this.accuTime >= this.syncInv) {
- this.accuTime -= this.syncInv;
- this.updateProp();
- }
- }
- if (this.isAttachFrame) {
- requestAnimationFrame(this.frameUpdate.bind(this));
- }
- }
- /**更新最新状态 */
- updateProp() {
- var _this$node$matrix, _this$lastWMat, _this$lastLMat;
- var node = this.renderCompnent.node;
- var uiTrans = this.renderUiTrans;
- if (!this.node.activeInHierarchy) {
- node.active = false;
- return;
- }
- node.active = true;
- ;
- uiTrans.anchorX != this.uiTrans.anchorX && (uiTrans.anchorX = this.uiTrans.anchorX);
- uiTrans.anchorY != this.uiTrans.anchorY && (uiTrans.anchorY = this.uiTrans.anchorY);
- if (uiTrans.width != this.uiTrans.width) {
- uiTrans.width = this.uiTrans.width;
- if (this.renderCompnent instanceof Label) {
- requestAnimationFrame(() => {
- this.uiTrans.width = uiTrans.width;
- });
- }
- }
- if (uiTrans.height != this.uiTrans.height) {
- uiTrans.height = this.uiTrans.height;
- if (this.renderCompnent instanceof Label) {
- requestAnimationFrame(() => {
- this.uiTrans.height = uiTrans.height;
- });
- }
- }
- node.layer != this.node.layer && (node.layer = this.node.layer);
- var opacity = this.getOpacity(this.node);
- if (opacity != 255) {
- var uiOpacity = node.getComponent(UIOpacity) || node.addComponent(UIOpacity);
- uiOpacity.opacity != opacity && (uiOpacity.opacity = opacity);
- }
- var wMat4 = this.node.worldMatrix.clone();
- var lMat4 = (_this$node$matrix = this.node.matrix) == null ? void 0 : _this$node$matrix.clone();
- if (!((_this$lastWMat = this.lastWMat4) != null && _this$lastWMat.equals(wMat4)) || this.lastLMat4 && !((_this$lastLMat = this.lastLMat4) != null && _this$lastLMat.equals(lMat4))) {
- this.onAngleChange();
- this.onScaleChange();
- this.onPosChange();
- this.lastLMat4 = lMat4;
- this.lastWMat4 = wMat4;
- } //@ts-ignore
- var old = node._rZIndex; //@ts-ignore
- node._rZIndex = this.zIndex;
- if (old != this.zIndex) {
- RenderAlternative.setDirty(this.renderLayer);
- }
- }
- onDestroy() {
- this.renderCompnent.node.destroy();
- this.renderCompnent = null;
- this.proxyRender = null;
- }
- /**
- * 获取节点透明度
- * @param node
- */
- getOpacity(node) {
- var _node$getComponent;
- var opacity = (((_node$getComponent = node.getComponent(UIOpacity)) == null ? void 0 : _node$getComponent.opacity) || 255) / 255;
- var parentNode = node.parent;
- while (parentNode != this.renderLayer.parent && parentNode != director.getScene()) {
- var _parentNode$getCompon;
- opacity *= (((_parentNode$getCompon = parentNode.getComponent(UIOpacity)) == null ? void 0 : _parentNode$getCompon.opacity) || 255) / 255;
- parentNode = parentNode.parent;
- }
- return opacity * 255;
- }
- /**位置变化处理 */
- onPosChange() {
- this.renderCompnent.node.worldPosition = this.node.worldPosition.clone();
- }
- /**旋转变化处理 */
- onAngleChange() {
- this.renderCompnent.node.worldRotation = this.node.worldRotation.clone();
- }
- /**缩放变化处理 */
- onScaleChange() {
- this.renderCompnent.node.worldScale = this.node.worldScale.clone();
- }
- /**
- * 获取渲染组件
- * @param node
- */
- getRender() {
- var node = instantiate(this.node);
- node.removeAllChildren();
- this.uiTrans = this.node.getComponent(UITransform);
- this.renderUiTrans = node.getComponent(UITransform);
- this.renderCompnent = node.getComponent(UIRenderer);
- this.node.getComponent(UIRenderer).destroy();
- for (var i = 0, len = node.components.length; i < len; ++i) {
- var comp = node.components[i];
- if (!(comp instanceof UIRenderer || comp instanceof UITransform)) {
- comp.destroy();
- }
- }
- return node;
- }
- }, _class3._isDirty = new WeakMap(), _class3), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "renderLayer", [_dec], {
- configurable: true,
- enumerable: true,
- writable: true,
- initializer: function initializer() {
- return null;
- }
- }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "renderZIndex", [property], {
- configurable: true,
- enumerable: true,
- writable: true,
- initializer: function initializer() {
- return 0;
- }
- }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "syncInv", [_dec2], {
- configurable: true,
- enumerable: true,
- writable: true,
- initializer: function initializer() {
- return 0.01;
- }
- })), _class2)) || _class));
- _cclegacy._RF.pop();
- _crd = false;
- }
- };
- });
- //# sourceMappingURL=86ed411b7d9943a187670cf73a7e1aa21a63abbb.js.map
|