mirror of
https://github.com/dscyrescotti/Memola.git
synced 2026-01-14 05:03:24 +01:00
[PR #22] [MERGED] Optimize memory usage for huge number of strokes #48
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/dscyrescotti/Memola/pull/22
Author: @dscyrescotti
Created: 5/12/2024
Status: ✅ Merged
Merged: 5/12/2024
Merged by: @dscyrescotti
Base:
main← Head:feature/memory📝 Commits (10+)
1f9c176feat: reduce memory footprint0fc277cfeat: update undo and redocd6048bfeat: modify entities1d91da8feat: enhance vertex loading335d7e5feat: update stroke generator factor5109cc5refactor: clean up74297b7feat: add quad entity instead of storing in array9c1398cMerge branch 'feature/quad-entity' into feature/memorya903a5erefactor: clean up10e7350feat: execute core data related logic in background context📊 Changes
31 files changed (+747 additions, -346 deletions)
View changed files
📝
Memola.xcodeproj/project.pbxproj(+55 -15)➕
Memola.xcodeproj/xcshareddata/xcschemes/Memola.xcscheme(+78 -0)📝
Memola/App/MemolaApp.swift(+1 -1)📝
Memola/Canvas/Contexts/GraphicContext.swift(+62 -34)📝
Memola/Canvas/Core/Canvas.swift(+23 -60)📝
Memola/Canvas/Core/PipelineStates.swift(+9 -0)📝
Memola/Canvas/Geometries/Primitives/Quad.swift(+38 -88)➕
Memola/Canvas/Geometries/Primitives/QuadShape.swift(+13 -0)📝
Memola/Canvas/Geometries/Stroke/Generators/SolidPointStrokeGenerator.swift(+7 -31)📝
Memola/Canvas/Geometries/Stroke/Stroke.swift(+100 -58)📝
Memola/Canvas/History/History.swift(+11 -0)📝
Memola/Canvas/RenderPasses/CacheRenderPass.swift(+2 -1)📝
Memola/Canvas/RenderPasses/GraphicRenderPass.swift(+1 -1)📝
Memola/Canvas/RenderPasses/StrokeRenderPass.swift(+30 -2)➕
Memola/Canvas/Shaders/Quad.metal(+54 -0)📝
Memola/Canvas/Tool/Pen/Core/Pen.swift(+12 -1)📝
Memola/Canvas/View/Bridge/ViewController/CanvasViewController.swift(+8 -0)📝
Memola/Canvas/View/Bridge/Views/DrawingView.swift(+1 -1)➕
Memola/Extensions/Float++.swift(+14 -0)➕
Memola/Extensions/NSManagedObject++.swift(+15 -0)...and 11 more files
📄 Description
Description
This PR adds the optimization to memory usage when dealing with large number of strokes by using background context to load core data entities and by using kernel shader to generate vertices.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.