Edit: Originally I was testing only my plugin but I realised if I have even the original ShowCrosshair on, my rendering and refresh in the edit view gets extremely choppy. Is there some setting I can change? I’m using a 2017 MBP and do not experience these issues in G2.
Original Post: My plugin
ShowCrosshairOnSelect which is based on ShowCrosshair by @mekkablue significantly slows down rendering when it’s active. Is there something I’m doing that’s inefficient? I’ve tested it with…
Basically having the same issue again recently. I’m on a MBP 2017 Pro, running macOS Big Sur 11.6.1 (20G224), GA 3.2 (3190).
If I activate any plug in that’s drawing something on the canvas, such as
GitHub - weiweihuanghuang/ShowCrosshairOnSelect: Glyphs plugin for displaying a crosshair or GitHub - weiweihuanghuang/Show-Distance-And-Angle-Of-Nodes-In-Corner
The frame rate (according to Quartz Debug) drops from 25 to 15 and becomes really laggy.
What version of Python and pyobjc do you have?
Using Python 3.9.1 (Glyphs), ObjC 7.1
Can you remove and re-install the Glyphs python? That should give you python 3.10 and pyobjc 9.0.1.
I did that and now have Python 3.11.3, ObjC 9.0.1
It’s still slow.
Another weird thing which I don’t know if it’s related I noticed when zooming, the lines seem to bounce, or the vertical and horizontal aren’t zooming at the same rate or something (this is with all plugins off):
Can you try it with a only a few lines of text? Or even only a few glyphs?
Doesn’t happen with a few glyphs, refresh rate hits mid 30s, for a few lines, it drops to low 20s, then a paragraph it goes back down to ~15.
Not really. Just that I would suggest to use less text in the edit view.
I think I discovered one of the culprits that was slowing down Glyphs App performance:
Uninstalling this improves my frame rate.
Interesting. The plugin should be doing close to nothing when the Control key is not held down, but I can have a second look.
I find that even my other plugins that when they are doing nothing slows down the panning and scrolling.
That is a drawback of the pyobjc bridge. Can’t do much about that.