use GetWindow()->Refresh() in Wayland only
Some people are reporting stuttering, and @retro-wertz tested both DrawArea() and Refresh() on wxgtk3 under xorg and found that the Refresh() method produces more stuttering. Change the compile check for wxgtk2 to a runtime check for wayland, and use Refresh() under Wayland only.
This commit is contained in:
parent
459a1fbebb
commit
a8d0508cf2
|
@ -1817,19 +1817,16 @@ void DrawingPanelBase::DrawArea(uint8_t** data)
|
|||
}
|
||||
|
||||
// next, draw the frame (queue a PaintEv) Refresh must be used under
|
||||
// Wayland or nothing is drawn, however it causes high CPU usage with GTK2,
|
||||
// so use the old method in that case
|
||||
#if !defined(__WXGTK__) || defined(__WXGTK3__)
|
||||
GetWindow()->Refresh();
|
||||
#else
|
||||
{
|
||||
// Wayland or nothing is drawn.
|
||||
if (wxGetApp().UsingWayland())
|
||||
GetWindow()->Refresh();
|
||||
else {
|
||||
DrawingPanelBase* panel = wxGetApp().frame->GetPanel()->panel;
|
||||
if (panel) {
|
||||
wxClientDC dc(panel->GetWindow());
|
||||
panel->DrawArea(dc);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// finally, draw on-screen text using wx method, if possible
|
||||
// this method flickers too much right now
|
||||
|
|
Loading…
Reference in New Issue