From f0a25b28cdac40e7b0ffb47c10b2e8b5e149ea39 Mon Sep 17 00:00:00 2001 From: Avinash Kumar Deepak Date: Thu, 19 Feb 2026 17:19:34 +0530 Subject: [PATCH 1/2] Add visual tests for blendMode() (#1434) --- .../__screenshots__/blend-modes/add-win32.png | Bin 0 -> 270 bytes .../blend-modes/blend-win32.png | Bin 0 -> 266 bytes .../blend-modes/darkest-win32.png | Bin 0 -> 260 bytes .../blend-modes/difference-win32.png | Bin 0 -> 269 bytes .../blend-modes/exclusion-win32.png | Bin 0 -> 264 bytes .../blend-modes/lightest-win32.png | Bin 0 -> 285 bytes .../blend-modes/mode-switch-win32.png | Bin 0 -> 236 bytes .../blend-modes/multiply-win32.png | Bin 0 -> 269 bytes .../blend-modes/replace-win32.png | Bin 0 -> 250 bytes .../blend-modes/screen-win32.png | Bin 0 -> 269 bytes .../blend-modes/subtract-win32.png | Bin 0 -> 265 bytes .../src/test/blendmodes/BlendModeTest.java | 158 ++++++++++++++++++ 12 files changed, 158 insertions(+) create mode 100644 core/test/processing/visual/__screenshots__/blend-modes/add-win32.png create mode 100644 core/test/processing/visual/__screenshots__/blend-modes/blend-win32.png create mode 100644 core/test/processing/visual/__screenshots__/blend-modes/darkest-win32.png create mode 100644 core/test/processing/visual/__screenshots__/blend-modes/difference-win32.png create mode 100644 core/test/processing/visual/__screenshots__/blend-modes/exclusion-win32.png create mode 100644 core/test/processing/visual/__screenshots__/blend-modes/lightest-win32.png create mode 100644 core/test/processing/visual/__screenshots__/blend-modes/mode-switch-win32.png create mode 100644 core/test/processing/visual/__screenshots__/blend-modes/multiply-win32.png create mode 100644 core/test/processing/visual/__screenshots__/blend-modes/replace-win32.png create mode 100644 core/test/processing/visual/__screenshots__/blend-modes/screen-win32.png create mode 100644 core/test/processing/visual/__screenshots__/blend-modes/subtract-win32.png create mode 100644 core/test/processing/visual/src/test/blendmodes/BlendModeTest.java diff --git a/core/test/processing/visual/__screenshots__/blend-modes/add-win32.png b/core/test/processing/visual/__screenshots__/blend-modes/add-win32.png new file mode 100644 index 0000000000000000000000000000000000000000..2bfdb0da3c6415bcc84c16b7f90391fcf42d54fa GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AS3O-ELn`9lPCv+b*nx*-yMg&* zze_#c1?+jpR3$$7x+yG*U=%EyasHn3?)#UMRURGYInplK!EY=epQi96IkHZrtEffh zd}-$*8O7tpv5Pd^PkfA-u5n7R$mY5#P^u^T`M$E9vA0*hV0HSohDWhFtZl;Q$k%mc zKkpSMv`w%*z1i;iX056)*Ym4hM2gz3UX&jCWldMTA@_rLf%Wxk!MyEhjCZm`T%FE! zKHudsaYFHRG;@+$kj=%>4yRH$3!-W^K2M{1z38u_RpOP^dN($ LtDnm{r-UW|=Y?+^ literal 0 HcmV?d00001 diff --git a/core/test/processing/visual/__screenshots__/blend-modes/blend-win32.png b/core/test/processing/visual/__screenshots__/blend-modes/blend-win32.png new file mode 100644 index 0000000000000000000000000000000000000000..5cea6a3e47d8331e695005638946dc3428aa1a53 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~A7d>4ZLn`9lPCv+b#DRx7^v1P` zc9#x*onW=Df6CPNcO`h#_+~6fw7b>5^!+Pip^u4dj}G%3X_xHaHx~G`^P2M_4fhit zW2S4I5-hU0uG&@9B6Gg9bCHbV@#0vJ)Q+w4xq0{BhJRsFtPX3NV5{wX;^&&uH@W}5 z&Y7W@a{kkrrg@5^7${nV$kdmIzav8!dw=>L}Za`&zvNu$)^*1zJULUuVYykx>D%U0hh^(m891Mq zIW6tZsGp`zMwn_^-e&*E=_RS3cSf74@NbND?esFDphR~+v^JWXVI(@rR v9K6Wm#5|CNoHv6(7AopH!X5PJFrVETc7b%QP`xmqw-`KK{an^LB{Ts5VEt>9 literal 0 HcmV?d00001 diff --git a/core/test/processing/visual/__screenshots__/blend-modes/difference-win32.png b/core/test/processing/visual/__screenshots__/blend-modes/difference-win32.png new file mode 100644 index 0000000000000000000000000000000000000000..f313c08fd11d3a3ce43db63713e2a9e3295d0223 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AS3F%DLn`9lPT$CT*nx-HvUT}K z6}PkxJoAoTu2{3>Bd5S37si%`_Us?6C%%>TxYW#O{9(ZSF_G=jVV;(nwXgeK0{bRB z-l-QjMfpj^I&YDu9G3H53%Oc4^*!GOk}7~T8R3AAV8gmwkHGY)XK`M2!8(>PDQq8;cz22WQ%mvv4FO#m|K Bc9Q@A literal 0 HcmV?d00001 diff --git a/core/test/processing/visual/__screenshots__/blend-modes/exclusion-win32.png b/core/test/processing/visual/__screenshots__/blend-modes/exclusion-win32.png new file mode 100644 index 0000000000000000000000000000000000000000..5f1adf7b7b978f72f42723c8ccee1e01558451f6 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~A=RI8?=2evn78 zdRqG4_35Es)^yDay|`JcD$Mo#suz)>|C7XS{%76zH`#XeqV&)|dDr-MNgY*Ge0~II zzQ+kmkoiJIejxK(<_H6=R#fD7teMgH!+;s$x;Vi+g<{dE+jarH#^CAd=d#Wzp$Py$ C+HK?j literal 0 HcmV?d00001 diff --git a/core/test/processing/visual/__screenshots__/blend-modes/lightest-win32.png b/core/test/processing/visual/__screenshots__/blend-modes/lightest-win32.png new file mode 100644 index 0000000000000000000000000000000000000000..c8793a25f7062c4aea8cc19030e80bbc84afb45e GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~APdr^5Ln`9lPCv+bB!Gi;`38~c zN|%m(o4Dy)mYcw#T@MaEjD4p3Yu)@}l^=<0aCGAR;~&8#E7&UIu8Yd9a-4U))U`cp z!t>JDiwmWmRK|t_rFLGA&9$_DuB>`udl>7dwV{oB)|JMTN6#w{VcvOsdl(DxMEez^ z^YxA4|0k{esuum)w{F!}m)%l}olj(c+O_V5z^7Sz)@fU{>``0)x{FV7{mIw67CE12 fZ;(%eqYtc`SCyXqvU#37(7z0xu6{1-oD!M<4LySL literal 0 HcmV?d00001 diff --git a/core/test/processing/visual/__screenshots__/blend-modes/mode-switch-win32.png b/core/test/processing/visual/__screenshots__/blend-modes/mode-switch-win32.png new file mode 100644 index 0000000000000000000000000000000000000000..9838699420dc6f67bb713f28645fc8a95edce4fc GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~An>}3|Ln`9lp4;fl!XUtW@NJJ! z$B!xjR)I?g+oyE6WMt~r)-;As|FP)d=ae6X%71nU*4^Q-&ujU1|MSmB`}Wz#-MRhy ze0Q}?UHlx04D-}AEoH&Syr|6Z+tAk{Z+@s>`r+~350Bmc&+K^i_`_TFD4_EhJYD@< J);T3K0RZWTWp)4n literal 0 HcmV?d00001 diff --git a/core/test/processing/visual/__screenshots__/blend-modes/multiply-win32.png b/core/test/processing/visual/__screenshots__/blend-modes/multiply-win32.png new file mode 100644 index 0000000000000000000000000000000000000000..77727795ce735435d53d8bba4fd320e3d82edd26 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~AS3F%DLn`9lPT$CT*nx+6XJ>oC z>r)GJc`dZPy71f z)4k%vwh6YUH{ZLyS*t3{_57+Ak)pP%7o~@OS<_W-$o(K*V14}>FfaZr(~heeT`hBj z&zE*8DLy|^9J|QlgyqMW=^8>sem2)tyIO2mJ|?m~I?MxcUIkM{Va}S+8euV@{}?=7 L{an^LB{Ts5LSAqB literal 0 HcmV?d00001 diff --git a/core/test/processing/visual/__screenshots__/blend-modes/replace-win32.png b/core/test/processing/visual/__screenshots__/blend-modes/replace-win32.png new file mode 100644 index 0000000000000000000000000000000000000000..eb857e5957d99923316b280269bce8563d88487c GIT binary patch literal 250 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~A2R&UJLn`9l_8sIr%)rBJ8nG#Q zd-kzcyVC_sOS?3!-YMJbyxb`CaRW0PDaIc!oUHMQW9PovLauU(*UN(!olt)AE6+=$ zvL)ueZ>LiKgpaRl=9zcKDLgq-#9_Hv#_8Y9HQ(oP8@J4focVR<%&Uf*t) b9PME^!)<@UbdoC%&@&94u6{1-oD!M-kkLB1LUiFG>&nvZkxvko!Tr!20?%U|#%LrX5!`x?1K4 zpD*oHQha`-IChc83CoW$(=~*O{A{kPcD2~Bd`x6}beIR?yb30N6CuBo^IjDK{m0gTe~DWM4fmfvsi literal 0 HcmV?d00001 diff --git a/core/test/processing/visual/__screenshots__/blend-modes/subtract-win32.png b/core/test/processing/visual/__screenshots__/blend-modes/subtract-win32.png new file mode 100644 index 0000000000000000000000000000000000000000..31bf7abd52f9e3101eaffb142499e2a0d82c9b84 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1SBWM%0B~A7d%}YLn`9lPCv-$6v)HEu5&2u z&5^V>N7L#e<4TzhX0#|sKHKzu!rj-8&4m6KFvHQ5{?kw0S81?6tyt$R`gDQJ`O=k( zWTrgcsTVq>xya`F(ypR_Yiq5a>#bk@dh;t$jrVJKrj&=Vo%*@P_`6%JjEu zzTb@$Ee|_7H?%N4^bVByQ9q6IFZZLb{SdkJX`FYnLR>YTA1RJq#qo3w$hw7dgn`y6 mO(}i^w65ioz=y*;a3puxH02JPJxdeNZw#KUelF{r5}E*4 Date: Mon, 23 Feb 2026 20:07:32 +0530 Subject: [PATCH 2/2] add clarifying comments to BlendModeTest --- .../processing/visual/src/test/blendmodes/BlendModeTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/test/processing/visual/src/test/blendmodes/BlendModeTest.java b/core/test/processing/visual/src/test/blendmodes/BlendModeTest.java index 33a03164f..74531b75b 100644 --- a/core/test/processing/visual/src/test/blendmodes/BlendModeTest.java +++ b/core/test/processing/visual/src/test/blendmodes/BlendModeTest.java @@ -11,6 +11,7 @@ @TestMethodOrder(MethodOrderer.OrderAnnotation.class) public class BlendModeTest extends VisualTest { + // Draws base rects with BLEND, then overlays a green rect using the given mode private ProcessingSketch createBlendTest(int mode) { return new ProcessingSketch() { @Override @@ -21,6 +22,7 @@ public void setup(PApplet p) { @Override public void draw(PApplet p) { + // Base layer — always drawn with normal BLEND p.blendMode(PApplet.BLEND); p.fill(200, 60, 60); p.rect(5, 5, 30, 30); @@ -141,6 +143,7 @@ public void setup(PApplet p) { @Override public void draw(PApplet p) { + // Each strip should only reflect its own blend mode p.blendMode(PApplet.ADD); p.fill(200, 60, 60, 160); p.rect(5, 5, 20, 40);