[PR #42] [MERGED] Optimize eraser stroke generation #57

Closed
opened 2025-12-29 05:19:21 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/dscyrescotti/Memola/pull/42
Author: @dscyrescotti
Created: 6/10/2024
Status: Merged
Merged: 6/10/2024
Merged by: @dscyrescotti

Base: mainHead: feature/eraser-optimization


📝 Commits (10+)

  • e9708ae feat: save quads by batch
  • 1151d1b feat: store eraser stroke in eraser object
  • 20e653c feat: create new pen using last pen if selected one is eraser
  • c3a14bd refactor: clean up
  • 87b53e0 feat: save memo before dismissing canvas view
  • 99abf94 feat: save stroke as soon as it is created at the beginning of touch
  • 90de631 bug: remove eraser stroke adding into graphic context
  • 63aced9 feat: save title changes
  • 89b97be feat: fetch eraser objects instead of loading from stroke
  • 9c10e46 feat: remove erasers in graphic context

📊 Changes

21 files changed (+488 additions, -118 deletions)

View changed files

📝 Memola.xcodeproj/project.pbxproj (+4 -0)
📝 Memola.xcodeproj/xcshareddata/xcschemes/Memola.xcscheme (+6 -0)
📝 Memola/Canvas/Contexts/GraphicContext.swift (+154 -57)
📝 Memola/Canvas/Core/Canvas.swift (+3 -2)
📝 Memola/Canvas/Geometries/Primitives/Quad.swift (+10 -0)
📝 Memola/Canvas/Geometries/Stroke/Strokes/EraserStroke.swift (+84 -0)
📝 Memola/Canvas/Geometries/Stroke/Strokes/PenStroke.swift (+89 -15)
📝 Memola/Canvas/History/History.swift (+16 -4)
📝 Memola/Canvas/RTree/RTree.swift (+11 -3)
📝 Memola/Canvas/RenderPasses/EraserRenderPass.swift (+24 -6)
📝 Memola/Canvas/RenderPasses/GraphicRenderPass.swift (+22 -0)
📝 Memola/Canvas/View/Bridge/ViewController/CanvasViewController.swift (+0 -3)
📝 Memola/Canvas/View/Canvas/CanvasView.swift (+3 -3)
📝 Memola/Features/Memo/Memo/MemoView.swift (+3 -6)
📝 Memola/Features/Memo/PenDock/PenDock.swift (+5 -5)
📝 Memola/Features/Memo/Toolbar/Toolbar.swift (+19 -13)
📝 Memola/Features/Memos/MemosView.swift (+1 -0)
Memola/Persistence/Objects/EraserObject.swift (+20 -0)
📝 Memola/Persistence/Objects/QuadObject.swift (+1 -0)
📝 Memola/Persistence/Objects/StrokeObject.swift (+2 -1)

...and 1 more files

📄 Description

Description

This PR includes the optimization for eraser stroke generation storing erasers in EraserObject. Plus, it also fixes memory leak issues.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/dscyrescotti/Memola/pull/42 **Author:** [@dscyrescotti](https://github.com/dscyrescotti) **Created:** 6/10/2024 **Status:** ✅ Merged **Merged:** 6/10/2024 **Merged by:** [@dscyrescotti](https://github.com/dscyrescotti) **Base:** `main` ← **Head:** `feature/eraser-optimization` --- ### 📝 Commits (10+) - [`e9708ae`](https://github.com/dscyrescotti/Memola/commit/e9708ae072a440bc8ef422e253d82479ed2cfee8) feat: save quads by batch - [`1151d1b`](https://github.com/dscyrescotti/Memola/commit/1151d1b868bdcff4f954e9ddb028843dd2b2e21b) feat: store eraser stroke in eraser object - [`20e653c`](https://github.com/dscyrescotti/Memola/commit/20e653c200da722b5002890d6a1aba65540223ca) feat: create new pen using last pen if selected one is eraser - [`c3a14bd`](https://github.com/dscyrescotti/Memola/commit/c3a14bd608f06affc1b1220259ac77f68fe43736) refactor: clean up - [`87b53e0`](https://github.com/dscyrescotti/Memola/commit/87b53e069afc4dbe5ad9afac1b1e57e41e83da79) feat: save memo before dismissing canvas view - [`99abf94`](https://github.com/dscyrescotti/Memola/commit/99abf94351471848934a799473ebf64c3cd02dde) feat: save stroke as soon as it is created at the beginning of touch - [`90de631`](https://github.com/dscyrescotti/Memola/commit/90de6310e1df9e46fd2237957e03796d42bf17bc) bug: remove eraser stroke adding into graphic context - [`63aced9`](https://github.com/dscyrescotti/Memola/commit/63aced942ad46d8caf06cadbb84bda7cf763db83) feat: save title changes - [`89b97be`](https://github.com/dscyrescotti/Memola/commit/89b97be07d3f3a5c578c818f1866c3512ffe4e62) feat: fetch eraser objects instead of loading from stroke - [`9c10e46`](https://github.com/dscyrescotti/Memola/commit/9c10e4621352e7af45025b81a15f63e571877860) feat: remove erasers in graphic context ### 📊 Changes **21 files changed** (+488 additions, -118 deletions) <details> <summary>View changed files</summary> 📝 `Memola.xcodeproj/project.pbxproj` (+4 -0) 📝 `Memola.xcodeproj/xcshareddata/xcschemes/Memola.xcscheme` (+6 -0) 📝 `Memola/Canvas/Contexts/GraphicContext.swift` (+154 -57) 📝 `Memola/Canvas/Core/Canvas.swift` (+3 -2) 📝 `Memola/Canvas/Geometries/Primitives/Quad.swift` (+10 -0) 📝 `Memola/Canvas/Geometries/Stroke/Strokes/EraserStroke.swift` (+84 -0) 📝 `Memola/Canvas/Geometries/Stroke/Strokes/PenStroke.swift` (+89 -15) 📝 `Memola/Canvas/History/History.swift` (+16 -4) 📝 `Memola/Canvas/RTree/RTree.swift` (+11 -3) 📝 `Memola/Canvas/RenderPasses/EraserRenderPass.swift` (+24 -6) 📝 `Memola/Canvas/RenderPasses/GraphicRenderPass.swift` (+22 -0) 📝 `Memola/Canvas/View/Bridge/ViewController/CanvasViewController.swift` (+0 -3) 📝 `Memola/Canvas/View/Canvas/CanvasView.swift` (+3 -3) 📝 `Memola/Features/Memo/Memo/MemoView.swift` (+3 -6) 📝 `Memola/Features/Memo/PenDock/PenDock.swift` (+5 -5) 📝 `Memola/Features/Memo/Toolbar/Toolbar.swift` (+19 -13) 📝 `Memola/Features/Memos/MemosView.swift` (+1 -0) ➕ `Memola/Persistence/Objects/EraserObject.swift` (+20 -0) 📝 `Memola/Persistence/Objects/QuadObject.swift` (+1 -0) 📝 `Memola/Persistence/Objects/StrokeObject.swift` (+2 -1) _...and 1 more files_ </details> ### 📄 Description ### Description This PR includes the optimization for eraser stroke generation storing erasers in EraserObject. Plus, it also fixes memory leak issues. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2025-12-29 05:19:21 +01:00
adam closed this issue 2025-12-29 05:19:21 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/Memola#57