diff --git a/gfx/2d/DrawTargetCG.cpp b/gfx/2d/DrawTargetCG.cpp index 02dcaa12b02c..290f87659c61 100644 --- a/gfx/2d/DrawTargetCG.cpp +++ b/gfx/2d/DrawTargetCG.cpp @@ -409,7 +409,11 @@ CreateCGPattern(const Pattern &aPattern, CGAffineTransform aUserSpace) {0, 0,}, {static_cast(CGImageGetWidth(image)), static_cast(CGImageGetHeight(image))} }; - CGAffineTransform transform = CGAffineTransformConcat(CGAffineTransformMakeScale(1, -1), aUserSpace); + CGAffineTransform transform = + CGAffineTransformConcat(CGAffineTransformConcat(CGAffineTransformMakeScale(1, + -1), + GfxMatrixToCGAffineTransform(pat.mMatrix)), + aUserSpace); transform = CGAffineTransformTranslate(transform, 0, -static_cast(CGImageGetHeight(image))); return CGPatternCreate(CGImageRetain(image), bounds, transform, xStep, yStep, kCGPatternTilingConstantSpacing, true, &patternCallbacks);