diff --git a/Memola/Canvas/Core/Canvas.swift b/Memola/Canvas/Core/Canvas.swift index c94e09a..51a56c3 100644 --- a/Memola/Canvas/Core/Canvas.swift +++ b/Memola/Canvas/Core/Canvas.swift @@ -20,7 +20,7 @@ final class Canvas: NSManagedObject, Identifiable { let gridContext = GridContext() let viewPortContext = ViewPortContext() - let maximumZoomScale: CGFloat = 25 + let maximumZoomScale: CGFloat = 28 let minimumZoomScale: CGFloat = 3.1 var transform: simd_float4x4 = .init() @@ -42,11 +42,11 @@ final class Canvas: NSManagedObject, Identifiable { // MARK: - Actions extension Canvas { func load() { + state = .loading let start = Date().formatted(.dateTime.minute().second().secondFraction(.fractional(5))) for stroke in graphicContext.strokes { if let stroke = stroke as? Stroke { stroke.loadVertices() - NSLog("[Memola] - \(stroke.quads.count) quads") } } let end = Date().formatted(.dateTime.minute().second().secondFraction(.fractional(5))) diff --git a/Memola/Canvas/Geometries/Stroke/Stroke.swift b/Memola/Canvas/Geometries/Stroke/Stroke.swift index 6832aa1..f5e0759 100644 --- a/Memola/Canvas/Geometries/Stroke/Stroke.swift +++ b/Memola/Canvas/Geometries/Stroke/Stroke.swift @@ -85,9 +85,6 @@ extension Stroke: Drawable { } func draw(device: MTLDevice, renderEncoder: MTLRenderCommandEncoder) { - if isEmpty { - loadVertices() - } guard !isEmpty else { return } prepare(device: device) renderEncoder.setFragmentTexture(texture, index: 0) diff --git a/Memola/Persistence/Core/Persistence.swift b/Memola/Persistence/Core/Persistence.swift index a488b68..9005f5f 100644 --- a/Memola/Persistence/Core/Persistence.swift +++ b/Memola/Persistence/Core/Persistence.swift @@ -19,6 +19,12 @@ class Persistence { shared.persistentContainer.viewContext }() + static var backgroundContext: NSManagedObjectContext = { + let context = shared.persistentContainer.newBackgroundContext() + context.automaticallyMergesChangesFromParent = true + return context + }() + private lazy var viewContext: NSManagedObjectContext = { persistentContainer.viewContext }()