{"version":3,"file":"OverlayLayer.cjs","sources":["../../../src/layers/OverlayLayer.js"],"sourcesContent":["import { BaseLayer } from './BaseLayer.js';\r\nimport { LayerType } from '../types/enums.js';\r\n\r\n/**\r\n * 叠加图层（用于水印、字幕等）\r\n */\r\nexport class OverlayLayer extends BaseLayer {\r\n  constructor(config = {}) {\r\n    super(config);\r\n    this.type = LayerType.OVERLAY;\r\n    this.blendMode = config.blendMode || 'normal'; // normal, multiply, screen, overlay 等\r\n  }\r\n\r\n  /**\r\n   * 设置混合模式\r\n   */\r\n  setBlendMode(mode) {\r\n    this.blendMode = mode;\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    for (const element of this.elements) {\r\n      if (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          // Paper.js 的混合模式可以通过 blendMode 属性设置\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"],"names":["BaseLayer","LayerType"],"mappings":";;;;;AAGA;AACA;AACA;AACO,MAAM,YAAY,SAASA,0BAAS,CAAC;AAC5C,EAAE,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE;AAC3B,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;AAClB,IAAI,IAAI,CAAC,IAAI,GAAGC,qBAAS,CAAC,OAAO,CAAC;AAClC,IAAI,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,QAAQ,CAAC;AAClD,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA,EAAE,YAAY,CAAC,IAAI,EAAE;AACrB,IAAI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AAC1B,EAAE,CAAC;AACH;AACA;AACA;AACA;AACA,EAAE,MAAM,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE;AAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,OAAO;AAC3C;AACA;AACA,IAAI,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;AACzC,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE;AAC3B,QAAQ,IAAI;AACZ;AACA,UAAU,IAAI,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE;AACvF,YAAY,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,EAAE;AAC1D,cAAc,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;AACtD,cAAc,IAAI,UAAU,IAAI,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;AACvE,gBAAgB,MAAM,UAAU,CAAC;AACjC,cAAc,CAAC;AACf,YAAY,CAAC;AACb,UAAU,CAAC;AACX;AACA;AACA;AACA,UAAU,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrD,UAAU,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;AAC3D,YAAY,MAAM,MAAM,CAAC;AACzB,UAAU,CAAC;AACX,QAAQ,CAAC,CAAC,OAAO,KAAK,EAAE;AACxB,UAAU,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5F,QAAQ,CAAC;AACT,MAAM,CAAC;AACP,IAAI,CAAC;AACL,EAAE,CAAC;AACH;;;;"}