-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
3.3.0 Windows flickering / slow rendering #23585
Comments
I've replied here before seeing this issue, but let me copy the text here too: True, I hadn't thought we'd have to turn it off in some pretty common cases. Unfortunately I don't think there is any way to convince |
Oh and the appearance of two users with the problem wasn't intentional - Tommy and I are both Super Evil (actual company name: Super Evil Mega Corp :)) |
It seems that simply creating wxPaintDC, i.e. calling BeginPaint(), ourselves and then letting the native control draw into it, disables whichever optimizations are used by the control that break its drawing with WS_EX_COMPOSITED, so always do this in our OnPaint(), even if we don't need to draw anything ourselves. This allows to avoid disabling WS_EX_COMPOSITED when wxListCtrl is used, which resulted in horrible flicker before. See wxWidgets#23585.
It seems that simply creating wxPaintDC, i.e. calling BeginPaint(), ourselves and then letting the native control draw into it, disables whichever optimizations are used by the control that break its drawing with WS_EX_COMPOSITED, so always do this in our OnPaint(), even if we don't need to draw anything ourselves. This allows to avoid disabling WS_EX_COMPOSITED when wxListCtrl is used, which resulted in horrible flicker before. See wxWidgets#23585.
wxAutoBufferedPaintDC can cause very slow rendering if drawing bitmaps with alpha on MSW. Not sure if this really needs a separate bug report?
Thats meant I have to derive wxAuiToolBar and re-implement OnPaint. Would be nice to be able to avoid doing that. |
@petebannister With which wx version do you see this? In 3.3, |
Ah ok - in 3.2.2.1 |
I've extracted this into a separate issue then as this one is explicitly about 3.3. OTOH this one might be fixed by now, at least the @kfsone Can you provide a simple way to reproduce the problem with flickering? |
See wxWidgets/wxWidgets#23585 . This patch reverts commit fb4f0b590c42a66263debf926617c00b157c9a in wxWidgets.
It looks like this commit: fcc7430 doesn't take into account that a lot of things turn WS_EX_COMPOSITED off, such as listctrls and sizers.
After switching from 3.2.0 to 3.3.0 we're seeing a lot of flickering and slow rendering, with wxBG_STYLE_PAINT background style using a wxAutoBufferedPaintDC/wxGCDC.
The text was updated successfully, but these errors were encountered: