Post

Replies

Boosts

Views

Activity

self.needsDisplayInRect BROKEN in Big Sur
The entire view is erased whatever rect is passed to self.needsDisplayInRect thus making this call totally useless. If the view is set top non opaque, then its the windows that erases everything.  This is a VERY SERIOUS BUG and makes Appkit almost UNUSABLE for efficient graphics/ redraws. Already starting 10.14 the OS was erasing all View behind our back. But at least one could make a cleaver use of needsDisplayInRect to still be able to do partial redraws.  Now on Big Sur even that doesn’t work, forcing us to either redraw everything all the time or to use an extra buffer which is obviously a huge waste of CPU and memory. Plus my experience with that solution is performances gets catastrophic on huge screens… If anybody knows a work around... Eric Wenger,  Bryce,Metasynth,ArtMatic father
2
1
748
Feb ’21
NSView unwanted behaviour
It is extremely annoying that starting 10.14 the OS is clearing the NSview before drawrect method is called. This prevents application to efficiently use the back buffer by doing cumulative and partial drawings inside the view.  So the question is : is there any way to have complete control on NSview redraw and avoid the OS to clear the NSview behind our back ?  I have tried with CA layer backed view but the problem remains the same. Only solution i have found is to maintain our own cglayer or bitmap buffer to do cumulative drawing which is an absolute waste of cpu and memory, as it doubles the memory required to store the window graphics and requires extra redraws. This should be treated by Apple as a serious Bug in their Appkit as it seriously undermine the efficiency and controllability of the Appkit graphics possibilities. It should be the application responsibility to clear or not the view and the pre 10.14 behaviour was much preferable. What we have done so far is to build using xcode 8 and link with sdk 10.11 but this no longer works on Big Sur and prevented us to do any notarisation.
0
0
364
Dec ’20