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
wxGLCanvasEGL::IsShownOnScreen()
regression under Wayland
#23899
Comments
Sorry for being absent for quite a long time, life got too busy.
People are working on trying to get KiCad running on Wayland which is the reason why bunch of interesting bugs are cropping up when testing things (me included). So, as far as I understand as a side observer. Most of the canvas rendering in Kicad is done via their Graphics Abstraction Layer (include/gal/graphics_abstraction_layer.h). Both Cairo and OpenGL GAL backends use |
Don't use m_readyToDraw in it, as the canvas is still shown even when it's not ready to draw yet, and use m_wlSubsurface instead as it is destroyed when the window is unmapped. See wxWidgets#23899. (cherry picked from commit cf44a87)
After thinking about this for a while I think I may have found a small oversight.
IsShownOnScreen()
usesm_readyToDraw
as one of the checks under Wayland. Before this PR,m_readyToDraw
was set totrue
once after firstwl_frame_callback_handler
. After this PR now them_readyToDraw
is toggled after each frame.IsShownOnScreen()
probably shouldn't flap at 60hz?I hacked it use
gtk_window_is_visible()
forIsShownOnScreen
check and in my limited testing Kicad renders a bit better.Originally posted by @artizirk in #23554 (comment)
The text was updated successfully, but these errors were encountered: