code: func (s *Sprite) DrawColorMask(t Target, matrix Matrix, mask color.Color) {
  	dirty := false
  	if matrix != s.matrix {
  		s.matrix = matrix
  		dirty = true
  	}
  	if mask == nil {
  		mask = Alpha(1)
  	}
  	rgba := ToRGBA(mask)
  	if rgba != s.mask {
  		s.mask = rgba
  		dirty = true
  	}
  
  	if dirty {
  		s.calcData()
  	}
  
  	s.d.Draw(t)
  }
docs: // DrawColorMask draws the Sprite onto the provided Target. The Sprite will be transformed by the
  // given Matrix and all of it's color will be multiplied by the given mask.
  //
  // If the mask is nil, a fully opaque white mask will be used, which causes no effect.