diff --git a/Samples.bundle/base64.svg b/Samples.bundle/base64.svg
new file mode 100644
index 0000000..69e2958
--- /dev/null
+++ b/Samples.bundle/base64.svg
@@ -0,0 +1,7 @@
+
+
\ No newline at end of file
diff --git a/Samples.bundle/shapes.svg b/Samples.bundle/shapes.svg
index 5f78f35..5125e25 100644
--- a/Samples.bundle/shapes.svg
+++ b/Samples.bundle/shapes.svg
@@ -93,4 +93,6 @@
+
+
\ No newline at end of file
diff --git a/SwiftDraw/Renderer.CGText.swift b/SwiftDraw/Renderer.CGText.swift
index 623995a..209f83b 100644
--- a/SwiftDraw/Renderer.CGText.swift
+++ b/SwiftDraw/Renderer.CGText.swift
@@ -557,7 +557,11 @@ public final class CGTextRenderer: Renderer {
}
func draw(image: LayerTree.Image) {
+ lines.append("ctx.saveGState()")
+ lines.append("ctx.translateBy(x: 0, y: image.height)")
+ lines.append("ctx.scaleBy(x: 1, y: -1)")
lines.append("ctx.draw(image, in: CGRect(x: 0, y: 0, width: image.width, height: image.height)")
+ lines.append("ctx.restoreGState()")
}
func draw(linear gradient: LayerTree.Gradient, from start: String, to end: String) {
diff --git a/SwiftDraw/Renderer.CoreGraphics.swift b/SwiftDraw/Renderer.CoreGraphics.swift
index e186d0c..e09ca19 100644
--- a/SwiftDraw/Renderer.CoreGraphics.swift
+++ b/SwiftDraw/Renderer.CoreGraphics.swift
@@ -77,6 +77,7 @@ final class CGTransformingPattern: Equatable {
}
struct CGProvider: RendererTypeProvider {
+
typealias Types = CGTypes
func createFloat(from float: LayerTree.Float) -> CGFloat {
@@ -412,8 +413,12 @@ struct CGRenderer: Renderer {
}
func draw(image: CGImage) {
- let rect = CGRect(x: 0, y: 0, width: image.width, height: image.height)
- ctx.draw(image, in: rect)
+ let rect = CGRect(x: 0, y: 0, width: image.width, height: image.height)
+ pushState()
+ translate(tx: 0, ty: rect.height)
+ scale(sx: 1, sy: -1)
+ ctx.draw(image, in: rect)
+ popState()
}
func draw(linear gradient: CGGradient, from start: CGPoint, to end: CGPoint) {