@combos-fun/plugin-renderer 0.0.48 → 0.0.50

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.
@@ -368,7 +368,7 @@ var Renderer$1 = Renderer$2;
368
368
  /** Auto-generated by scripts/build-package.mjs — do not edit. */
369
369
  Object.assign(Renderer$1, {
370
370
  packageName: "@combos-fun/plugin-renderer",
371
- packageVersion: "0.0.48",
371
+ packageVersion: "0.0.50",
372
372
  });
373
373
 
374
374
  /* eslint-disable @typescript-eslint/no-unused-vars */
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-renderer.cjs.js","sources":["../lib/manager/RendererManager.ts","../lib/manager/ContainerManager.ts","../lib/Transform.ts","../lib/compressedTexture/ability.ts","../lib/System.ts","../lib/__combosPackageMeta.gen.ts","../lib/Renderer.ts","../lib/index.ts"],"sourcesContent":["import isEqual from 'lodash-es/isEqual';\nimport { GameObject, Game, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport Renderer from '../Renderer';\nimport RendererSystem from '../System';\n\nclass RendererManager {\n game: Game;\n rendererSystem: RendererSystem;\n constructor({ game, rendererSystem }) {\n this.game = game;\n this.rendererSystem = rendererSystem;\n }\n renderers: Renderer[] = [];\n register(...renderers: Renderer[]) {\n for (const renderer of renderers) {\n renderer.game = this.game;\n renderer.rendererManager = this.rendererSystem.rendererManager;\n renderer.containerManager = this.rendererSystem.containerManager;\n this.renderers.push(renderer);\n }\n }\n componentChanged(changes: ComponentChanged[]) {\n for (const changed of changes) {\n for (const renderer of this.renderers) {\n const props = renderer.observerInfo[changed.componentName];\n if (props) {\n if ([OBSERVER_TYPE.ADD, OBSERVER_TYPE.REMOVE].indexOf(changed.type) > -1) {\n try {\n renderer.componentChanged && renderer.componentChanged(changed);\n } catch (e) {\n console.error(`gameObject: ${changed.gameObject.name}, ${changed.componentName} is error.`, changed, e);\n }\n continue;\n }\n\n const index = props.findIndex(prop => {\n return isEqual(prop, changed.prop);\n });\n\n if (index > -1) {\n try {\n renderer.componentChanged && renderer.componentChanged(changed);\n } catch (e) {\n console.error(\n `gameObject: ${changed.gameObject && changed.gameObject.name}, ${\n changed.componentName\n } is componentChanged error.`,\n changed,\n e,\n );\n }\n }\n }\n }\n }\n }\n update(gameObject: GameObject) {\n for (const component of gameObject.components) {\n for (const renderer of this.renderers) {\n const cache = [];\n const props = renderer.observerInfo[component.name];\n if (props && cache.indexOf(gameObject) === -1) {\n cache.push(gameObject);\n try {\n renderer.rendererUpdate && renderer.rendererUpdate(gameObject);\n } catch (e) {\n console.info(`gameObject: ${gameObject.name}, ${component.name} is update error`, e);\n }\n }\n }\n }\n }\n}\nexport default RendererManager;\n","import { Transform } from '@combos-fun/engine';\nimport { Point, ObservablePoint } from 'pixi.js';\nimport { Container } from '@combos-fun/renderer-adapter';\n\nexport default class ContainerManager {\n containerMap: { [propName: number]: Container } = {};\n addContainer({ name, container }: { name: number; container: Container }) {\n this.containerMap[name] = container;\n }\n getContainer(name: number) {\n return this.containerMap[name];\n }\n removeContainer(name: number) {\n this.containerMap[name]?.destroy({ children: true });\n delete this.containerMap[name];\n }\n updateTransform({ name, transform }: { name: number; transform: Transform }) {\n const container = this.containerMap[name];\n if (!container || !transform) return;\n const { anchor, origin, position, rotation, scale, size, skew } = transform;\n container.rotation = rotation;\n container.scale = scale as Point;\n container.pivot.x = size.width * origin.x;\n container.pivot.y = size.height * origin.y;\n container.skew = skew as ObservablePoint;\n let x = position.x;\n let y = position.y;\n if (transform.parent) {\n const parent = transform.parent;\n x = x + parent.size.width * anchor.x;\n y = y + parent.size.height * anchor.y;\n }\n\n container.position = { x, y } as Point;\n }\n}\n","import { Transform as Trans, decorators, ComponentChanged, OBSERVER_TYPE, Scene, LOAD_SCENE_MODE } from '@combos-fun/engine';\nimport EventEmitter from 'eventemitter3';\nimport { Application, Container } from '@combos-fun/renderer-adapter';\nimport Render from './System';\nimport ContainerManager from './manager/ContainerManager';\n\n/** Surface used from the Render component; avoids importing plugin-renderer-render (workspace cycle). */\ntype RenderSortDirty = { sortDirty: boolean };\n\n@decorators.componentObserver({\n Transform: ['_parent'],\n})\nexport default class Transform extends EventEmitter {\n name: string = 'Transform';\n waitRemoveIds: number[] = [];\n waitSceneId: number;\n system: Render;\n containerManager: ContainerManager;\n waitChangeScenes: {\n scene: Scene;\n mode: LOAD_SCENE_MODE;\n application: Application;\n }[] = [];\n constructor({ system, containerManager }) {\n super();\n this.containerManager = containerManager;\n this.init(system);\n }\n init(system: Render) {\n this.system = system;\n this.on('changeScene', ({ scene, mode, application }) => {\n // switch (mode) {\n // case LOAD_SCENE_MODE.SINGLE:\n this.waitChangeScenes.push({ scene, mode, application });\n // break;\n // case LOAD_SCENE_MODE.MULTI_CANVAS:\n\n // }\n });\n }\n update() {\n for (const id of this.waitRemoveIds) {\n this.containerManager.removeContainer(id);\n }\n this.waitRemoveIds = [];\n\n for (const sceneInfo of this.waitChangeScenes) {\n // set scene\n const container = this.containerManager.getContainer(sceneInfo.scene.id);\n if (container) {\n sceneInfo.application.stage.removeChildren();\n sceneInfo.application.stage.addChild(container);\n }\n }\n this.waitChangeScenes = [];\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.type === OBSERVER_TYPE.ADD) {\n this.addContainer(changed);\n } else if (changed.type === OBSERVER_TYPE.CHANGE) {\n this.change(changed);\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.waitRemoveIds.push(changed.gameObject.id);\n }\n }\n addContainer(changed: ComponentChanged) {\n const container = new Container();\n container.label = changed.gameObject.name;\n this.containerManager.addContainer({\n name: changed.gameObject.id,\n container,\n });\n const transform = changed.component as Trans;\n // Pixi v8 exposes `worldTransform` on the display object; nested `transform.worldTransform` is gone.\n transform.worldTransform = container.worldTransform as unknown as Trans['worldTransform'];\n }\n change(changed: ComponentChanged) {\n const transform = changed.component as Trans;\n if (transform.parent) {\n const parentContainer = this.containerManager.getContainer(transform.parent.gameObject.id);\n parentContainer.addChild(this.containerManager.getContainer(changed.gameObject.id));\n\n const render =\n changed.gameObject.transform.parent &&\n (changed.gameObject.transform.parent.gameObject.getComponent('Render') as unknown as RenderSortDirty);\n if (render) {\n render.sortDirty = true;\n }\n } else {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n delete transform.worldTransform;\n container.parent && container.parent.removeChild(container);\n }\n }\n destroy() {\n this.removeAllListeners();\n this.waitRemoveIds = null;\n this.waitChangeScenes = null;\n this.system = null;\n this.containerManager = null;\n }\n}\n","/**\n * Inspired by PixiJS v6\n */\nexport type CompressedTextureExtensions = {\n s3tc?: WEBGL_compressed_texture_s3tc,\n s3tc_sRGB: WEBGL_compressed_texture_s3tc_srgb,\n etc: WEBGL_compressed_texture_etc,\n etc1: WEBGL_compressed_texture_etc1,\n pvrtc: WEBKIT_WEBGL_compressed_texture_pvrtc,\n atc: WEBGL_compressed_texture_atc,\n astc: WEBGL_compressed_texture_astc\n};\nexport type CompressedTextureExtensionRef = keyof CompressedTextureExtensions;\nlet result = undefined;\nexport interface SuportedCompressedTexture {\n s3tc: boolean,\n etc: boolean,\n etc1: boolean,\n pvrtc: boolean,\n atc: boolean,\n astc: boolean,\n}\nexport function getSuportCompressedTextureFormats(gl: WebGLRenderingContext): SuportedCompressedTexture {\n if (result) return result;\n\n if (!gl) {\n // #if _DEBUG\n console.warn('WebGL not available for compressed textures. Silently failing.');\n // #endif\n\n return {\n s3tc: false,\n etc: false,\n etc1: false,\n pvrtc: false,\n atc: false,\n astc: false,\n };\n }\n\n result = {\n s3tc: !!gl.getExtension('WEBGL_compressed_texture_s3tc'),\n etc: !!gl.getExtension('WEBGL_compressed_texture_etc'),\n etc1: !!gl.getExtension('WEBGL_compressed_texture_etc1'),\n pvrtc: !!gl.getExtension('WEBGL_compressed_texture_pvrtc')\n || !!gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'),\n atc: !!gl.getExtension('WEBGL_compressed_texture_atc'),\n astc: !!gl.getExtension('WEBGL_compressed_texture_astc')\n };\n\n try {\n console.log('Supported compressed texture formats: ' + Object.keys(result).filter((type) => result[type]).join(', '))\n } catch (e) { }\n return result;\n}","import { System, decorators, Game, LOAD_SCENE_MODE, PureObserverInfo } from '@combos-fun/engine';\nimport { Application } from '@combos-fun/renderer-adapter';\nimport RendererManager from './manager/RendererManager';\nimport ContainerManager from './manager/ContainerManager';\nimport Transform from './Transform';\nimport { Ticker } from 'pixi.js';\nimport type { ApplicationOptions } from 'pixi.js';\nimport type { Renderer as PixiRenderer } from 'pixi.js';\nimport type { WebGLRenderer } from 'pixi.js';\nimport { registerCompressedTexture } from './compressedTexture';\nimport { SuportedCompressedTexture, getSuportCompressedTextureFormats } from './compressedTexture/ability';\n\nexport enum RENDERER_TYPE {\n UNKNOWN = 0,\n WEBGL = 1,\n CANVAS = 2,\n}\n\n@decorators.componentObserver({\n Transform: ['_parent'],\n})\nexport default class Renderer extends System<Partial<ApplicationOptions>> {\n static systemName: string = 'Renderer';\n params: Partial<ApplicationOptions>;\n rendererManager: RendererManager;\n containerManager: ContainerManager;\n application: Application | null = null;\n game: Game;\n transform: Transform;\n multiApps: Application[] = [];\n suportedCompressedTextureFormats: SuportedCompressedTexture;\n\n async init(params?: Partial<ApplicationOptions>) {\n this.params = params ?? {};\n const app = await this.createApplication(this.params);\n this.application = app;\n this.game.canvas = app.canvas;\n this.containerManager = new ContainerManager();\n this.rendererManager = new RendererManager({\n game: this.game,\n rendererSystem: this,\n });\n\n this.transform = new Transform({\n system: this,\n containerManager: this.containerManager,\n });\n this.game.on('sceneChanged', async ({ scene, mode, params: sceneParams }) => {\n let application: Application | null = this.application;\n if (mode === LOAD_SCENE_MODE.MULTI_CANVAS) {\n application = await this.createApplication(sceneParams);\n this.multiApps.push(application);\n }\n if (!application) {\n return;\n }\n scene.canvas = application.canvas;\n this.transform.emit('changeScene', {\n scene,\n mode,\n application,\n });\n });\n\n const gl = (app.renderer as WebGLRenderer).gl;\n if (gl) {\n this.suportedCompressedTextureFormats = getSuportCompressedTextureFormats(gl);\n registerCompressedTexture(gl);\n }\n }\n\n registerObserver(observerInfo: PureObserverInfo): void {\n const Ctor = this.constructor as typeof Renderer & { observerInfo: PureObserverInfo };\n if (!Ctor.observerInfo) {\n Ctor.observerInfo = {} as PureObserverInfo;\n }\n const thisObserverInfo = Ctor.observerInfo;\n for (const key in observerInfo) {\n if (!thisObserverInfo[key]) {\n thisObserverInfo[key] = [];\n }\n thisObserverInfo[key].push(...observerInfo[key]);\n }\n }\n\n private async createApplication(params: Partial<ApplicationOptions>): Promise<Application> {\n const initOptions: Partial<ApplicationOptions> = {\n ...params,\n autoStart: true,\n sharedTicker: true,\n };\n\n const app = new Application();\n try {\n await app.init(initOptions);\n } catch {\n await app.init({\n ...initOptions,\n preference: 'canvas',\n });\n }\n\n Ticker.shared.stop();\n Ticker.shared.autoStart = false;\n\n return app;\n }\n\n update() {\n const changes = this.componentObserver.clear();\n for (const changed of changes) {\n this.transform.componentChanged(changed);\n }\n if (!this.application) {\n return;\n }\n for (const gameObject of this.game.gameObjects) {\n this.containerManager.updateTransform({\n name: gameObject.id,\n transform: gameObject.transform,\n });\n this.rendererManager.update(gameObject);\n }\n }\n\n lateUpdate(e) {\n if (!this.application) {\n return;\n }\n this.transform.update();\n this.application.ticker.update(e.time);\n }\n\n onDestroy() {\n this.application?.destroy();\n for (const app of this.multiApps) {\n app && app.destroy();\n }\n this.transform.destroy();\n this.transform = null;\n this.params = null;\n this.rendererManager = null;\n this.containerManager = null;\n this.application = null;\n this.game = null;\n this.multiApps = null;\n }\n\n resize(width, height) {\n if (!this.application) {\n return;\n }\n this.params = { ...this.params, width, height };\n this.application.renderer.resize(width, height);\n }\n}\n","/** Auto-generated by scripts/build-package.mjs — do not edit. */\n\nimport Renderer from './System';\n\nObject.assign(Renderer, {\n packageName: \"@combos-fun/plugin-renderer\",\n packageVersion: \"0.0.48\",\n});\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { GameObject, Game, PureObserverInfo, ComponentChanged, System, UpdateParams } from '@combos-fun/engine';\nimport ContainerManager from './manager/ContainerManager';\nimport RendererManager from './manager/RendererManager';\n\nexport default class Renderer<T extends {} = {}> extends System<T> {\n /**\n * Renderer name\n */\n name: string;\n\n /**\n * currentGame\n */\n game: Game;\n\n /**\n * observer component props info\n */\n static observerInfo: PureObserverInfo;\n\n /**\n * observer component props info\n */\n observerInfo: PureObserverInfo;\n\n /**\n * containerManager\n */\n containerManager: ContainerManager;\n rendererManager: RendererManager;\n\n constructor(params?: T) {\n super(params);\n const Ctor = this.constructor as typeof Renderer & { observerInfo: PureObserverInfo };\n this.observerInfo = Ctor.observerInfo;\n }\n\n // init(arg?: any): void;\n\n /**\n * Called when an observed component property changes.\n */\n componentChanged(_changed: ComponentChanged) { }\n\n /**\n * Called every frame.\n * @param _gameObject gameObject\n */\n rendererUpdate(_gameObject: GameObject) { }\n\n override update(e?: UpdateParams): void {\n const changes = this.componentObserver.clear();\n for (const changed of changes) {\n this.componentChanged(changed);\n }\n }\n\n protected asyncIdMap: Record<number, number> = {}\n\n protected increaseAsyncId(id: number) {\n this.asyncIdMap[id] = (this.asyncIdMap[id] || 0) + 1;\n return this.asyncIdMap[id];\n }\n\n protected validateAsyncId(id: number, asyncId: number) {\n return this.asyncIdMap[id] === asyncId;\n }\n}\n","import RendererSystem, { RENDERER_TYPE } from './System';\nimport RendererManager from './manager/RendererManager';\nimport ContainerManager from './manager/ContainerManager';\nimport Renderer from './Renderer';\n\n/** Shared resource cache key separator used across renderer plugins */\nexport const RESOURCE_KEY_SPLIT = '_s|r|c_';\n\nexport { RendererManager, ContainerManager, RendererSystem, RENDERER_TYPE, Renderer };\n\n"],"names":["OBSERVER_TYPE","isEqual","Transform","EventEmitter","Container","__decorate","decorators","RENDERER_TYPE","Renderer","System","LOAD_SCENE_MODE","Application","Ticker"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-renderer.cjs.js","sources":["../lib/manager/RendererManager.ts","../lib/manager/ContainerManager.ts","../lib/Transform.ts","../lib/compressedTexture/ability.ts","../lib/System.ts","../lib/__combosPackageMeta.gen.ts","../lib/Renderer.ts","../lib/index.ts"],"sourcesContent":["import isEqual from 'lodash-es/isEqual';\nimport { GameObject, Game, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport Renderer from '../Renderer';\nimport RendererSystem from '../System';\n\nclass RendererManager {\n game: Game;\n rendererSystem: RendererSystem;\n constructor({ game, rendererSystem }) {\n this.game = game;\n this.rendererSystem = rendererSystem;\n }\n renderers: Renderer[] = [];\n register(...renderers: Renderer[]) {\n for (const renderer of renderers) {\n renderer.game = this.game;\n renderer.rendererManager = this.rendererSystem.rendererManager;\n renderer.containerManager = this.rendererSystem.containerManager;\n this.renderers.push(renderer);\n }\n }\n componentChanged(changes: ComponentChanged[]) {\n for (const changed of changes) {\n for (const renderer of this.renderers) {\n const props = renderer.observerInfo[changed.componentName];\n if (props) {\n if ([OBSERVER_TYPE.ADD, OBSERVER_TYPE.REMOVE].indexOf(changed.type) > -1) {\n try {\n renderer.componentChanged && renderer.componentChanged(changed);\n } catch (e) {\n console.error(`gameObject: ${changed.gameObject.name}, ${changed.componentName} is error.`, changed, e);\n }\n continue;\n }\n\n const index = props.findIndex(prop => {\n return isEqual(prop, changed.prop);\n });\n\n if (index > -1) {\n try {\n renderer.componentChanged && renderer.componentChanged(changed);\n } catch (e) {\n console.error(\n `gameObject: ${changed.gameObject && changed.gameObject.name}, ${\n changed.componentName\n } is componentChanged error.`,\n changed,\n e,\n );\n }\n }\n }\n }\n }\n }\n update(gameObject: GameObject) {\n for (const component of gameObject.components) {\n for (const renderer of this.renderers) {\n const cache = [];\n const props = renderer.observerInfo[component.name];\n if (props && cache.indexOf(gameObject) === -1) {\n cache.push(gameObject);\n try {\n renderer.rendererUpdate && renderer.rendererUpdate(gameObject);\n } catch (e) {\n console.info(`gameObject: ${gameObject.name}, ${component.name} is update error`, e);\n }\n }\n }\n }\n }\n}\nexport default RendererManager;\n","import { Transform } from '@combos-fun/engine';\nimport { Point, ObservablePoint } from 'pixi.js';\nimport { Container } from '@combos-fun/renderer-adapter';\n\nexport default class ContainerManager {\n containerMap: { [propName: number]: Container } = {};\n addContainer({ name, container }: { name: number; container: Container }) {\n this.containerMap[name] = container;\n }\n getContainer(name: number) {\n return this.containerMap[name];\n }\n removeContainer(name: number) {\n this.containerMap[name]?.destroy({ children: true });\n delete this.containerMap[name];\n }\n updateTransform({ name, transform }: { name: number; transform: Transform }) {\n const container = this.containerMap[name];\n if (!container || !transform) return;\n const { anchor, origin, position, rotation, scale, size, skew } = transform;\n container.rotation = rotation;\n container.scale = scale as Point;\n container.pivot.x = size.width * origin.x;\n container.pivot.y = size.height * origin.y;\n container.skew = skew as ObservablePoint;\n let x = position.x;\n let y = position.y;\n if (transform.parent) {\n const parent = transform.parent;\n x = x + parent.size.width * anchor.x;\n y = y + parent.size.height * anchor.y;\n }\n\n container.position = { x, y } as Point;\n }\n}\n","import { Transform as Trans, decorators, ComponentChanged, OBSERVER_TYPE, Scene, LOAD_SCENE_MODE } from '@combos-fun/engine';\nimport EventEmitter from 'eventemitter3';\nimport { Application, Container } from '@combos-fun/renderer-adapter';\nimport Render from './System';\nimport ContainerManager from './manager/ContainerManager';\n\n/** Surface used from the Render component; avoids importing plugin-renderer-render (workspace cycle). */\ntype RenderSortDirty = { sortDirty: boolean };\n\n@decorators.componentObserver({\n Transform: ['_parent'],\n})\nexport default class Transform extends EventEmitter {\n name: string = 'Transform';\n waitRemoveIds: number[] = [];\n waitSceneId: number;\n system: Render;\n containerManager: ContainerManager;\n waitChangeScenes: {\n scene: Scene;\n mode: LOAD_SCENE_MODE;\n application: Application;\n }[] = [];\n constructor({ system, containerManager }) {\n super();\n this.containerManager = containerManager;\n this.init(system);\n }\n init(system: Render) {\n this.system = system;\n this.on('changeScene', ({ scene, mode, application }) => {\n // switch (mode) {\n // case LOAD_SCENE_MODE.SINGLE:\n this.waitChangeScenes.push({ scene, mode, application });\n // break;\n // case LOAD_SCENE_MODE.MULTI_CANVAS:\n\n // }\n });\n }\n update() {\n for (const id of this.waitRemoveIds) {\n this.containerManager.removeContainer(id);\n }\n this.waitRemoveIds = [];\n\n for (const sceneInfo of this.waitChangeScenes) {\n // set scene\n const container = this.containerManager.getContainer(sceneInfo.scene.id);\n if (container) {\n sceneInfo.application.stage.removeChildren();\n sceneInfo.application.stage.addChild(container);\n }\n }\n this.waitChangeScenes = [];\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.type === OBSERVER_TYPE.ADD) {\n this.addContainer(changed);\n } else if (changed.type === OBSERVER_TYPE.CHANGE) {\n this.change(changed);\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.waitRemoveIds.push(changed.gameObject.id);\n }\n }\n addContainer(changed: ComponentChanged) {\n const container = new Container();\n container.label = changed.gameObject.name;\n this.containerManager.addContainer({\n name: changed.gameObject.id,\n container,\n });\n const transform = changed.component as Trans;\n // Pixi v8 exposes `worldTransform` on the display object; nested `transform.worldTransform` is gone.\n transform.worldTransform = container.worldTransform as unknown as Trans['worldTransform'];\n }\n change(changed: ComponentChanged) {\n const transform = changed.component as Trans;\n if (transform.parent) {\n const parentContainer = this.containerManager.getContainer(transform.parent.gameObject.id);\n parentContainer.addChild(this.containerManager.getContainer(changed.gameObject.id));\n\n const render =\n changed.gameObject.transform.parent &&\n (changed.gameObject.transform.parent.gameObject.getComponent('Render') as unknown as RenderSortDirty);\n if (render) {\n render.sortDirty = true;\n }\n } else {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n delete transform.worldTransform;\n container.parent && container.parent.removeChild(container);\n }\n }\n destroy() {\n this.removeAllListeners();\n this.waitRemoveIds = null;\n this.waitChangeScenes = null;\n this.system = null;\n this.containerManager = null;\n }\n}\n","/**\n * Inspired by PixiJS v6\n */\nexport type CompressedTextureExtensions = {\n s3tc?: WEBGL_compressed_texture_s3tc,\n s3tc_sRGB: WEBGL_compressed_texture_s3tc_srgb,\n etc: WEBGL_compressed_texture_etc,\n etc1: WEBGL_compressed_texture_etc1,\n pvrtc: WEBKIT_WEBGL_compressed_texture_pvrtc,\n atc: WEBGL_compressed_texture_atc,\n astc: WEBGL_compressed_texture_astc\n};\nexport type CompressedTextureExtensionRef = keyof CompressedTextureExtensions;\nlet result = undefined;\nexport interface SuportedCompressedTexture {\n s3tc: boolean,\n etc: boolean,\n etc1: boolean,\n pvrtc: boolean,\n atc: boolean,\n astc: boolean,\n}\nexport function getSuportCompressedTextureFormats(gl: WebGLRenderingContext): SuportedCompressedTexture {\n if (result) return result;\n\n if (!gl) {\n // #if _DEBUG\n console.warn('WebGL not available for compressed textures. Silently failing.');\n // #endif\n\n return {\n s3tc: false,\n etc: false,\n etc1: false,\n pvrtc: false,\n atc: false,\n astc: false,\n };\n }\n\n result = {\n s3tc: !!gl.getExtension('WEBGL_compressed_texture_s3tc'),\n etc: !!gl.getExtension('WEBGL_compressed_texture_etc'),\n etc1: !!gl.getExtension('WEBGL_compressed_texture_etc1'),\n pvrtc: !!gl.getExtension('WEBGL_compressed_texture_pvrtc')\n || !!gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'),\n atc: !!gl.getExtension('WEBGL_compressed_texture_atc'),\n astc: !!gl.getExtension('WEBGL_compressed_texture_astc')\n };\n\n try {\n console.log('Supported compressed texture formats: ' + Object.keys(result).filter((type) => result[type]).join(', '))\n } catch (e) { }\n return result;\n}","import { System, decorators, Game, LOAD_SCENE_MODE, PureObserverInfo } from '@combos-fun/engine';\nimport { Application } from '@combos-fun/renderer-adapter';\nimport RendererManager from './manager/RendererManager';\nimport ContainerManager from './manager/ContainerManager';\nimport Transform from './Transform';\nimport { Ticker } from 'pixi.js';\nimport type { ApplicationOptions } from 'pixi.js';\nimport type { Renderer as PixiRenderer } from 'pixi.js';\nimport type { WebGLRenderer } from 'pixi.js';\nimport { registerCompressedTexture } from './compressedTexture';\nimport { SuportedCompressedTexture, getSuportCompressedTextureFormats } from './compressedTexture/ability';\n\nexport enum RENDERER_TYPE {\n UNKNOWN = 0,\n WEBGL = 1,\n CANVAS = 2,\n}\n\n@decorators.componentObserver({\n Transform: ['_parent'],\n})\nexport default class Renderer extends System<Partial<ApplicationOptions>> {\n static systemName: string = 'Renderer';\n params: Partial<ApplicationOptions>;\n rendererManager: RendererManager;\n containerManager: ContainerManager;\n application: Application | null = null;\n game: Game;\n transform: Transform;\n multiApps: Application[] = [];\n suportedCompressedTextureFormats: SuportedCompressedTexture;\n\n async init(params?: Partial<ApplicationOptions>) {\n this.params = params ?? {};\n const app = await this.createApplication(this.params);\n this.application = app;\n this.game.canvas = app.canvas;\n this.containerManager = new ContainerManager();\n this.rendererManager = new RendererManager({\n game: this.game,\n rendererSystem: this,\n });\n\n this.transform = new Transform({\n system: this,\n containerManager: this.containerManager,\n });\n this.game.on('sceneChanged', async ({ scene, mode, params: sceneParams }) => {\n let application: Application | null = this.application;\n if (mode === LOAD_SCENE_MODE.MULTI_CANVAS) {\n application = await this.createApplication(sceneParams);\n this.multiApps.push(application);\n }\n if (!application) {\n return;\n }\n scene.canvas = application.canvas;\n this.transform.emit('changeScene', {\n scene,\n mode,\n application,\n });\n });\n\n const gl = (app.renderer as WebGLRenderer).gl;\n if (gl) {\n this.suportedCompressedTextureFormats = getSuportCompressedTextureFormats(gl);\n registerCompressedTexture(gl);\n }\n }\n\n registerObserver(observerInfo: PureObserverInfo): void {\n const Ctor = this.constructor as typeof Renderer & { observerInfo: PureObserverInfo };\n if (!Ctor.observerInfo) {\n Ctor.observerInfo = {} as PureObserverInfo;\n }\n const thisObserverInfo = Ctor.observerInfo;\n for (const key in observerInfo) {\n if (!thisObserverInfo[key]) {\n thisObserverInfo[key] = [];\n }\n thisObserverInfo[key].push(...observerInfo[key]);\n }\n }\n\n private async createApplication(params: Partial<ApplicationOptions>): Promise<Application> {\n const initOptions: Partial<ApplicationOptions> = {\n ...params,\n autoStart: true,\n sharedTicker: true,\n };\n\n const app = new Application();\n try {\n await app.init(initOptions);\n } catch {\n await app.init({\n ...initOptions,\n preference: 'canvas',\n });\n }\n\n Ticker.shared.stop();\n Ticker.shared.autoStart = false;\n\n return app;\n }\n\n update() {\n const changes = this.componentObserver.clear();\n for (const changed of changes) {\n this.transform.componentChanged(changed);\n }\n if (!this.application) {\n return;\n }\n for (const gameObject of this.game.gameObjects) {\n this.containerManager.updateTransform({\n name: gameObject.id,\n transform: gameObject.transform,\n });\n this.rendererManager.update(gameObject);\n }\n }\n\n lateUpdate(e) {\n if (!this.application) {\n return;\n }\n this.transform.update();\n this.application.ticker.update(e.time);\n }\n\n onDestroy() {\n this.application?.destroy();\n for (const app of this.multiApps) {\n app && app.destroy();\n }\n this.transform.destroy();\n this.transform = null;\n this.params = null;\n this.rendererManager = null;\n this.containerManager = null;\n this.application = null;\n this.game = null;\n this.multiApps = null;\n }\n\n resize(width, height) {\n if (!this.application) {\n return;\n }\n this.params = { ...this.params, width, height };\n this.application.renderer.resize(width, height);\n }\n}\n","/** Auto-generated by scripts/build-package.mjs — do not edit. */\n\nimport Renderer from './System';\n\nObject.assign(Renderer, {\n packageName: \"@combos-fun/plugin-renderer\",\n packageVersion: \"0.0.50\",\n});\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { GameObject, Game, PureObserverInfo, ComponentChanged, System, UpdateParams } from '@combos-fun/engine';\nimport ContainerManager from './manager/ContainerManager';\nimport RendererManager from './manager/RendererManager';\n\nexport default class Renderer<T extends {} = {}> extends System<T> {\n /**\n * Renderer name\n */\n name: string;\n\n /**\n * currentGame\n */\n game: Game;\n\n /**\n * observer component props info\n */\n static observerInfo: PureObserverInfo;\n\n /**\n * observer component props info\n */\n observerInfo: PureObserverInfo;\n\n /**\n * containerManager\n */\n containerManager: ContainerManager;\n rendererManager: RendererManager;\n\n constructor(params?: T) {\n super(params);\n const Ctor = this.constructor as typeof Renderer & { observerInfo: PureObserverInfo };\n this.observerInfo = Ctor.observerInfo;\n }\n\n // init(arg?: any): void;\n\n /**\n * Called when an observed component property changes.\n */\n componentChanged(_changed: ComponentChanged) { }\n\n /**\n * Called every frame.\n * @param _gameObject gameObject\n */\n rendererUpdate(_gameObject: GameObject) { }\n\n override update(e?: UpdateParams): void {\n const changes = this.componentObserver.clear();\n for (const changed of changes) {\n this.componentChanged(changed);\n }\n }\n\n protected asyncIdMap: Record<number, number> = {}\n\n protected increaseAsyncId(id: number) {\n this.asyncIdMap[id] = (this.asyncIdMap[id] || 0) + 1;\n return this.asyncIdMap[id];\n }\n\n protected validateAsyncId(id: number, asyncId: number) {\n return this.asyncIdMap[id] === asyncId;\n }\n}\n","import RendererSystem, { RENDERER_TYPE } from './System';\nimport RendererManager from './manager/RendererManager';\nimport ContainerManager from './manager/ContainerManager';\nimport Renderer from './Renderer';\n\n/** Shared resource cache key separator used across renderer plugins */\nexport const RESOURCE_KEY_SPLIT = '_s|r|c_';\n\nexport { RendererManager, ContainerManager, RendererSystem, RENDERER_TYPE, Renderer };\n\n"],"names":["OBSERVER_TYPE","isEqual","Transform","EventEmitter","Container","__decorate","decorators","RENDERER_TYPE","Renderer","System","LOAD_SCENE_MODE","Application","Ticker"],"mappings":"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"}
@@ -1 +1 @@
1
- "use strict";var e=require("tslib"),t=require("@combos-fun/engine"),n=require("@combos-fun/renderer-adapter"),r=require("lodash-es/isEqual"),a=require("eventemitter3"),s=require("pixi.js");function o(e){return e&&e.__esModule?e:{default:e}}var i=o(r),c=o(a);class p{constructor({game:e,rendererSystem:t}){this.renderers=[],this.game=e,this.rendererSystem=t}register(...e){for(const t of e)t.game=this.game,t.rendererManager=this.rendererSystem.rendererManager,t.containerManager=this.rendererSystem.containerManager,this.renderers.push(t)}componentChanged(e){for(const n of e)for(const e of this.renderers){const r=e.observerInfo[n.componentName];if(r){if([t.OBSERVER_TYPE.ADD,t.OBSERVER_TYPE.REMOVE].indexOf(n.type)>-1){try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject.name}, ${n.componentName} is error.`,n,e)}continue}if(r.findIndex(e=>i.default(e,n.prop))>-1)try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject&&n.gameObject.name}, ${n.componentName} is componentChanged error.`,n,e)}}}}update(e){for(const t of e.components)for(const n of this.renderers){const r=[];if(n.observerInfo[t.name]&&-1===r.indexOf(e)){r.push(e);try{n.rendererUpdate&&n.rendererUpdate(e)}catch(n){console.info(`gameObject: ${e.name}, ${t.name} is update error`,n)}}}}}class h{constructor(){this.containerMap={}}addContainer({name:e,container:t}){this.containerMap[e]=t}getContainer(e){return this.containerMap[e]}removeContainer(e){this.containerMap[e]?.destroy({children:!0}),delete this.containerMap[e]}updateTransform({name:e,transform:t}){const n=this.containerMap[e];if(!n||!t)return;const{anchor:r,origin:a,position:s,rotation:o,scale:i,size:c,skew:p}=t;n.rotation=o,n.scale=i,n.pivot.x=c.width*a.x,n.pivot.y=c.height*a.y,n.skew=p;let h=s.x,d=s.y;if(t.parent){const e=t.parent;h+=e.size.width*r.x,d+=e.size.height*r.y}n.position={x:h,y:d}}}let d=class extends c.default{constructor({system:e,containerManager:t}){super(),this.name="Transform",this.waitRemoveIds=[],this.waitChangeScenes=[],this.containerManager=t,this.init(e)}init(e){this.system=e,this.on("changeScene",({scene:e,mode:t,application:n})=>{this.waitChangeScenes.push({scene:e,mode:t,application:n})})}update(){for(const e of this.waitRemoveIds)this.containerManager.removeContainer(e);this.waitRemoveIds=[];for(const e of this.waitChangeScenes){const t=this.containerManager.getContainer(e.scene.id);t&&(e.application.stage.removeChildren(),e.application.stage.addChild(t))}this.waitChangeScenes=[]}componentChanged(e){e.type===t.OBSERVER_TYPE.ADD?this.addContainer(e):e.type===t.OBSERVER_TYPE.CHANGE?this.change(e):e.type===t.OBSERVER_TYPE.REMOVE&&this.waitRemoveIds.push(e.gameObject.id)}addContainer(e){const t=new n.Container;t.label=e.gameObject.name,this.containerManager.addContainer({name:e.gameObject.id,container:t});e.component.worldTransform=t.worldTransform}change(e){const t=e.component;if(t.parent){this.containerManager.getContainer(t.parent.gameObject.id).addChild(this.containerManager.getContainer(e.gameObject.id));const n=e.gameObject.transform.parent&&e.gameObject.transform.parent.gameObject.getComponent("Render");n&&(n.sortDirty=!0)}else{const n=this.containerManager.getContainer(e.gameObject.id);delete t.worldTransform,n.parent&&n.parent.removeChild(n)}}destroy(){this.removeAllListeners(),this.waitRemoveIds=null,this.waitChangeScenes=null,this.system=null,this.containerManager=null}};d=e.__decorate([t.decorators.componentObserver({Transform:["_parent"]})],d);var m=d;let l;var g;exports.RENDERER_TYPE=void 0,(g=exports.RENDERER_TYPE||(exports.RENDERER_TYPE={}))[g.UNKNOWN=0]="UNKNOWN",g[g.WEBGL=1]="WEBGL",g[g.CANVAS=2]="CANVAS";let u=class extends t.System{constructor(){super(...arguments),this.application=null,this.multiApps=[]}static{this.systemName="Renderer"}async init(e){this.params=e??{};const n=await this.createApplication(this.params);this.application=n,this.game.canvas=n.canvas,this.containerManager=new h,this.rendererManager=new p({game:this.game,rendererSystem:this}),this.transform=new m({system:this,containerManager:this.containerManager}),this.game.on("sceneChanged",async({scene:e,mode:n,params:r})=>{let a=this.application;n===t.LOAD_SCENE_MODE.MULTI_CANVAS&&(a=await this.createApplication(r),this.multiApps.push(a)),a&&(e.canvas=a.canvas,this.transform.emit("changeScene",{scene:e,mode:n,application:a}))});const r=n.renderer.gl;r&&(this.suportedCompressedTextureFormats=function(e){if(l)return l;if(!e)return console.warn("WebGL not available for compressed textures. Silently failing."),{s3tc:!1,etc:!1,etc1:!1,pvrtc:!1,atc:!1,astc:!1};l={s3tc:!!e.getExtension("WEBGL_compressed_texture_s3tc"),etc:!!e.getExtension("WEBGL_compressed_texture_etc"),etc1:!!e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:!!e.getExtension("WEBGL_compressed_texture_pvrtc")||!!e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:!!e.getExtension("WEBGL_compressed_texture_atc"),astc:!!e.getExtension("WEBGL_compressed_texture_astc")};try{console.log("Supported compressed texture formats: "+Object.keys(l).filter(e=>l[e]).join(", "))}catch(e){}return l}(r))}registerObserver(e){const t=this.constructor;t.observerInfo||(t.observerInfo={});const n=t.observerInfo;for(const t in e)n[t]||(n[t]=[]),n[t].push(...e[t])}async createApplication(e){const t={...e,autoStart:!0,sharedTicker:!0},r=new n.Application;try{await r.init(t)}catch{await r.init({...t,preference:"canvas"})}return s.Ticker.shared.stop(),s.Ticker.shared.autoStart=!1,r}update(){const e=this.componentObserver.clear();for(const t of e)this.transform.componentChanged(t);if(this.application)for(const e of this.game.gameObjects)this.containerManager.updateTransform({name:e.id,transform:e.transform}),this.rendererManager.update(e)}lateUpdate(e){this.application&&(this.transform.update(),this.application.ticker.update(e.time))}onDestroy(){this.application?.destroy();for(const e of this.multiApps)e&&e.destroy();this.transform.destroy(),this.transform=null,this.params=null,this.rendererManager=null,this.containerManager=null,this.application=null,this.game=null,this.multiApps=null}resize(e,t){this.application&&(this.params={...this.params,width:e,height:t},this.application.renderer.resize(e,t))}};u=e.__decorate([t.decorators.componentObserver({Transform:["_parent"]})],u);var f=u;Object.assign(f,{packageName:"@combos-fun/plugin-renderer",packageVersion:"0.0.48"});class E extends t.System{constructor(e){super(e),this.asyncIdMap={};const t=this.constructor;this.observerInfo=t.observerInfo}componentChanged(e){}rendererUpdate(e){}update(e){const t=this.componentObserver.clear();for(const e of t)this.componentChanged(e)}increaseAsyncId(e){return this.asyncIdMap[e]=(this.asyncIdMap[e]||0)+1,this.asyncIdMap[e]}validateAsyncId(e,t){return this.asyncIdMap[e]===t}}exports.ContainerManager=h,exports.RESOURCE_KEY_SPLIT="_s|r|c_",exports.Renderer=E,exports.RendererManager=p,exports.RendererSystem=f;
1
+ "use strict";var e=require("tslib"),t=require("@combos-fun/engine"),n=require("@combos-fun/renderer-adapter"),r=require("lodash-es/isEqual"),a=require("eventemitter3"),s=require("pixi.js");function o(e){return e&&e.__esModule?e:{default:e}}var i=o(r),c=o(a);class p{constructor({game:e,rendererSystem:t}){this.renderers=[],this.game=e,this.rendererSystem=t}register(...e){for(const t of e)t.game=this.game,t.rendererManager=this.rendererSystem.rendererManager,t.containerManager=this.rendererSystem.containerManager,this.renderers.push(t)}componentChanged(e){for(const n of e)for(const e of this.renderers){const r=e.observerInfo[n.componentName];if(r){if([t.OBSERVER_TYPE.ADD,t.OBSERVER_TYPE.REMOVE].indexOf(n.type)>-1){try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject.name}, ${n.componentName} is error.`,n,e)}continue}if(r.findIndex(e=>i.default(e,n.prop))>-1)try{e.componentChanged&&e.componentChanged(n)}catch(e){console.error(`gameObject: ${n.gameObject&&n.gameObject.name}, ${n.componentName} is componentChanged error.`,n,e)}}}}update(e){for(const t of e.components)for(const n of this.renderers){const r=[];if(n.observerInfo[t.name]&&-1===r.indexOf(e)){r.push(e);try{n.rendererUpdate&&n.rendererUpdate(e)}catch(n){console.info(`gameObject: ${e.name}, ${t.name} is update error`,n)}}}}}class h{constructor(){this.containerMap={}}addContainer({name:e,container:t}){this.containerMap[e]=t}getContainer(e){return this.containerMap[e]}removeContainer(e){this.containerMap[e]?.destroy({children:!0}),delete this.containerMap[e]}updateTransform({name:e,transform:t}){const n=this.containerMap[e];if(!n||!t)return;const{anchor:r,origin:a,position:s,rotation:o,scale:i,size:c,skew:p}=t;n.rotation=o,n.scale=i,n.pivot.x=c.width*a.x,n.pivot.y=c.height*a.y,n.skew=p;let h=s.x,d=s.y;if(t.parent){const e=t.parent;h+=e.size.width*r.x,d+=e.size.height*r.y}n.position={x:h,y:d}}}let d=class extends c.default{constructor({system:e,containerManager:t}){super(),this.name="Transform",this.waitRemoveIds=[],this.waitChangeScenes=[],this.containerManager=t,this.init(e)}init(e){this.system=e,this.on("changeScene",({scene:e,mode:t,application:n})=>{this.waitChangeScenes.push({scene:e,mode:t,application:n})})}update(){for(const e of this.waitRemoveIds)this.containerManager.removeContainer(e);this.waitRemoveIds=[];for(const e of this.waitChangeScenes){const t=this.containerManager.getContainer(e.scene.id);t&&(e.application.stage.removeChildren(),e.application.stage.addChild(t))}this.waitChangeScenes=[]}componentChanged(e){e.type===t.OBSERVER_TYPE.ADD?this.addContainer(e):e.type===t.OBSERVER_TYPE.CHANGE?this.change(e):e.type===t.OBSERVER_TYPE.REMOVE&&this.waitRemoveIds.push(e.gameObject.id)}addContainer(e){const t=new n.Container;t.label=e.gameObject.name,this.containerManager.addContainer({name:e.gameObject.id,container:t});e.component.worldTransform=t.worldTransform}change(e){const t=e.component;if(t.parent){this.containerManager.getContainer(t.parent.gameObject.id).addChild(this.containerManager.getContainer(e.gameObject.id));const n=e.gameObject.transform.parent&&e.gameObject.transform.parent.gameObject.getComponent("Render");n&&(n.sortDirty=!0)}else{const n=this.containerManager.getContainer(e.gameObject.id);delete t.worldTransform,n.parent&&n.parent.removeChild(n)}}destroy(){this.removeAllListeners(),this.waitRemoveIds=null,this.waitChangeScenes=null,this.system=null,this.containerManager=null}};d=e.__decorate([t.decorators.componentObserver({Transform:["_parent"]})],d);var m=d;let l;var g;exports.RENDERER_TYPE=void 0,(g=exports.RENDERER_TYPE||(exports.RENDERER_TYPE={}))[g.UNKNOWN=0]="UNKNOWN",g[g.WEBGL=1]="WEBGL",g[g.CANVAS=2]="CANVAS";let u=class extends t.System{constructor(){super(...arguments),this.application=null,this.multiApps=[]}static{this.systemName="Renderer"}async init(e){this.params=e??{};const n=await this.createApplication(this.params);this.application=n,this.game.canvas=n.canvas,this.containerManager=new h,this.rendererManager=new p({game:this.game,rendererSystem:this}),this.transform=new m({system:this,containerManager:this.containerManager}),this.game.on("sceneChanged",async({scene:e,mode:n,params:r})=>{let a=this.application;n===t.LOAD_SCENE_MODE.MULTI_CANVAS&&(a=await this.createApplication(r),this.multiApps.push(a)),a&&(e.canvas=a.canvas,this.transform.emit("changeScene",{scene:e,mode:n,application:a}))});const r=n.renderer.gl;r&&(this.suportedCompressedTextureFormats=function(e){if(l)return l;if(!e)return console.warn("WebGL not available for compressed textures. Silently failing."),{s3tc:!1,etc:!1,etc1:!1,pvrtc:!1,atc:!1,astc:!1};l={s3tc:!!e.getExtension("WEBGL_compressed_texture_s3tc"),etc:!!e.getExtension("WEBGL_compressed_texture_etc"),etc1:!!e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:!!e.getExtension("WEBGL_compressed_texture_pvrtc")||!!e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:!!e.getExtension("WEBGL_compressed_texture_atc"),astc:!!e.getExtension("WEBGL_compressed_texture_astc")};try{console.log("Supported compressed texture formats: "+Object.keys(l).filter(e=>l[e]).join(", "))}catch(e){}return l}(r))}registerObserver(e){const t=this.constructor;t.observerInfo||(t.observerInfo={});const n=t.observerInfo;for(const t in e)n[t]||(n[t]=[]),n[t].push(...e[t])}async createApplication(e){const t={...e,autoStart:!0,sharedTicker:!0},r=new n.Application;try{await r.init(t)}catch{await r.init({...t,preference:"canvas"})}return s.Ticker.shared.stop(),s.Ticker.shared.autoStart=!1,r}update(){const e=this.componentObserver.clear();for(const t of e)this.transform.componentChanged(t);if(this.application)for(const e of this.game.gameObjects)this.containerManager.updateTransform({name:e.id,transform:e.transform}),this.rendererManager.update(e)}lateUpdate(e){this.application&&(this.transform.update(),this.application.ticker.update(e.time))}onDestroy(){this.application?.destroy();for(const e of this.multiApps)e&&e.destroy();this.transform.destroy(),this.transform=null,this.params=null,this.rendererManager=null,this.containerManager=null,this.application=null,this.game=null,this.multiApps=null}resize(e,t){this.application&&(this.params={...this.params,width:e,height:t},this.application.renderer.resize(e,t))}};u=e.__decorate([t.decorators.componentObserver({Transform:["_parent"]})],u);var f=u;Object.assign(f,{packageName:"@combos-fun/plugin-renderer",packageVersion:"0.0.50"});class E extends t.System{constructor(e){super(e),this.asyncIdMap={};const t=this.constructor;this.observerInfo=t.observerInfo}componentChanged(e){}rendererUpdate(e){}update(e){const t=this.componentObserver.clear();for(const e of t)this.componentChanged(e)}increaseAsyncId(e){return this.asyncIdMap[e]=(this.asyncIdMap[e]||0)+1,this.asyncIdMap[e]}validateAsyncId(e,t){return this.asyncIdMap[e]===t}}exports.ContainerManager=h,exports.RESOURCE_KEY_SPLIT="_s|r|c_",exports.Renderer=E,exports.RendererManager=p,exports.RendererSystem=f;
@@ -361,7 +361,7 @@ var Renderer$2 = Renderer$1;
361
361
  /** Auto-generated by scripts/build-package.mjs — do not edit. */
362
362
  Object.assign(Renderer$2, {
363
363
  packageName: "@combos-fun/plugin-renderer",
364
- packageVersion: "0.0.48",
364
+ packageVersion: "0.0.50",
365
365
  });
366
366
 
367
367
  /* eslint-disable @typescript-eslint/no-unused-vars */
@@ -1 +1 @@
1
- {"version":3,"file":"plugin-renderer.esm.js","sources":["../lib/manager/RendererManager.ts","../lib/manager/ContainerManager.ts","../lib/Transform.ts","../lib/compressedTexture/ability.ts","../lib/System.ts","../lib/__combosPackageMeta.gen.ts","../lib/Renderer.ts","../lib/index.ts"],"sourcesContent":["import isEqual from 'lodash-es/isEqual';\nimport { GameObject, Game, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport Renderer from '../Renderer';\nimport RendererSystem from '../System';\n\nclass RendererManager {\n game: Game;\n rendererSystem: RendererSystem;\n constructor({ game, rendererSystem }) {\n this.game = game;\n this.rendererSystem = rendererSystem;\n }\n renderers: Renderer[] = [];\n register(...renderers: Renderer[]) {\n for (const renderer of renderers) {\n renderer.game = this.game;\n renderer.rendererManager = this.rendererSystem.rendererManager;\n renderer.containerManager = this.rendererSystem.containerManager;\n this.renderers.push(renderer);\n }\n }\n componentChanged(changes: ComponentChanged[]) {\n for (const changed of changes) {\n for (const renderer of this.renderers) {\n const props = renderer.observerInfo[changed.componentName];\n if (props) {\n if ([OBSERVER_TYPE.ADD, OBSERVER_TYPE.REMOVE].indexOf(changed.type) > -1) {\n try {\n renderer.componentChanged && renderer.componentChanged(changed);\n } catch (e) {\n console.error(`gameObject: ${changed.gameObject.name}, ${changed.componentName} is error.`, changed, e);\n }\n continue;\n }\n\n const index = props.findIndex(prop => {\n return isEqual(prop, changed.prop);\n });\n\n if (index > -1) {\n try {\n renderer.componentChanged && renderer.componentChanged(changed);\n } catch (e) {\n console.error(\n `gameObject: ${changed.gameObject && changed.gameObject.name}, ${\n changed.componentName\n } is componentChanged error.`,\n changed,\n e,\n );\n }\n }\n }\n }\n }\n }\n update(gameObject: GameObject) {\n for (const component of gameObject.components) {\n for (const renderer of this.renderers) {\n const cache = [];\n const props = renderer.observerInfo[component.name];\n if (props && cache.indexOf(gameObject) === -1) {\n cache.push(gameObject);\n try {\n renderer.rendererUpdate && renderer.rendererUpdate(gameObject);\n } catch (e) {\n console.info(`gameObject: ${gameObject.name}, ${component.name} is update error`, e);\n }\n }\n }\n }\n }\n}\nexport default RendererManager;\n","import { Transform } from '@combos-fun/engine';\nimport { Point, ObservablePoint } from 'pixi.js';\nimport { Container } from '@combos-fun/renderer-adapter';\n\nexport default class ContainerManager {\n containerMap: { [propName: number]: Container } = {};\n addContainer({ name, container }: { name: number; container: Container }) {\n this.containerMap[name] = container;\n }\n getContainer(name: number) {\n return this.containerMap[name];\n }\n removeContainer(name: number) {\n this.containerMap[name]?.destroy({ children: true });\n delete this.containerMap[name];\n }\n updateTransform({ name, transform }: { name: number; transform: Transform }) {\n const container = this.containerMap[name];\n if (!container || !transform) return;\n const { anchor, origin, position, rotation, scale, size, skew } = transform;\n container.rotation = rotation;\n container.scale = scale as Point;\n container.pivot.x = size.width * origin.x;\n container.pivot.y = size.height * origin.y;\n container.skew = skew as ObservablePoint;\n let x = position.x;\n let y = position.y;\n if (transform.parent) {\n const parent = transform.parent;\n x = x + parent.size.width * anchor.x;\n y = y + parent.size.height * anchor.y;\n }\n\n container.position = { x, y } as Point;\n }\n}\n","import { Transform as Trans, decorators, ComponentChanged, OBSERVER_TYPE, Scene, LOAD_SCENE_MODE } from '@combos-fun/engine';\nimport EventEmitter from 'eventemitter3';\nimport { Application, Container } from '@combos-fun/renderer-adapter';\nimport Render from './System';\nimport ContainerManager from './manager/ContainerManager';\n\n/** Surface used from the Render component; avoids importing plugin-renderer-render (workspace cycle). */\ntype RenderSortDirty = { sortDirty: boolean };\n\n@decorators.componentObserver({\n Transform: ['_parent'],\n})\nexport default class Transform extends EventEmitter {\n name: string = 'Transform';\n waitRemoveIds: number[] = [];\n waitSceneId: number;\n system: Render;\n containerManager: ContainerManager;\n waitChangeScenes: {\n scene: Scene;\n mode: LOAD_SCENE_MODE;\n application: Application;\n }[] = [];\n constructor({ system, containerManager }) {\n super();\n this.containerManager = containerManager;\n this.init(system);\n }\n init(system: Render) {\n this.system = system;\n this.on('changeScene', ({ scene, mode, application }) => {\n // switch (mode) {\n // case LOAD_SCENE_MODE.SINGLE:\n this.waitChangeScenes.push({ scene, mode, application });\n // break;\n // case LOAD_SCENE_MODE.MULTI_CANVAS:\n\n // }\n });\n }\n update() {\n for (const id of this.waitRemoveIds) {\n this.containerManager.removeContainer(id);\n }\n this.waitRemoveIds = [];\n\n for (const sceneInfo of this.waitChangeScenes) {\n // set scene\n const container = this.containerManager.getContainer(sceneInfo.scene.id);\n if (container) {\n sceneInfo.application.stage.removeChildren();\n sceneInfo.application.stage.addChild(container);\n }\n }\n this.waitChangeScenes = [];\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.type === OBSERVER_TYPE.ADD) {\n this.addContainer(changed);\n } else if (changed.type === OBSERVER_TYPE.CHANGE) {\n this.change(changed);\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.waitRemoveIds.push(changed.gameObject.id);\n }\n }\n addContainer(changed: ComponentChanged) {\n const container = new Container();\n container.label = changed.gameObject.name;\n this.containerManager.addContainer({\n name: changed.gameObject.id,\n container,\n });\n const transform = changed.component as Trans;\n // Pixi v8 exposes `worldTransform` on the display object; nested `transform.worldTransform` is gone.\n transform.worldTransform = container.worldTransform as unknown as Trans['worldTransform'];\n }\n change(changed: ComponentChanged) {\n const transform = changed.component as Trans;\n if (transform.parent) {\n const parentContainer = this.containerManager.getContainer(transform.parent.gameObject.id);\n parentContainer.addChild(this.containerManager.getContainer(changed.gameObject.id));\n\n const render =\n changed.gameObject.transform.parent &&\n (changed.gameObject.transform.parent.gameObject.getComponent('Render') as unknown as RenderSortDirty);\n if (render) {\n render.sortDirty = true;\n }\n } else {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n delete transform.worldTransform;\n container.parent && container.parent.removeChild(container);\n }\n }\n destroy() {\n this.removeAllListeners();\n this.waitRemoveIds = null;\n this.waitChangeScenes = null;\n this.system = null;\n this.containerManager = null;\n }\n}\n","/**\n * Inspired by PixiJS v6\n */\nexport type CompressedTextureExtensions = {\n s3tc?: WEBGL_compressed_texture_s3tc,\n s3tc_sRGB: WEBGL_compressed_texture_s3tc_srgb,\n etc: WEBGL_compressed_texture_etc,\n etc1: WEBGL_compressed_texture_etc1,\n pvrtc: WEBKIT_WEBGL_compressed_texture_pvrtc,\n atc: WEBGL_compressed_texture_atc,\n astc: WEBGL_compressed_texture_astc\n};\nexport type CompressedTextureExtensionRef = keyof CompressedTextureExtensions;\nlet result = undefined;\nexport interface SuportedCompressedTexture {\n s3tc: boolean,\n etc: boolean,\n etc1: boolean,\n pvrtc: boolean,\n atc: boolean,\n astc: boolean,\n}\nexport function getSuportCompressedTextureFormats(gl: WebGLRenderingContext): SuportedCompressedTexture {\n if (result) return result;\n\n if (!gl) {\n // #if _DEBUG\n console.warn('WebGL not available for compressed textures. Silently failing.');\n // #endif\n\n return {\n s3tc: false,\n etc: false,\n etc1: false,\n pvrtc: false,\n atc: false,\n astc: false,\n };\n }\n\n result = {\n s3tc: !!gl.getExtension('WEBGL_compressed_texture_s3tc'),\n etc: !!gl.getExtension('WEBGL_compressed_texture_etc'),\n etc1: !!gl.getExtension('WEBGL_compressed_texture_etc1'),\n pvrtc: !!gl.getExtension('WEBGL_compressed_texture_pvrtc')\n || !!gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'),\n atc: !!gl.getExtension('WEBGL_compressed_texture_atc'),\n astc: !!gl.getExtension('WEBGL_compressed_texture_astc')\n };\n\n try {\n console.log('Supported compressed texture formats: ' + Object.keys(result).filter((type) => result[type]).join(', '))\n } catch (e) { }\n return result;\n}","import { System, decorators, Game, LOAD_SCENE_MODE, PureObserverInfo } from '@combos-fun/engine';\nimport { Application } from '@combos-fun/renderer-adapter';\nimport RendererManager from './manager/RendererManager';\nimport ContainerManager from './manager/ContainerManager';\nimport Transform from './Transform';\nimport { Ticker } from 'pixi.js';\nimport type { ApplicationOptions } from 'pixi.js';\nimport type { Renderer as PixiRenderer } from 'pixi.js';\nimport type { WebGLRenderer } from 'pixi.js';\nimport { registerCompressedTexture } from './compressedTexture';\nimport { SuportedCompressedTexture, getSuportCompressedTextureFormats } from './compressedTexture/ability';\n\nexport enum RENDERER_TYPE {\n UNKNOWN = 0,\n WEBGL = 1,\n CANVAS = 2,\n}\n\n@decorators.componentObserver({\n Transform: ['_parent'],\n})\nexport default class Renderer extends System<Partial<ApplicationOptions>> {\n static systemName: string = 'Renderer';\n params: Partial<ApplicationOptions>;\n rendererManager: RendererManager;\n containerManager: ContainerManager;\n application: Application | null = null;\n game: Game;\n transform: Transform;\n multiApps: Application[] = [];\n suportedCompressedTextureFormats: SuportedCompressedTexture;\n\n async init(params?: Partial<ApplicationOptions>) {\n this.params = params ?? {};\n const app = await this.createApplication(this.params);\n this.application = app;\n this.game.canvas = app.canvas;\n this.containerManager = new ContainerManager();\n this.rendererManager = new RendererManager({\n game: this.game,\n rendererSystem: this,\n });\n\n this.transform = new Transform({\n system: this,\n containerManager: this.containerManager,\n });\n this.game.on('sceneChanged', async ({ scene, mode, params: sceneParams }) => {\n let application: Application | null = this.application;\n if (mode === LOAD_SCENE_MODE.MULTI_CANVAS) {\n application = await this.createApplication(sceneParams);\n this.multiApps.push(application);\n }\n if (!application) {\n return;\n }\n scene.canvas = application.canvas;\n this.transform.emit('changeScene', {\n scene,\n mode,\n application,\n });\n });\n\n const gl = (app.renderer as WebGLRenderer).gl;\n if (gl) {\n this.suportedCompressedTextureFormats = getSuportCompressedTextureFormats(gl);\n registerCompressedTexture(gl);\n }\n }\n\n registerObserver(observerInfo: PureObserverInfo): void {\n const Ctor = this.constructor as typeof Renderer & { observerInfo: PureObserverInfo };\n if (!Ctor.observerInfo) {\n Ctor.observerInfo = {} as PureObserverInfo;\n }\n const thisObserverInfo = Ctor.observerInfo;\n for (const key in observerInfo) {\n if (!thisObserverInfo[key]) {\n thisObserverInfo[key] = [];\n }\n thisObserverInfo[key].push(...observerInfo[key]);\n }\n }\n\n private async createApplication(params: Partial<ApplicationOptions>): Promise<Application> {\n const initOptions: Partial<ApplicationOptions> = {\n ...params,\n autoStart: true,\n sharedTicker: true,\n };\n\n const app = new Application();\n try {\n await app.init(initOptions);\n } catch {\n await app.init({\n ...initOptions,\n preference: 'canvas',\n });\n }\n\n Ticker.shared.stop();\n Ticker.shared.autoStart = false;\n\n return app;\n }\n\n update() {\n const changes = this.componentObserver.clear();\n for (const changed of changes) {\n this.transform.componentChanged(changed);\n }\n if (!this.application) {\n return;\n }\n for (const gameObject of this.game.gameObjects) {\n this.containerManager.updateTransform({\n name: gameObject.id,\n transform: gameObject.transform,\n });\n this.rendererManager.update(gameObject);\n }\n }\n\n lateUpdate(e) {\n if (!this.application) {\n return;\n }\n this.transform.update();\n this.application.ticker.update(e.time);\n }\n\n onDestroy() {\n this.application?.destroy();\n for (const app of this.multiApps) {\n app && app.destroy();\n }\n this.transform.destroy();\n this.transform = null;\n this.params = null;\n this.rendererManager = null;\n this.containerManager = null;\n this.application = null;\n this.game = null;\n this.multiApps = null;\n }\n\n resize(width, height) {\n if (!this.application) {\n return;\n }\n this.params = { ...this.params, width, height };\n this.application.renderer.resize(width, height);\n }\n}\n","/** Auto-generated by scripts/build-package.mjs — do not edit. */\n\nimport Renderer from './System';\n\nObject.assign(Renderer, {\n packageName: \"@combos-fun/plugin-renderer\",\n packageVersion: \"0.0.48\",\n});\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { GameObject, Game, PureObserverInfo, ComponentChanged, System, UpdateParams } from '@combos-fun/engine';\nimport ContainerManager from './manager/ContainerManager';\nimport RendererManager from './manager/RendererManager';\n\nexport default class Renderer<T extends {} = {}> extends System<T> {\n /**\n * Renderer name\n */\n name: string;\n\n /**\n * currentGame\n */\n game: Game;\n\n /**\n * observer component props info\n */\n static observerInfo: PureObserverInfo;\n\n /**\n * observer component props info\n */\n observerInfo: PureObserverInfo;\n\n /**\n * containerManager\n */\n containerManager: ContainerManager;\n rendererManager: RendererManager;\n\n constructor(params?: T) {\n super(params);\n const Ctor = this.constructor as typeof Renderer & { observerInfo: PureObserverInfo };\n this.observerInfo = Ctor.observerInfo;\n }\n\n // init(arg?: any): void;\n\n /**\n * Called when an observed component property changes.\n */\n componentChanged(_changed: ComponentChanged) { }\n\n /**\n * Called every frame.\n * @param _gameObject gameObject\n */\n rendererUpdate(_gameObject: GameObject) { }\n\n override update(e?: UpdateParams): void {\n const changes = this.componentObserver.clear();\n for (const changed of changes) {\n this.componentChanged(changed);\n }\n }\n\n protected asyncIdMap: Record<number, number> = {}\n\n protected increaseAsyncId(id: number) {\n this.asyncIdMap[id] = (this.asyncIdMap[id] || 0) + 1;\n return this.asyncIdMap[id];\n }\n\n protected validateAsyncId(id: number, asyncId: number) {\n return this.asyncIdMap[id] === asyncId;\n }\n}\n","import RendererSystem, { RENDERER_TYPE } from './System';\nimport RendererManager from './manager/RendererManager';\nimport ContainerManager from './manager/ContainerManager';\nimport Renderer from './Renderer';\n\n/** Shared resource cache key separator used across renderer plugins */\nexport const RESOURCE_KEY_SPLIT = '_s|r|c_';\n\nexport { RendererManager, ContainerManager, RendererSystem, RENDERER_TYPE, Renderer };\n\n"],"names":["Renderer","Transform"],"mappings":"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"}
1
+ {"version":3,"file":"plugin-renderer.esm.js","sources":["../lib/manager/RendererManager.ts","../lib/manager/ContainerManager.ts","../lib/Transform.ts","../lib/compressedTexture/ability.ts","../lib/System.ts","../lib/__combosPackageMeta.gen.ts","../lib/Renderer.ts","../lib/index.ts"],"sourcesContent":["import isEqual from 'lodash-es/isEqual';\nimport { GameObject, Game, ComponentChanged, OBSERVER_TYPE } from '@combos-fun/engine';\nimport Renderer from '../Renderer';\nimport RendererSystem from '../System';\n\nclass RendererManager {\n game: Game;\n rendererSystem: RendererSystem;\n constructor({ game, rendererSystem }) {\n this.game = game;\n this.rendererSystem = rendererSystem;\n }\n renderers: Renderer[] = [];\n register(...renderers: Renderer[]) {\n for (const renderer of renderers) {\n renderer.game = this.game;\n renderer.rendererManager = this.rendererSystem.rendererManager;\n renderer.containerManager = this.rendererSystem.containerManager;\n this.renderers.push(renderer);\n }\n }\n componentChanged(changes: ComponentChanged[]) {\n for (const changed of changes) {\n for (const renderer of this.renderers) {\n const props = renderer.observerInfo[changed.componentName];\n if (props) {\n if ([OBSERVER_TYPE.ADD, OBSERVER_TYPE.REMOVE].indexOf(changed.type) > -1) {\n try {\n renderer.componentChanged && renderer.componentChanged(changed);\n } catch (e) {\n console.error(`gameObject: ${changed.gameObject.name}, ${changed.componentName} is error.`, changed, e);\n }\n continue;\n }\n\n const index = props.findIndex(prop => {\n return isEqual(prop, changed.prop);\n });\n\n if (index > -1) {\n try {\n renderer.componentChanged && renderer.componentChanged(changed);\n } catch (e) {\n console.error(\n `gameObject: ${changed.gameObject && changed.gameObject.name}, ${\n changed.componentName\n } is componentChanged error.`,\n changed,\n e,\n );\n }\n }\n }\n }\n }\n }\n update(gameObject: GameObject) {\n for (const component of gameObject.components) {\n for (const renderer of this.renderers) {\n const cache = [];\n const props = renderer.observerInfo[component.name];\n if (props && cache.indexOf(gameObject) === -1) {\n cache.push(gameObject);\n try {\n renderer.rendererUpdate && renderer.rendererUpdate(gameObject);\n } catch (e) {\n console.info(`gameObject: ${gameObject.name}, ${component.name} is update error`, e);\n }\n }\n }\n }\n }\n}\nexport default RendererManager;\n","import { Transform } from '@combos-fun/engine';\nimport { Point, ObservablePoint } from 'pixi.js';\nimport { Container } from '@combos-fun/renderer-adapter';\n\nexport default class ContainerManager {\n containerMap: { [propName: number]: Container } = {};\n addContainer({ name, container }: { name: number; container: Container }) {\n this.containerMap[name] = container;\n }\n getContainer(name: number) {\n return this.containerMap[name];\n }\n removeContainer(name: number) {\n this.containerMap[name]?.destroy({ children: true });\n delete this.containerMap[name];\n }\n updateTransform({ name, transform }: { name: number; transform: Transform }) {\n const container = this.containerMap[name];\n if (!container || !transform) return;\n const { anchor, origin, position, rotation, scale, size, skew } = transform;\n container.rotation = rotation;\n container.scale = scale as Point;\n container.pivot.x = size.width * origin.x;\n container.pivot.y = size.height * origin.y;\n container.skew = skew as ObservablePoint;\n let x = position.x;\n let y = position.y;\n if (transform.parent) {\n const parent = transform.parent;\n x = x + parent.size.width * anchor.x;\n y = y + parent.size.height * anchor.y;\n }\n\n container.position = { x, y } as Point;\n }\n}\n","import { Transform as Trans, decorators, ComponentChanged, OBSERVER_TYPE, Scene, LOAD_SCENE_MODE } from '@combos-fun/engine';\nimport EventEmitter from 'eventemitter3';\nimport { Application, Container } from '@combos-fun/renderer-adapter';\nimport Render from './System';\nimport ContainerManager from './manager/ContainerManager';\n\n/** Surface used from the Render component; avoids importing plugin-renderer-render (workspace cycle). */\ntype RenderSortDirty = { sortDirty: boolean };\n\n@decorators.componentObserver({\n Transform: ['_parent'],\n})\nexport default class Transform extends EventEmitter {\n name: string = 'Transform';\n waitRemoveIds: number[] = [];\n waitSceneId: number;\n system: Render;\n containerManager: ContainerManager;\n waitChangeScenes: {\n scene: Scene;\n mode: LOAD_SCENE_MODE;\n application: Application;\n }[] = [];\n constructor({ system, containerManager }) {\n super();\n this.containerManager = containerManager;\n this.init(system);\n }\n init(system: Render) {\n this.system = system;\n this.on('changeScene', ({ scene, mode, application }) => {\n // switch (mode) {\n // case LOAD_SCENE_MODE.SINGLE:\n this.waitChangeScenes.push({ scene, mode, application });\n // break;\n // case LOAD_SCENE_MODE.MULTI_CANVAS:\n\n // }\n });\n }\n update() {\n for (const id of this.waitRemoveIds) {\n this.containerManager.removeContainer(id);\n }\n this.waitRemoveIds = [];\n\n for (const sceneInfo of this.waitChangeScenes) {\n // set scene\n const container = this.containerManager.getContainer(sceneInfo.scene.id);\n if (container) {\n sceneInfo.application.stage.removeChildren();\n sceneInfo.application.stage.addChild(container);\n }\n }\n this.waitChangeScenes = [];\n }\n componentChanged(changed: ComponentChanged) {\n if (changed.type === OBSERVER_TYPE.ADD) {\n this.addContainer(changed);\n } else if (changed.type === OBSERVER_TYPE.CHANGE) {\n this.change(changed);\n } else if (changed.type === OBSERVER_TYPE.REMOVE) {\n this.waitRemoveIds.push(changed.gameObject.id);\n }\n }\n addContainer(changed: ComponentChanged) {\n const container = new Container();\n container.label = changed.gameObject.name;\n this.containerManager.addContainer({\n name: changed.gameObject.id,\n container,\n });\n const transform = changed.component as Trans;\n // Pixi v8 exposes `worldTransform` on the display object; nested `transform.worldTransform` is gone.\n transform.worldTransform = container.worldTransform as unknown as Trans['worldTransform'];\n }\n change(changed: ComponentChanged) {\n const transform = changed.component as Trans;\n if (transform.parent) {\n const parentContainer = this.containerManager.getContainer(transform.parent.gameObject.id);\n parentContainer.addChild(this.containerManager.getContainer(changed.gameObject.id));\n\n const render =\n changed.gameObject.transform.parent &&\n (changed.gameObject.transform.parent.gameObject.getComponent('Render') as unknown as RenderSortDirty);\n if (render) {\n render.sortDirty = true;\n }\n } else {\n const container = this.containerManager.getContainer(changed.gameObject.id);\n delete transform.worldTransform;\n container.parent && container.parent.removeChild(container);\n }\n }\n destroy() {\n this.removeAllListeners();\n this.waitRemoveIds = null;\n this.waitChangeScenes = null;\n this.system = null;\n this.containerManager = null;\n }\n}\n","/**\n * Inspired by PixiJS v6\n */\nexport type CompressedTextureExtensions = {\n s3tc?: WEBGL_compressed_texture_s3tc,\n s3tc_sRGB: WEBGL_compressed_texture_s3tc_srgb,\n etc: WEBGL_compressed_texture_etc,\n etc1: WEBGL_compressed_texture_etc1,\n pvrtc: WEBKIT_WEBGL_compressed_texture_pvrtc,\n atc: WEBGL_compressed_texture_atc,\n astc: WEBGL_compressed_texture_astc\n};\nexport type CompressedTextureExtensionRef = keyof CompressedTextureExtensions;\nlet result = undefined;\nexport interface SuportedCompressedTexture {\n s3tc: boolean,\n etc: boolean,\n etc1: boolean,\n pvrtc: boolean,\n atc: boolean,\n astc: boolean,\n}\nexport function getSuportCompressedTextureFormats(gl: WebGLRenderingContext): SuportedCompressedTexture {\n if (result) return result;\n\n if (!gl) {\n // #if _DEBUG\n console.warn('WebGL not available for compressed textures. Silently failing.');\n // #endif\n\n return {\n s3tc: false,\n etc: false,\n etc1: false,\n pvrtc: false,\n atc: false,\n astc: false,\n };\n }\n\n result = {\n s3tc: !!gl.getExtension('WEBGL_compressed_texture_s3tc'),\n etc: !!gl.getExtension('WEBGL_compressed_texture_etc'),\n etc1: !!gl.getExtension('WEBGL_compressed_texture_etc1'),\n pvrtc: !!gl.getExtension('WEBGL_compressed_texture_pvrtc')\n || !!gl.getExtension('WEBKIT_WEBGL_compressed_texture_pvrtc'),\n atc: !!gl.getExtension('WEBGL_compressed_texture_atc'),\n astc: !!gl.getExtension('WEBGL_compressed_texture_astc')\n };\n\n try {\n console.log('Supported compressed texture formats: ' + Object.keys(result).filter((type) => result[type]).join(', '))\n } catch (e) { }\n return result;\n}","import { System, decorators, Game, LOAD_SCENE_MODE, PureObserverInfo } from '@combos-fun/engine';\nimport { Application } from '@combos-fun/renderer-adapter';\nimport RendererManager from './manager/RendererManager';\nimport ContainerManager from './manager/ContainerManager';\nimport Transform from './Transform';\nimport { Ticker } from 'pixi.js';\nimport type { ApplicationOptions } from 'pixi.js';\nimport type { Renderer as PixiRenderer } from 'pixi.js';\nimport type { WebGLRenderer } from 'pixi.js';\nimport { registerCompressedTexture } from './compressedTexture';\nimport { SuportedCompressedTexture, getSuportCompressedTextureFormats } from './compressedTexture/ability';\n\nexport enum RENDERER_TYPE {\n UNKNOWN = 0,\n WEBGL = 1,\n CANVAS = 2,\n}\n\n@decorators.componentObserver({\n Transform: ['_parent'],\n})\nexport default class Renderer extends System<Partial<ApplicationOptions>> {\n static systemName: string = 'Renderer';\n params: Partial<ApplicationOptions>;\n rendererManager: RendererManager;\n containerManager: ContainerManager;\n application: Application | null = null;\n game: Game;\n transform: Transform;\n multiApps: Application[] = [];\n suportedCompressedTextureFormats: SuportedCompressedTexture;\n\n async init(params?: Partial<ApplicationOptions>) {\n this.params = params ?? {};\n const app = await this.createApplication(this.params);\n this.application = app;\n this.game.canvas = app.canvas;\n this.containerManager = new ContainerManager();\n this.rendererManager = new RendererManager({\n game: this.game,\n rendererSystem: this,\n });\n\n this.transform = new Transform({\n system: this,\n containerManager: this.containerManager,\n });\n this.game.on('sceneChanged', async ({ scene, mode, params: sceneParams }) => {\n let application: Application | null = this.application;\n if (mode === LOAD_SCENE_MODE.MULTI_CANVAS) {\n application = await this.createApplication(sceneParams);\n this.multiApps.push(application);\n }\n if (!application) {\n return;\n }\n scene.canvas = application.canvas;\n this.transform.emit('changeScene', {\n scene,\n mode,\n application,\n });\n });\n\n const gl = (app.renderer as WebGLRenderer).gl;\n if (gl) {\n this.suportedCompressedTextureFormats = getSuportCompressedTextureFormats(gl);\n registerCompressedTexture(gl);\n }\n }\n\n registerObserver(observerInfo: PureObserverInfo): void {\n const Ctor = this.constructor as typeof Renderer & { observerInfo: PureObserverInfo };\n if (!Ctor.observerInfo) {\n Ctor.observerInfo = {} as PureObserverInfo;\n }\n const thisObserverInfo = Ctor.observerInfo;\n for (const key in observerInfo) {\n if (!thisObserverInfo[key]) {\n thisObserverInfo[key] = [];\n }\n thisObserverInfo[key].push(...observerInfo[key]);\n }\n }\n\n private async createApplication(params: Partial<ApplicationOptions>): Promise<Application> {\n const initOptions: Partial<ApplicationOptions> = {\n ...params,\n autoStart: true,\n sharedTicker: true,\n };\n\n const app = new Application();\n try {\n await app.init(initOptions);\n } catch {\n await app.init({\n ...initOptions,\n preference: 'canvas',\n });\n }\n\n Ticker.shared.stop();\n Ticker.shared.autoStart = false;\n\n return app;\n }\n\n update() {\n const changes = this.componentObserver.clear();\n for (const changed of changes) {\n this.transform.componentChanged(changed);\n }\n if (!this.application) {\n return;\n }\n for (const gameObject of this.game.gameObjects) {\n this.containerManager.updateTransform({\n name: gameObject.id,\n transform: gameObject.transform,\n });\n this.rendererManager.update(gameObject);\n }\n }\n\n lateUpdate(e) {\n if (!this.application) {\n return;\n }\n this.transform.update();\n this.application.ticker.update(e.time);\n }\n\n onDestroy() {\n this.application?.destroy();\n for (const app of this.multiApps) {\n app && app.destroy();\n }\n this.transform.destroy();\n this.transform = null;\n this.params = null;\n this.rendererManager = null;\n this.containerManager = null;\n this.application = null;\n this.game = null;\n this.multiApps = null;\n }\n\n resize(width, height) {\n if (!this.application) {\n return;\n }\n this.params = { ...this.params, width, height };\n this.application.renderer.resize(width, height);\n }\n}\n","/** Auto-generated by scripts/build-package.mjs — do not edit. */\n\nimport Renderer from './System';\n\nObject.assign(Renderer, {\n packageName: \"@combos-fun/plugin-renderer\",\n packageVersion: \"0.0.50\",\n});\n","/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { GameObject, Game, PureObserverInfo, ComponentChanged, System, UpdateParams } from '@combos-fun/engine';\nimport ContainerManager from './manager/ContainerManager';\nimport RendererManager from './manager/RendererManager';\n\nexport default class Renderer<T extends {} = {}> extends System<T> {\n /**\n * Renderer name\n */\n name: string;\n\n /**\n * currentGame\n */\n game: Game;\n\n /**\n * observer component props info\n */\n static observerInfo: PureObserverInfo;\n\n /**\n * observer component props info\n */\n observerInfo: PureObserverInfo;\n\n /**\n * containerManager\n */\n containerManager: ContainerManager;\n rendererManager: RendererManager;\n\n constructor(params?: T) {\n super(params);\n const Ctor = this.constructor as typeof Renderer & { observerInfo: PureObserverInfo };\n this.observerInfo = Ctor.observerInfo;\n }\n\n // init(arg?: any): void;\n\n /**\n * Called when an observed component property changes.\n */\n componentChanged(_changed: ComponentChanged) { }\n\n /**\n * Called every frame.\n * @param _gameObject gameObject\n */\n rendererUpdate(_gameObject: GameObject) { }\n\n override update(e?: UpdateParams): void {\n const changes = this.componentObserver.clear();\n for (const changed of changes) {\n this.componentChanged(changed);\n }\n }\n\n protected asyncIdMap: Record<number, number> = {}\n\n protected increaseAsyncId(id: number) {\n this.asyncIdMap[id] = (this.asyncIdMap[id] || 0) + 1;\n return this.asyncIdMap[id];\n }\n\n protected validateAsyncId(id: number, asyncId: number) {\n return this.asyncIdMap[id] === asyncId;\n }\n}\n","import RendererSystem, { RENDERER_TYPE } from './System';\nimport RendererManager from './manager/RendererManager';\nimport ContainerManager from './manager/ContainerManager';\nimport Renderer from './Renderer';\n\n/** Shared resource cache key separator used across renderer plugins */\nexport const RESOURCE_KEY_SPLIT = '_s|r|c_';\n\nexport { RendererManager, ContainerManager, RendererSystem, RENDERER_TYPE, Renderer };\n\n"],"names":["Renderer","Transform"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@combos-fun/plugin-renderer",
3
- "version": "0.0.48",
3
+ "version": "0.0.50",
4
4
  "description": "2D rendering foundation",
5
5
  "main": "index.js",
6
6
  "module": "dist/plugin-renderer.esm.js",
@@ -40,8 +40,8 @@
40
40
  "lodash-es": "^4.17.21",
41
41
  "pixi.js": "^8.18.1",
42
42
  "resource-loader": "^4.0.0-rc4",
43
- "@combos-fun/renderer-adapter": "0.0.48",
44
- "@combos-fun/engine": "0.0.48"
43
+ "@combos-fun/engine": "0.0.50",
44
+ "@combos-fun/renderer-adapter": "0.0.50"
45
45
  },
46
46
  "scripts": {
47
47
  "build": "node ../../scripts/build-package.mjs"