Julijan Nikolic
Julijan Nikolic
It seems that if GetDC is not released, WM_PAINT is called recursively.
Hm, I haven't noticed it. The previous commit had UpdateWindow(mPlugWnd); which may cause the problem since it will force redraw with this function call. Calling just InvalidateRect(mPlugWnd, &r, FALSE); shouldn't...
Skia and VSync with this change don't have flicker so far.
This seems to improve flicker as well: https://docs.microsoft.com/en-us/windows/win32/api/dwmapi/nf-dwmapi-dwmflush Just put it at the end of: IGraphicsWin::PlatformResize(bool parentHasResized)
This is with the debug mode here. Note that the white edge is not visible in release mode here. 
Sure. If interface doesn't load for 300ms for example, if the background is white, it can be blindly. Anyway, this seems like one huge disadvantage of metal. I was trying...
I have the proper fix! ``` Create view as this: : NSView Set delegate: self.layer.delegate = self; Override: - (void)displayLayer:(CALayer *)layer { [self render]; } ``` Now displayLayer will be...
Ordering calls was wrong. This will work ``` mGraphics = pGraphics; NSRect r = NSMakeRect(0.f, 0.f, (float) pGraphics->WindowWidth(), (float) pGraphics->WindowHeight()); self = [super initWithFrame:r]; mMouseOutDuringDrag = false; [self registerForDraggedTypes:[NSArray arrayWithObjects:...
I am also using autoreleasepool for render since apple suggests that: https://developer.apple.com/documentation/quartzcore/cametallayer?language=objc
I am not sure about displaySyncEnabled too. This is macOS 13+ feature, but IMO if vsync is not enabled in IPlug, maybe it should be set. presentsWithTransaction will fix glitches...