diff --git a/compose.go b/compose.go new file mode 100644 index 0000000000000000000000000000000000000000..e64e43917b1e8e607339662b612ff19c316d13b9 --- /dev/null +++ b/compose.go @@ -0,0 +1,28 @@ +package pixel + +// ComposeTarget is a BasicTarget capable of Porter-Duff composition. +type ComposeTarget interface { + BasicTarget + + // SetComposeMethod sets a Porter-Duff composition method to be used. + SetComposeMethod(ComposeMethod) +} + +// ComposeMethod is a Porter-Duff composition method. +type ComposeMethod int + +// Here's the list of all available Porter-Duff composition methods. User ComposeOver for the basic +// alpha blending. +const ( + ComposeOver ComposeMethod = iota + ComposeIn + ComposeOut + ComposeAtop + ComposeRover + ComposeRin + ComposeRout + ComposeRatop + ComposeXor + ComposePlus + ComposeCopy +) diff --git a/interface.go b/interface.go index c5cb5971281671a6899659bfc29ae31bb5e918e4..9aa5f2eb1325574bf3d6b428ae0763f31f0107c6 100644 --- a/interface.go +++ b/interface.go @@ -38,33 +38,6 @@ type BasicTarget interface { SetColorMask(color.Color) } -// ComposeTarget is a BasicTarget capable of Porter-Duff composition. -type ComposeTarget interface { - BasicTarget - - // SetComposeMethod sets a Porter-Duff composition method to be used. - SetComposeMethod(ComposeMethod) -} - -// ComposeMethod is a Porter-Duff composition method. -type ComposeMethod int - -// Here's the list of all available Porter-Duff composition methods. User ComposeOver for the basic -// alpha blending. -const ( - ComposeOver ComposeMethod = iota - ComposeIn - ComposeOut - ComposeAtop - ComposeRover - ComposeRin - ComposeRout - ComposeRatop - ComposeXor - ComposePlus - ComposeCopy -) - // Triangles represents a list of vertices, where each three vertices form a triangle. (First, // second and third is the first triangle, fourth, fifth and sixth is the second triangle, etc.) type Triangles interface {