@eva/plugin-renderer-render 2.0.1-beta.28 → 2.0.1-beta.29

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.
@@ -42,6 +42,7 @@ var _EVA_IIFE_render = function (exports, eva_js, pluginRenderer) {
42
42
  this.alpha = 1;
43
43
  this.zIndex = 0;
44
44
  this.sortableChildren = false;
45
+ this.resolution = 1;
45
46
  }
46
47
  init(obj) {
47
48
  obj && _extends(this, obj);
@@ -52,6 +53,7 @@ var _EVA_IIFE_render = function (exports, eva_js, pluginRenderer) {
52
53
  __decorate([type('number'), step(0.1)], Render$2.prototype, "alpha", void 0);
53
54
  __decorate([type('number'), step(1)], Render$2.prototype, "zIndex", void 0);
54
55
  __decorate([type('boolean')], Render$2.prototype, "sortableChildren", void 0);
56
+ __decorate([type('number'), step(0.1)], Render$2.prototype, "resolution", void 0);
55
57
  let Render = class Render extends pluginRenderer.Renderer {
56
58
  constructor() {
57
59
  super(...arguments);
@@ -82,11 +84,24 @@ var _EVA_IIFE_render = function (exports, eva_js, pluginRenderer) {
82
84
  add(changed) {
83
85
  if (changed.component.name === 'Render') {
84
86
  this.setDirty(changed);
87
+ const component = changed.component;
88
+ const container = this.containerManager.getContainer(changed.gameObject.id);
89
+ if (component.resolution !== undefined && component.resolution > 0) {
90
+ this.applyResolution(container, component.resolution);
91
+ }
85
92
  }
86
93
  }
87
94
  change(changed) {
88
- if (changed.component.name === 'Render' && changed.prop.prop[0] === 'zIndex') {
89
- this.setDirty(changed);
95
+ if (changed.component.name === 'Render') {
96
+ if (changed.prop.prop[0] === 'zIndex') {
97
+ this.setDirty(changed);
98
+ } else if (changed.prop.prop[0] === 'resolution') {
99
+ const component = changed.component;
100
+ const container = this.containerManager.getContainer(changed.gameObject.id);
101
+ if (component.resolution !== undefined && component.resolution > 0) {
102
+ this.applyResolution(container, component.resolution);
103
+ }
104
+ }
90
105
  }
91
106
  }
92
107
  remove(changed) {
@@ -101,10 +116,20 @@ var _EVA_IIFE_render = function (exports, eva_js, pluginRenderer) {
101
116
  parentRender.sortDirty = true;
102
117
  }
103
118
  }
119
+ applyResolution(container, resolution) {
120
+ if (!container) return;
121
+ window.requestAnimationFrame(() => {
122
+ if (container.children && Array.isArray(container.children)) {
123
+ for (const child of container.children) {
124
+ child.resolution = resolution;
125
+ }
126
+ }
127
+ });
128
+ }
104
129
  };
105
130
  Render.systemName = 'Render';
106
131
  Render = __decorate([eva_js.decorators.componentObserver({
107
- Render: ['zIndex']
132
+ Render: ['zIndex', 'resolution']
108
133
  })], Render);
109
134
  var Render$1 = Render;
110
135
  exports.Render = Render$2;
@@ -1 +1 @@
1
- function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var r=1;r<arguments.length;r++){var t=arguments[r];for(var n in t)({}).hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e},_extends.apply(null,arguments)}globalThis.EVA=globalThis.EVA||{},globalThis.EVA.plugin=globalThis.EVA.plugin||{},globalThis.EVA.plugin.renderer=globalThis.EVA.plugin.renderer||{};var _EVA_IIFE_render=function(e,r,t){"use strict";function n(e,r,t,n){var o,s=arguments.length,i=s<3?r:null===n?n=Object.getOwnPropertyDescriptor(r,t):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,r,t,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(r,t,i):o(r,t))||i);return s>3&&i&&Object.defineProperty(r,t,i),i}function o(e,r){return e.constructor.IDEProps||(e.constructor.IDEProps={}),e.constructor.IDEProps[r]||(e.constructor.IDEProps[r]={}),e.constructor.IDEProps[r]}function s(e){return function(r,t){var n=o(r,t);n.key=t,n.type=e}}function i(e){return function(r,t){o(r,t).step=e}}class a extends r.Component{constructor(){super(...arguments),this.sortDirty=!1,this.visible=!0,this.alpha=1,this.zIndex=0,this.sortableChildren=!1}init(e){e&&_extends(this,e)}}a.componentName="Render",n([s("boolean")],a.prototype,"visible",void 0),n([s("number"),i(.1)],a.prototype,"alpha",void 0),n([s("number"),i(1)],a.prototype,"zIndex",void 0),n([s("boolean")],a.prototype,"sortableChildren",void 0);let d=class extends t.Renderer{constructor(){super(...arguments),this.name="Render"}init(){this.renderSystem=this.game.getSystem(t.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(e){const r=e.getComponent("Render"),t=this.containerManager.getContainer(e.id);t.alpha=r.alpha,t.visible=r.visible,t.zIndex=r.zIndex}componentChanged(e){e.type!==r.OBSERVER_TYPE.ADD&&e.type!==r.OBSERVER_TYPE.REMOVE||this.add(e),e.type===r.OBSERVER_TYPE.CHANGE&&this.change(e),e.type===r.OBSERVER_TYPE.REMOVE&&this.remove(e)}add(e){"Render"===e.component.name&&this.setDirty(e)}change(e){"Render"===e.component.name&&"zIndex"===e.prop.prop[0]&&this.setDirty(e)}remove(e){if("Render"===e.component.name){this.containerManager.getContainer(e.gameObject.id).alpha=1}}setDirty(e){const r=e.gameObject.parent&&e.gameObject.parent.getComponent("Render");r&&(r.sortDirty=!0)}};d.systemName="Render",d=n([r.decorators.componentObserver({Render:["zIndex"]})],d);var p=d;return e.Render=a,e.RenderSystem=p,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.plugin.renderer);globalThis.EVA.plugin.renderer.render=globalThis.EVA.plugin.renderer.render||_EVA_IIFE_render;
1
+ function _extends(){return _extends=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},_extends.apply(null,arguments)}globalThis.EVA=globalThis.EVA||{},globalThis.EVA.plugin=globalThis.EVA.plugin||{},globalThis.EVA.plugin.renderer=globalThis.EVA.plugin.renderer||{};var _EVA_IIFE_render=function(e,n,t){"use strict";function r(e,n,t,r){var o,i=arguments.length,s=i<3?n:null===r?r=Object.getOwnPropertyDescriptor(n,t):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,n,t,r);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(n,t,s):o(n,t))||s);return i>3&&s&&Object.defineProperty(n,t,s),s}function o(e,n){return e.constructor.IDEProps||(e.constructor.IDEProps={}),e.constructor.IDEProps[n]||(e.constructor.IDEProps[n]={}),e.constructor.IDEProps[n]}function i(e){return function(n,t){var r=o(n,t);r.key=t,r.type=e}}function s(e){return function(n,t){o(n,t).step=e}}class a extends n.Component{constructor(){super(...arguments),this.sortDirty=!1,this.visible=!0,this.alpha=1,this.zIndex=0,this.sortableChildren=!1,this.resolution=1}init(e){e&&_extends(this,e)}}a.componentName="Render",r([i("boolean")],a.prototype,"visible",void 0),r([i("number"),s(.1)],a.prototype,"alpha",void 0),r([i("number"),s(1)],a.prototype,"zIndex",void 0),r([i("boolean")],a.prototype,"sortableChildren",void 0),r([i("number"),s(.1)],a.prototype,"resolution",void 0);let l=class extends t.Renderer{constructor(){super(...arguments),this.name="Render"}init(){this.renderSystem=this.game.getSystem(t.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(e){const n=e.getComponent("Render"),t=this.containerManager.getContainer(e.id);t.alpha=n.alpha,t.visible=n.visible,t.zIndex=n.zIndex}componentChanged(e){e.type!==n.OBSERVER_TYPE.ADD&&e.type!==n.OBSERVER_TYPE.REMOVE||this.add(e),e.type===n.OBSERVER_TYPE.CHANGE&&this.change(e),e.type===n.OBSERVER_TYPE.REMOVE&&this.remove(e)}add(e){if("Render"===e.component.name){this.setDirty(e);const n=e.component,t=this.containerManager.getContainer(e.gameObject.id);void 0!==n.resolution&&n.resolution>0&&this.applyResolution(t,n.resolution)}}change(e){if("Render"===e.component.name)if("zIndex"===e.prop.prop[0])this.setDirty(e);else if("resolution"===e.prop.prop[0]){const n=e.component,t=this.containerManager.getContainer(e.gameObject.id);void 0!==n.resolution&&n.resolution>0&&this.applyResolution(t,n.resolution)}}remove(e){if("Render"===e.component.name){this.containerManager.getContainer(e.gameObject.id).alpha=1}}setDirty(e){const n=e.gameObject.parent&&e.gameObject.parent.getComponent("Render");n&&(n.sortDirty=!0)}applyResolution(e,n){e&&window.requestAnimationFrame((()=>{if(e.children&&Array.isArray(e.children))for(const t of e.children)t.resolution=n}))}};l.systemName="Render",l=r([n.decorators.componentObserver({Render:["zIndex","resolution"]})],l);var p=l;return e.Render=a,e.RenderSystem=p,Object.defineProperty(e,"__esModule",{value:!0}),e}({},EVA,EVA.plugin.renderer);globalThis.EVA.plugin.renderer.render=globalThis.EVA.plugin.renderer.render||_EVA_IIFE_render;
@@ -40,6 +40,7 @@ function __decorate(decorators, target, key, desc) {
40
40
  * - alpha - 控制对象透明度(0-1)
41
41
  * - zIndex - 控制对象渲染层级
42
42
  * - sortableChildren - 是否对子对象按 zIndex 排序
43
+ * - resolution - 渲染分辨率,值越大越清晰但性能消耗越大
43
44
  *
44
45
  * @example
45
46
  * ```typescript
@@ -72,6 +73,13 @@ function __decorate(decorators, target, key, desc) {
72
73
  * container.addComponent(new Render({
73
74
  * sortableChildren: true // 子对象将按 zIndex 排序
74
75
  * }));
76
+ *
77
+ * // 设置渲染分辨率
78
+ * const text = new GameObject('text');
79
+ * text.addComponent(new Text({ text: 'High Resolution' }));
80
+ * text.addComponent(new Render({
81
+ * resolution: 2 // 2倍分辨率,使渲染更清晰
82
+ * }));
75
83
  * ```
76
84
  */
77
85
  class Render$2 extends eva_js.Component {
@@ -87,6 +95,8 @@ class Render$2 extends eva_js.Component {
87
95
  this.zIndex = 0;
88
96
  /** 是否对子对象按 zIndex 排序 */
89
97
  this.sortableChildren = false;
98
+ /** 渲染分辨率(值越大越清晰但性能消耗越大,默认为 1) */
99
+ this.resolution = 1;
90
100
  }
91
101
  /**
92
102
  * 初始化组件
@@ -95,6 +105,7 @@ class Render$2 extends eva_js.Component {
95
105
  * @param obj.alpha - 透明度
96
106
  * @param obj.zIndex - 渲染层级
97
107
  * @param obj.sortableChildren - 是否对子对象排序
108
+ * @param obj.resolution - 渲染分辨率
98
109
  */
99
110
  init(obj) {
100
111
  obj && Object.assign(this, obj);
@@ -115,7 +126,11 @@ __decorate([
115
126
  ], Render$2.prototype, "zIndex", void 0);
116
127
  __decorate([
117
128
  inspectorDecorator.type('boolean')
118
- ], Render$2.prototype, "sortableChildren", void 0);
129
+ ], Render$2.prototype, "sortableChildren", void 0);
130
+ __decorate([
131
+ inspectorDecorator.type('number'),
132
+ inspectorDecorator.step(0.1)
133
+ ], Render$2.prototype, "resolution", void 0);
119
134
 
120
135
  let Render = class Render extends pluginRenderer.Renderer {
121
136
  constructor() {
@@ -147,11 +162,27 @@ let Render = class Render extends pluginRenderer.Renderer {
147
162
  add(changed) {
148
163
  if (changed.component.name === 'Render') {
149
164
  this.setDirty(changed);
165
+ // 初始化时应用 resolution
166
+ const component = changed.component;
167
+ const container = this.containerManager.getContainer(changed.gameObject.id);
168
+ if (component.resolution !== undefined && component.resolution > 0) {
169
+ this.applyResolution(container, component.resolution);
170
+ }
150
171
  }
151
172
  }
152
173
  change(changed) {
153
- if (changed.component.name === 'Render' && changed.prop.prop[0] === 'zIndex') {
154
- this.setDirty(changed);
174
+ if (changed.component.name === 'Render') {
175
+ if (changed.prop.prop[0] === 'zIndex') {
176
+ this.setDirty(changed);
177
+ }
178
+ else if (changed.prop.prop[0] === 'resolution') {
179
+ // 当 resolution 改变时,重新应用到子对象
180
+ const component = changed.component;
181
+ const container = this.containerManager.getContainer(changed.gameObject.id);
182
+ if (component.resolution !== undefined && component.resolution > 0) {
183
+ this.applyResolution(container, component.resolution);
184
+ }
185
+ }
155
186
  }
156
187
  }
157
188
  remove(changed) {
@@ -166,11 +197,26 @@ let Render = class Render extends pluginRenderer.Renderer {
166
197
  parentRender.sortDirty = true;
167
198
  }
168
199
  }
200
+ /**
201
+ * 递归应用 resolution 到容器中所有支持该属性的子对象
202
+ */
203
+ applyResolution(container, resolution) {
204
+ if (!container)
205
+ return;
206
+ window.requestAnimationFrame(() => {
207
+ // 遍历容器的所有子对象
208
+ if (container.children && Array.isArray(container.children)) {
209
+ for (const child of container.children) {
210
+ child.resolution = resolution;
211
+ }
212
+ }
213
+ });
214
+ }
169
215
  };
170
216
  Render.systemName = 'Render';
171
217
  Render = __decorate([
172
218
  eva_js.decorators.componentObserver({
173
- Render: ['zIndex'],
219
+ Render: ['zIndex', 'resolution'],
174
220
  })
175
221
  ], Render);
176
222
  var Render$1 = Render;
@@ -13,4 +13,4 @@ MERCHANTABLITY OR NON-INFRINGEMENT.
13
13
  See the Apache Version 2.0 License for specific language governing permissions
14
14
  and limitations under the License.
15
15
  ***************************************************************************** */
16
- function n(e,t,r,n){var o,s=arguments.length,i=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(i=(s<3?o(i):s>3?o(t,r,i):o(t,r))||i);return s>3&&i&&Object.defineProperty(t,r,i),i}class o extends e.Component{constructor(){super(...arguments),this.sortDirty=!1,this.visible=!0,this.alpha=1,this.zIndex=0,this.sortableChildren=!1}init(e){e&&Object.assign(this,e)}}o.componentName="Render",n([t.type("boolean")],o.prototype,"visible",void 0),n([t.type("number"),t.step(.1)],o.prototype,"alpha",void 0),n([t.type("number"),t.step(1)],o.prototype,"zIndex",void 0),n([t.type("boolean")],o.prototype,"sortableChildren",void 0);let s=class extends r.Renderer{constructor(){super(...arguments),this.name="Render"}init(){this.renderSystem=this.game.getSystem(r.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(e){const t=e.getComponent("Render"),r=this.containerManager.getContainer(e.id);r.alpha=t.alpha,r.visible=t.visible,r.zIndex=t.zIndex}componentChanged(t){t.type!==e.OBSERVER_TYPE.ADD&&t.type!==e.OBSERVER_TYPE.REMOVE||this.add(t),t.type===e.OBSERVER_TYPE.CHANGE&&this.change(t),t.type===e.OBSERVER_TYPE.REMOVE&&this.remove(t)}add(e){"Render"===e.component.name&&this.setDirty(e)}change(e){"Render"===e.component.name&&"zIndex"===e.prop.prop[0]&&this.setDirty(e)}remove(e){if("Render"===e.component.name){this.containerManager.getContainer(e.gameObject.id).alpha=1}}setDirty(e){const t=e.gameObject.parent&&e.gameObject.parent.getComponent("Render");t&&(t.sortDirty=!0)}};s.systemName="Render",s=n([e.decorators.componentObserver({Render:["zIndex"]})],s);var i=s;exports.Render=o,exports.RenderSystem=i;
16
+ function n(e,t,r,n){var o,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,r,n);else for(var a=e.length-1;a>=0;a--)(o=e[a])&&(s=(i<3?o(s):i>3?o(t,r,s):o(t,r))||s);return i>3&&s&&Object.defineProperty(t,r,s),s}class o extends e.Component{constructor(){super(...arguments),this.sortDirty=!1,this.visible=!0,this.alpha=1,this.zIndex=0,this.sortableChildren=!1,this.resolution=1}init(e){e&&Object.assign(this,e)}}o.componentName="Render",n([t.type("boolean")],o.prototype,"visible",void 0),n([t.type("number"),t.step(.1)],o.prototype,"alpha",void 0),n([t.type("number"),t.step(1)],o.prototype,"zIndex",void 0),n([t.type("boolean")],o.prototype,"sortableChildren",void 0),n([t.type("number"),t.step(.1)],o.prototype,"resolution",void 0);let i=class extends r.Renderer{constructor(){super(...arguments),this.name="Render"}init(){this.renderSystem=this.game.getSystem(r.RendererSystem),this.renderSystem.rendererManager.register(this)}rendererUpdate(e){const t=e.getComponent("Render"),r=this.containerManager.getContainer(e.id);r.alpha=t.alpha,r.visible=t.visible,r.zIndex=t.zIndex}componentChanged(t){t.type!==e.OBSERVER_TYPE.ADD&&t.type!==e.OBSERVER_TYPE.REMOVE||this.add(t),t.type===e.OBSERVER_TYPE.CHANGE&&this.change(t),t.type===e.OBSERVER_TYPE.REMOVE&&this.remove(t)}add(e){if("Render"===e.component.name){this.setDirty(e);const t=e.component,r=this.containerManager.getContainer(e.gameObject.id);void 0!==t.resolution&&t.resolution>0&&this.applyResolution(r,t.resolution)}}change(e){if("Render"===e.component.name)if("zIndex"===e.prop.prop[0])this.setDirty(e);else if("resolution"===e.prop.prop[0]){const t=e.component,r=this.containerManager.getContainer(e.gameObject.id);void 0!==t.resolution&&t.resolution>0&&this.applyResolution(r,t.resolution)}}remove(e){if("Render"===e.component.name){this.containerManager.getContainer(e.gameObject.id).alpha=1}}setDirty(e){const t=e.gameObject.parent&&e.gameObject.parent.getComponent("Render");t&&(t.sortDirty=!0)}applyResolution(e,t){e&&window.requestAnimationFrame((()=>{if(e.children&&Array.isArray(e.children))for(const r of e.children)r.resolution=t}))}};i.systemName="Render",i=n([e.decorators.componentObserver({Render:["zIndex","resolution"]})],i);var s=i;exports.Render=o,exports.RenderSystem=s;
@@ -18,6 +18,7 @@ import { RendererSystem } from '@eva/plugin-renderer';
18
18
  * - alpha - 控制对象透明度(0-1)
19
19
  * - zIndex - 控制对象渲染层级
20
20
  * - sortableChildren - 是否对子对象按 zIndex 排序
21
+ * - resolution - 渲染分辨率,值越大越清晰但性能消耗越大
21
22
  *
22
23
  * @example
23
24
  * ```typescript
@@ -50,6 +51,13 @@ import { RendererSystem } from '@eva/plugin-renderer';
50
51
  * container.addComponent(new Render({
51
52
  * sortableChildren: true // 子对象将按 zIndex 排序
52
53
  * }));
54
+ *
55
+ * // 设置渲染分辨率
56
+ * const text = new GameObject('text');
57
+ * text.addComponent(new Text({ text: 'High Resolution' }));
58
+ * text.addComponent(new Render({
59
+ * resolution: 2 // 2倍分辨率,使渲染更清晰
60
+ * }));
53
61
  * ```
54
62
  */
55
63
  export declare class Render extends Component<RenderParams> {
@@ -65,6 +73,8 @@ export declare class Render extends Component<RenderParams> {
65
73
  zIndex: number;
66
74
  /** 是否对子对象按 zIndex 排序 */
67
75
  sortableChildren: boolean;
76
+ /** 渲染分辨率(值越大越清晰但性能消耗越大,默认为 1) */
77
+ resolution: number;
68
78
  /**
69
79
  * 初始化组件
70
80
  * @param obj - 初始化参数
@@ -72,6 +82,7 @@ export declare class Render extends Component<RenderParams> {
72
82
  * @param obj.alpha - 透明度
73
83
  * @param obj.zIndex - 渲染层级
74
84
  * @param obj.sortableChildren - 是否对子对象排序
85
+ * @param obj.resolution - 渲染分辨率
75
86
  */
76
87
  init(obj?: RenderParams): void;
77
88
  }
@@ -81,6 +92,7 @@ export declare interface RenderParams {
81
92
  zIndex?: number;
82
93
  visible?: boolean;
83
94
  sortableChildren?: boolean;
95
+ resolution?: number;
84
96
  }
85
97
 
86
98
  export declare class RenderSystem extends Renderer {
@@ -96,6 +108,10 @@ export declare class RenderSystem extends Renderer {
96
108
  change(changed: ComponentChanged): void;
97
109
  remove(changed: ComponentChanged): void;
98
110
  setDirty(changed: ComponentChanged): void;
111
+ /**
112
+ * 递归应用 resolution 到容器中所有支持该属性的子对象
113
+ */
114
+ private applyResolution;
99
115
  }
100
116
 
101
117
  export { }
@@ -36,6 +36,7 @@ function __decorate(decorators, target, key, desc) {
36
36
  * - alpha - 控制对象透明度(0-1)
37
37
  * - zIndex - 控制对象渲染层级
38
38
  * - sortableChildren - 是否对子对象按 zIndex 排序
39
+ * - resolution - 渲染分辨率,值越大越清晰但性能消耗越大
39
40
  *
40
41
  * @example
41
42
  * ```typescript
@@ -68,6 +69,13 @@ function __decorate(decorators, target, key, desc) {
68
69
  * container.addComponent(new Render({
69
70
  * sortableChildren: true // 子对象将按 zIndex 排序
70
71
  * }));
72
+ *
73
+ * // 设置渲染分辨率
74
+ * const text = new GameObject('text');
75
+ * text.addComponent(new Text({ text: 'High Resolution' }));
76
+ * text.addComponent(new Render({
77
+ * resolution: 2 // 2倍分辨率,使渲染更清晰
78
+ * }));
71
79
  * ```
72
80
  */
73
81
  class Render$2 extends Component {
@@ -83,6 +91,8 @@ class Render$2 extends Component {
83
91
  this.zIndex = 0;
84
92
  /** 是否对子对象按 zIndex 排序 */
85
93
  this.sortableChildren = false;
94
+ /** 渲染分辨率(值越大越清晰但性能消耗越大,默认为 1) */
95
+ this.resolution = 1;
86
96
  }
87
97
  /**
88
98
  * 初始化组件
@@ -91,6 +101,7 @@ class Render$2 extends Component {
91
101
  * @param obj.alpha - 透明度
92
102
  * @param obj.zIndex - 渲染层级
93
103
  * @param obj.sortableChildren - 是否对子对象排序
104
+ * @param obj.resolution - 渲染分辨率
94
105
  */
95
106
  init(obj) {
96
107
  obj && Object.assign(this, obj);
@@ -111,7 +122,11 @@ __decorate([
111
122
  ], Render$2.prototype, "zIndex", void 0);
112
123
  __decorate([
113
124
  type('boolean')
114
- ], Render$2.prototype, "sortableChildren", void 0);
125
+ ], Render$2.prototype, "sortableChildren", void 0);
126
+ __decorate([
127
+ type('number'),
128
+ step(0.1)
129
+ ], Render$2.prototype, "resolution", void 0);
115
130
 
116
131
  let Render = class Render extends Renderer {
117
132
  constructor() {
@@ -143,11 +158,27 @@ let Render = class Render extends Renderer {
143
158
  add(changed) {
144
159
  if (changed.component.name === 'Render') {
145
160
  this.setDirty(changed);
161
+ // 初始化时应用 resolution
162
+ const component = changed.component;
163
+ const container = this.containerManager.getContainer(changed.gameObject.id);
164
+ if (component.resolution !== undefined && component.resolution > 0) {
165
+ this.applyResolution(container, component.resolution);
166
+ }
146
167
  }
147
168
  }
148
169
  change(changed) {
149
- if (changed.component.name === 'Render' && changed.prop.prop[0] === 'zIndex') {
150
- this.setDirty(changed);
170
+ if (changed.component.name === 'Render') {
171
+ if (changed.prop.prop[0] === 'zIndex') {
172
+ this.setDirty(changed);
173
+ }
174
+ else if (changed.prop.prop[0] === 'resolution') {
175
+ // 当 resolution 改变时,重新应用到子对象
176
+ const component = changed.component;
177
+ const container = this.containerManager.getContainer(changed.gameObject.id);
178
+ if (component.resolution !== undefined && component.resolution > 0) {
179
+ this.applyResolution(container, component.resolution);
180
+ }
181
+ }
151
182
  }
152
183
  }
153
184
  remove(changed) {
@@ -162,11 +193,26 @@ let Render = class Render extends Renderer {
162
193
  parentRender.sortDirty = true;
163
194
  }
164
195
  }
196
+ /**
197
+ * 递归应用 resolution 到容器中所有支持该属性的子对象
198
+ */
199
+ applyResolution(container, resolution) {
200
+ if (!container)
201
+ return;
202
+ window.requestAnimationFrame(() => {
203
+ // 遍历容器的所有子对象
204
+ if (container.children && Array.isArray(container.children)) {
205
+ for (const child of container.children) {
206
+ child.resolution = resolution;
207
+ }
208
+ }
209
+ });
210
+ }
165
211
  };
166
212
  Render.systemName = 'Render';
167
213
  Render = __decorate([
168
214
  decorators.componentObserver({
169
- Render: ['zIndex'],
215
+ Render: ['zIndex', 'resolution'],
170
216
  })
171
217
  ], Render);
172
218
  var Render$1 = Render;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eva/plugin-renderer-render",
3
- "version": "2.0.1-beta.28",
3
+ "version": "2.0.1-beta.29",
4
4
  "description": "@eva/plugin-renderer-render",
5
5
  "main": "index.js",
6
6
  "module": "dist/plugin-renderer-render.esm.js",
@@ -19,9 +19,9 @@
19
19
  "homepage": "https://eva.js.org",
20
20
  "dependencies": {
21
21
  "@eva/inspector-decorator": "^0.0.5",
22
- "@eva/plugin-renderer": "2.0.1-beta.28",
23
- "@eva/renderer-adapter": "2.0.1-beta.28",
24
- "@eva/eva.js": "2.0.1-beta.28",
22
+ "@eva/plugin-renderer": "2.0.1-beta.29",
23
+ "@eva/renderer-adapter": "2.0.1-beta.29",
24
+ "@eva/eva.js": "2.0.1-beta.29",
25
25
  "pixi.js": "^8.8.1"
26
26
  }
27
27
  }