mirror of
https://github.com/dscyrescotti/Memola.git
synced 2026-01-14 05:03:24 +01:00
[PR #48] [MERGED] Optimize renderer frame rate #60
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/48
Author: @dscyrescotti
Created: 6/24/2024
Status: ✅ Merged
Merged: 6/24/2024
Merged by: @dscyrescotti
Base:
main← Head:feature/render-optimization📝 Commits (4)
6c8d0eachore: refactor render pipeline96bf805chore: add photo background render pass061be60feat: save image in rectangle7946253chore: update element compare method📊 Changes
20 files changed (+354 additions, -265 deletions)
View changed files
📝
Memola.xcodeproj/project.pbxproj(+4 -0)📝
Memola/Canvas/Abstracts/RenderPass.swift(+1 -1)📝
Memola/Canvas/Contexts/GraphicContext.swift(+1 -1)📝
Memola/Canvas/Core/Renderer.swift(+7 -3)📝
Memola/Canvas/Elements/Core/Element.swift(+23 -0)➕
Memola/Canvas/Elements/Core/ElementGroup.swift(+51 -0)📝
Memola/Canvas/Elements/Geometries/Stroke/Core/AnyStroke.swift(+4 -0)📝
Memola/Canvas/Elements/Geometries/Stroke/Core/Stroke.swift(+1 -3)📝
Memola/Canvas/Elements/Geometries/Stroke/Strokes/PenStroke.swift(+0 -2)📝
Memola/Canvas/Elements/Photo/Photo.swift(+5 -2)📝
Memola/Canvas/RenderPasses/CacheRenderPass.swift(+34 -43)📝
Memola/Canvas/RenderPasses/EraserRenderPass.swift(+35 -50)📝
Memola/Canvas/RenderPasses/GraphicRenderPass.swift(+52 -71)📝
Memola/Canvas/RenderPasses/PhotoBackgroundRenderPass.swift(+14 -7)📝
Memola/Canvas/RenderPasses/PhotoRenderPass.swift(+14 -8)📝
Memola/Canvas/RenderPasses/StrokeRenderPass.swift(+87 -51)📝
Memola/Canvas/RenderPasses/ViewPortRenderPass.swift(+3 -7)📝
Memola/Canvas/Tool/Core/Tool.swift(+12 -10)📝
Memola/Canvas/View/Bridge/Views/DrawingView.swift(+1 -1)📝
Memola/Features/Memo/PhotoPreview/PhotoItem.swift(+5 -5)📄 Description
Description
This PR optimizes the rendering pipeline by batching the same elements and passing them together into draw call so that the amount of draw calls significantly drops resulting in the faster render rate without lagging.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.