From 86d7f7a0a610095077e52d499e0a8f0be3aaa2c5 Mon Sep 17 00:00:00 2001 From: Martin Dias Date: Tue, 23 May 2023 16:04:51 -0400 Subject: [PATCH] Add an example of mask API --- .../AeCairoExamplesRenderTest.class.st | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/Alexandrie-Cairo-Tests/AeCairoExamplesRenderTest.class.st b/src/Alexandrie-Cairo-Tests/AeCairoExamplesRenderTest.class.st index f0f6687..307a657 100644 --- a/src/Alexandrie-Cairo-Tests/AeCairoExamplesRenderTest.class.st +++ b/src/Alexandrie-Cairo-Tests/AeCairoExamplesRenderTest.class.st @@ -25,6 +25,35 @@ AeCairoExamplesRenderTest class >> inspectMismatches [ super inspectMismatches ] +{ #category : #tests } +AeCairoExamplesRenderTest >> surfaceWithColoredIcons [ + + | inputForm inputSurface outputColors outputSurface outputContext | + inputForm := self iconNamed: #windowClose. + inputSurface := AeCairoImageSurface fromForm: inputForm. + + outputColors := Color wheel: 7. + + "Create a surface and associated context" + outputSurface := AeCairoImageSurface + extent: (inputSurface width * outputColors size) @ inputSurface height + format: AeCairoSurfaceFormat argb32. + outputContext := outputSurface newContext. + + "Paint the inputSurface with each color" + outputColors + do: [ :eachColor | + outputContext + sourceColorRGBA: eachColor; + maskSurface: inputSurface x: 0 y: 0 ] + separatedBy: [ + outputContext + translateByX: inputSurface width + y: 0 ]. + + ^ outputSurface +] + { #category : #tests } AeCairoExamplesRenderTest >> surfaceWithDeviceOffset [