{"version":3,"file":"BackgroundLayer.cjs","sources":["../../../src/layers/BackgroundLayer.js"],"sourcesContent":["import { BaseLayer } from './BaseLayer.js';\r\nimport { LayerType } from '../types/enums.js';\r\nimport { RectElement } from '../elements/RectElement.js';\r\n\r\n/**\r\n * 背景图层\r\n */\r\nexport class BackgroundLayer extends BaseLayer {\r\n  constructor(config = {}) {\r\n    super(config);\r\n    this.type = LayerType.BACKGROUND;\r\n    this.backgroundColor = config.backgroundColor || '#000000';\r\n    this.backgroundElement = null;\r\n  }\r\n\r\n  /**\r\n   * 设置背景颜色\r\n   */\r\n  setBackgroundColor(color) {\r\n    this.backgroundColor = color;\r\n    if (this.backgroundElement) {\r\n      this.backgroundElement.setBgColor(color);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 初始化背景元素\r\n   */\r\n  initBackground(width, height) {\r\n    if (!this.backgroundElement) {\r\n      this.backgroundElement = new RectElement({\r\n        x: width / 2,  // 中心位置\r\n        y: height / 2, // 中心位置\r\n        width: width,\r\n        height: height,\r\n        bgcolor: this.backgroundColor,\r\n        anchor: [0.5, 0.5], // 中心锚点，这样矩形会以中心为基准覆盖整个画布\r\n        zIndex: -9999, // 确保在最底层\r\n      });\r\n      this.addElement(this.backgroundElement);\r\n    } else {\r\n      this.backgroundElement.setSize(width, height);\r\n      this.backgroundElement.setBgColor(this.backgroundColor);\r\n      // 更新位置到中心\r\n      this.backgroundElement.setPosition(width / 2, height / 2);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * 渲染背景图层（使用 Paper.js）\r\n   */\r\n  async render(layer, time) {\r\n    if (!this.isActiveAtTime(time)) return;\r\n\r\n    // 渲染背景元素\r\n    if (this.backgroundElement) {\r\n      try {\r\n        // 在渲染之前先初始化元素（如果还未初始化）\r\n        if (typeof this.backgroundElement.isInitialized === 'function' && !this.backgroundElement.isInitialized()) {\r\n          if (typeof this.backgroundElement.initialize === 'function') {\r\n            const initResult = this.backgroundElement.initialize();\r\n            if (initResult && typeof initResult.then === 'function') {\r\n              await initResult;\r\n            }\r\n          }\r\n        }\r\n        \r\n        const result = this.backgroundElement.render(layer, time);\r\n        if (result && typeof result.then === 'function') {\r\n          await result;\r\n        }\r\n      } catch (error) {\r\n        console.error(`渲染背景元素失败:`, error);\r\n      }\r\n    }\r\n\r\n    // 渲染其他元素\r\n    for (const element of this.elements) {\r\n      if (element !== this.backgroundElement && element.visible) {\r\n        try {\r\n          // 在渲染之前先初始化元素（如果还未初始化）\r\n          if (typeof element.isInitialized === 'function' && !element.isInitialized()) {\r\n            if (typeof element.initialize === 'function') {\r\n              const initResult = element.initialize();\r\n              if (initResult && typeof initResult.then === 'function') {\r\n                await initResult;\r\n              }\r\n            }\r\n          }\r\n          \r\n          const result = element.render(layer, time);\r\n          if (result && typeof result.then === 'function') {\r\n            await result;\r\n          }\r\n        } catch (error) {\r\n          console.error(`渲染元素失败 (${element.type || 'unknown'}, id: ${element.id}):`, error);\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n}\r\n\r\n\r\n"],"names":["BaseLayer","LayerType","RectElement"],"mappings":"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"}