1# Graphics Subsystem Changelog 2 3## cl.blendMode.1 blendMode Changed 4 5**Access Level** 6 7Public API 8 9**Reason for Change** 10 11The API behavior fails to meet the requirements of third-party applications in multiple scenarios. 12 13**Change Impact** 14 15This change is a non-compatible change. 161. The enumerated values of **blendMode** are changed. Specifically, **NORMAL** is changed to **NONE**, **SOURCE_IN** is changed to **SRC_IN**, and **DESTINATION_IN** is changed to **DST_IN**. 172. The API behavior is changed. Before the change, the API blends the component background with the subnode content. After the change, the API blends the component content (including the subnode content) with the content of the canvas (possibly offscreen canvas). 18 19**API Level** 20 2111 22 23**Change Since** 24 25OpenHarmony SDK 4.1.6.3 26 27**Key API/Component Changes** 28 29The enumerated values and behavior of **blendMode** are changed. 30 31**Adaptation Guide** 32 331. Change the enumerated values in your code. Specifically, change **NORMAL** to **NONE**, **SOURCE_IN** to **SRC_IN**, and **DESTINATION_IN** to **DST_IN**. 342. The API behavior is changed. Before the change, the API provides two offscreen operations, which are used to the component background and subnode content, respectively. After the change, the API supports only one offscreen operation, which must be triggered by calling **BlendApplyType.OFFSCREEN**. If you want to retain the original behavior, call **BlendApplyType.OFFSCREEN** twice to trigger two offscreen operations to draw the component background and subnode content.<br> 35 The sample code is as follows: 36 37 ```ts 38 // In the .ets file that uses the new API, you can call BlendApplyType.OFFSCREEN twice to trigger two offscreen operations. 39 @Entry 40 @Component 41 struct Index { 42 build() { 43 Column() { 44 // The second offscreen operation is used to draw the subnode content. 45 Text("test") 46 .fontSize(144) 47 .fontWeight(FontWeight.Bold) 48 .fontColor('#ffff0101') 49 .blendMode(BlendMode.SRC_IN, BlendApplyType.OFFSCREEN) 50 } 51 // The first offscreen operation is used to draw the component background. 52 .blendMode(BlendMode.SRC_OVER, BlendApplyType.OFFSCREEN) 53 .height('100%') 54 .width('100%') 55 .backgroundColor('#ff08ff00') 56 } 57 } 58 59 // In the .ets file that uses the original API, two offscreen operations are triggered by default. 60 @Entry 61 @Component 62 struct Index { 63 build() { 64 Column() { 65 // The second offscreen operation is used to draw the subnode content. 66 Text("test") 67 .fontSize(144) 68 .fontWeight(FontWeight.Bold) 69 .fontColor('#ffff0101') 70 } 71 // The first offscreen operation is used to draw the component background. 72 .blendMode(BlendMode.SRC_IN) 73 .height('100%') 74 .width('100%') 75 .backgroundColor('#ff08ff00') 76 } 77 } 78 ```