Marcel Taeumel uploaded a new version of GraphicsTests to project The Trunk: http://source.squeak.org/trunk/GraphicsTests-mt.64.mcz
==================== Summary ====================
Name: GraphicsTests-mt.64 Author: mt Time: 17 May 2024, 11:22:37.152587 am UUID: 2861e7ae-8177-a146-9215-f348f17158d6 Ancestors: GraphicsTests-ct.63
For transparency check in forms, adds tests. Note that I here clarify the expected symmetry between #fillColor: and #colorAt:.
Thanks to Lauren (lrnp) for the hint!
=============== Diff against GraphicsTests-ct.63 ===============
Item was added: + ----- Method: FormTest>>test16IsTransparentAt (in category 'tests') ----- + test16IsTransparentAt + "Note that form pixels are 0-indexed, unlike collections." + + | form col | + form := Form extent: 1@1 depth: 16. + + "Check baseline" + self assert: 16r0001 equals: (form pixelValueFor: Color black). + self assert: 16r0000 equals: (form pixelValueFor: Color transparent). + + form bits at: 1 put: 16r0000. "PNG black, fully opaque" + self assert: 16r0000 equals: (form pixelValueAt: 0@0). + self assert: Color transparent equals: (form colorAt: 0@0). + self assert: (form isTransparentAt: 0@0). "Squeak transparent" + + form fillColor: Color transparent. "Squeak transparent" + self assert: 16r0000 equals: (form pixelValueAt: 0@0). + self assert: Color transparent equals: (form colorAt: 0@0). + self assert: (form isTransparentAt: 0@0). "Squeak transparent" + + form fillColor: Color black. "Squeak black, fully opaque" + self assert: 16r0001 "blue-ish" equals: (form pixelValueAt: 0@0). + self assert: Color black equals: (form colorAt: 0@0). + self deny: (form isTransparentAt: 0@0). + + form fillColor: (col := Color "5 bits per channel" + r: 2r11100 / 2r11111 g: 2r11100 / 2r11111 b: 2r11100 / 2r11111). + self assert: 2r111001110011100 equals: (form pixelValueAt: 0@0). + self assert: col equals: (form colorAt: 0@0). + self deny: (form isTransparentAt: 0@0).!
Item was added: + ----- Method: FormTest>>test32IsTransparentAt (in category 'tests') ----- + test32IsTransparentAt + "Note that form pixels are 0-indexed, unlike collections." + + | form col | + form := Form extent: 1@1 depth: 32. + + "Check baseline" + self assert: 16rFF000001 equals: (form pixelValueFor: Color black). + self assert: 16r00000000 equals: (form pixelValueFor: Color transparent). + + form bits at: 1 put: 16rFF000000. "PNG black, fully opaque" + self assert: 16rFF000000 equals: (form pixelValueAt: 0@0). + self assert: Color transparent equals: (form colorAt: 0@0). + self assert: (form isTransparentAt: 0@0). "Squeak transparent" + + form fillColor: Color transparent. "Squeak transparent" + self assert: 16r00000000 equals: (form pixelValueAt: 0@0). + self assert: Color transparent equals: (form colorAt: 0@0). + self assert: (form isTransparentAt: 0@0). "Squeak transparent" + + form fillColor: Color black. "Squeak black, fully opaque" + self assert: 16rFF000001 "blue-ish" equals: (form pixelValueAt: 0@0). + self assert: Color black equals: (form colorAt: 0@0). + self deny: (form isTransparentAt: 0@0). + + form fillColor: (col := Color + r: 16r80 / 16rFF g: 16r80 / 16rFF b: 16r80 / 16rFF + alpha: 16r99 / 16rFF "somewhat translucent"). + self assert: 16r99808080 equals: (form pixelValueAt: 0@0). + self assert: col equals: (form colorAt: 0@0). + self deny: (form isTransparentAt: 0@0). + + "Patch 0 alpha but keep color info. Cannot use #fillColor: here." + form bits at: 1 put: 16r00808080. + self assert: 16r00808080 equals: (form pixelValueAt: 0@0). + self assert: Color transparent equals: (form colorAt: 0@0). + self assert: (form isTransparentAt: 0@0).!
packages@lists.squeakfoundation.org