                 
                 var _pattern = Pattern(bound: pattern.bound, xStep: pattern.xStep, yStep: pattern.yStep) { pattern.callback(PDFRenderer(context: $0, alphaMask: false)) }
                 
-                _pattern.transform = SDTransform.reflectY(pattern.bound.midY) * pattern.transform * base_transform * context.transform.inverse
+                _pattern.transform = pattern.transform * base_transform * context.transform.inverse
                 _pattern.opacity = opacity
                 
                 context.draw(shape: state.path, winding: winding, color: _pattern)

                    
                    var _stroke_pattern = Pattern(bound: strokePattern.bound, xStep: strokePattern.xStep, yStep: strokePattern.yStep) { strokePattern.callback(PDFRenderer(context: $0, alphaMask: false)) }
                    
                    _stroke_pattern.transform = SDTransform.reflectY(strokePattern.bound.midY) * strokePattern.transform * base_transform * context.transform.inverse
                    
                    var _stroke = Stroke(width: state.strokeWidth, cap: cap, join: join, color: _stroke_pattern)
                    _stroke.color.opacity = state.strokeOpacity

                
                var _fill = Pattern(bound: fillPattern.bound, xStep: fillPattern.xStep, yStep: fillPattern.yStep) { fillPattern.callback(PDFRenderer(context: $0, alphaMask: false)) }
                
                _fill.transform = fillPattern.transform * base_transform * context.transform.inverse
                _fill.opacity = context.opacity
                
                if case .pattern = self.strokeColorSpace, let strokePattern = self.strokePattern {
