Add detailed explanations in Fl_Wayland_Gl_Window_Driver::make_current_before()

This commit is contained in:
ManoloFLTK 2022-05-24 11:07:04 +02:00
parent d971f6f59f
commit 6c6a80b90e

View File

@ -231,9 +231,13 @@ void Fl_Wayland_Gl_Window_Driver::make_current_before() {
egl_surface = eglCreateWindowSurface(egl_display, g->egl_conf, egl_window, NULL);
//fprintf(stderr, "Created egl surface=%p at scale=%d\n", egl_surface, win->scale);
wl_surface_set_buffer_scale(surface, win->scale);
//TODO It's still not entirely clear how to justify the value 5 below
int count = 0;
while (count++ < 5) {
// Tested apps: shape, glpuzzle, cube, fractals, gl_overlay, fullscreen,
// OpenGL3-glut-test, OpenGL3test
// Tested wayland compositors: mutter, kde-plasma, weston, sway on FreeBSD
// Origin of the value 3 below :
// All tests run OK with value 3 whereas some tests fail with 2, e.g.,
// glpuzzle + KDE, glpuzzle + sway sometimes.
for (int count = 0; count < 3; count++) {
wl_display_roundtrip(Fl_Wayland_Screen_Driver::wl_display);
eglSwapBuffers(Fl_Wayland_Gl_Window_Driver::egl_display, egl_surface);
}