diff --git a/sprite.go b/sprite.go
index 190c4690bf88c547a79c76b26078438cdfe421ed..8d57f590618e6b9f0965de759ba95e4d00702a58 100644
--- a/sprite.go
+++ b/sprite.go
@@ -87,8 +87,12 @@ func (s *Sprite) calcData() {
 		(*s.tri)[i].Color = s.mask
 		(*s.tri)[i].Picture = center + (*s.tri)[i].Position
 		(*s.tri)[i].Intensity = 1
+	}
 
+	// matrix and mask
+	for i := range *s.tri {
 		(*s.tri)[i].Position = s.matrix.Project((*s.tri)[i].Position)
+		(*s.tri)[i].Color = s.mask
 	}
 
 	s.d.Dirty()