1# 图形子系统变更说明 2 3## cl.blendMode.1 blendMode接口变更 4 5**访问级别** 6 7公开接口 8 9**变更原因** 10 11之前接口行为不够通用,难以满足三方应用多场景需求实现。当前有三方场景无法满足, 诉求进行变更。 12 13**变更影响** 14 15该变更为不兼容变更。<br> 161、使用blendMode接口时,开发者调用接口枚举发生变化。枚举NORMAL变为NONE,SOURCE_IN变为SRC_IN, DESTINATION_IN变为DST_IN。<br> 172、接口行为由当前控件背景与子节点内容进行混合改为当前控件内容(含子节点内容)与下方画布(可能为离屏画布)已有内容进行混合。 18 19**API Level** 20 2111 22 23**变更发生版本** 24 25从Openharmony SDK 4.1.6.3 开始 26 27**变更的接口/组件** 28 29blendMode接口枚举和接口行为进行非兼容性变更。 30 31**适配指导** 32 331、开发者需将原先调用枚举由NORMAL改为NONE,SOURCE_IN改为SRC_IN,DESTINATION_IN改为DST_IN。<br> 342、由于接口行为发生改变,之前的接口内含两次离屏,第一次离屏用来绘制控件背景,第二次离屏用来绘制子节点内容。当前接口仅可支持一次离屏,需调用BlendApplyType.OFFSCREEN来触发离屏,接口默认无离屏。若想与原有接口行为保持一致,接口需调用两次来保持两次离屏。其中第一次离屏用来绘制控件背景,第二次离屏用来绘制子节点内容。<br> 35示例代码: 36```ts 37// xxx.ets 新接口,可通过调用BlendApplyType.OFFSCREEN触发一次离屏 38@Entry 39@Component 40struct Index { 41 build() { 42 Column() { 43 // 第二次离屏用来绘制子节点内容 44 Text("test") 45 .fontSize(144) 46 .fontWeight(FontWeight.Bold) 47 .fontColor('#ffff0101') 48 .blendMode(BlendMode.SRC_IN, BlendApplyType.OFFSCREEN) 49 } 50 // 第一次离屏用来绘制控件背景 51 .blendMode(BlendMode.SRC_OVER, BlendApplyType.OFFSCREEN) 52 .height('100%') 53 .width('100%') 54 .backgroundColor('#ff08ff00') 55 } 56} 57 58// xxx.ets 旧接口,内部默认触发两次离屏 59@Entry 60@Component 61struct Index { 62 build() { 63 Column() { 64 // 第二次离屏用来绘制子节点内容 65 Text("test") 66 .fontSize(144) 67 .fontWeight(FontWeight.Bold) 68 .fontColor('#ffff0101') 69 } 70 // 第一次离屏用来绘制控件背景 71 .blendMode(BlendMode.SRC_IN) 72 .height('100%') 73 .width('100%') 74 .backgroundColor('#ff08ff00') 75 } 76} 77```