Wayland documentation: further details about throttling window redraws
This commit is contained in:
parent
df3c875453
commit
614d551d05
@ -650,9 +650,8 @@ changed and needs being committed. This variable is turned \c true every time a
|
|||||||
graphics operation changes the buffer content and turned \c false when the
|
graphics operation changes the buffer content and turned \c false when the
|
||||||
buffer gets committed.
|
buffer gets committed.
|
||||||
|
|
||||||
This procedure ensures that FLTK never changes the surface's Wayland buffer
|
This procedure ensures that FLTK never calls \c wl_surface_commit()
|
||||||
while it's being used by the compositor and never calls \c wl_surface_commit()
|
before the compositor becomes ready for a new commit because
|
||||||
before Wayland gets ready for a new commit because
|
|
||||||
\c Fl_Wayland_Window_Driver::flush() calls
|
\c Fl_Wayland_Window_Driver::flush() calls
|
||||||
\c Fl_Wayland_Graphics_Driver::buffer_commit() only if \c frame_cb is NULL.
|
\c Fl_Wayland_Graphics_Driver::buffer_commit() only if \c frame_cb is NULL.
|
||||||
If it's not NULL, the exact content of function \c surface_frame_done() :
|
If it's not NULL, the exact content of function \c surface_frame_done() :
|
||||||
@ -667,9 +666,8 @@ static void surface_frame_done(void *data, struct wl_callback *cb, uint32_t time
|
|||||||
}
|
}
|
||||||
\endcode
|
\endcode
|
||||||
has the effect that when the mapping operation eventually completes, Wayland runs
|
has the effect that when the mapping operation eventually completes, Wayland runs
|
||||||
\c surface_frame_done(), which calls anew
|
\c surface_frame_done(), which, if the buffer's \c draw_buffer_needs_commit member is true,
|
||||||
\c Fl_Wayland_Graphics_Driver::buffer_commit() if the buffer's
|
calls \c Fl_Wayland_Graphics_Driver::buffer_commit() anew. The net result is that the screen
|
||||||
\c draw_buffer_needs_commit member is true. The net result is that the screen
|
|
||||||
shows the most recent surface content.
|
shows the most recent surface content.
|
||||||
|
|
||||||
This synchronization mechanism is also used when performing an interactive window resize
|
This synchronization mechanism is also used when performing an interactive window resize
|
||||||
@ -1242,6 +1240,11 @@ Wayland uses <a href=https://www.khronos.org/api/egl>EGL™</a> to interface Ope
|
|||||||
native platform window system. OpenGL-using FLTK apps are therefore linked to \c libwayland-egl.so and
|
native platform window system. OpenGL-using FLTK apps are therefore linked to \c libwayland-egl.so and
|
||||||
\c libEGL.so in addition to \c libGL.so and \c libGLU.so.
|
\c libEGL.so in addition to \c libGL.so and \c libGLU.so.
|
||||||
|
|
||||||
|
EGL completely hides the \c wl_buffer objects it uses to draw to GL windows.
|
||||||
|
The \ref wld_buffer structure and the 'buffer factory' described previously are not used for
|
||||||
|
\c Fl_Gl_Window's : the \c buffer member of an \c Fl_Gl_Window's \ref wld_window structure is
|
||||||
|
always NULL.
|
||||||
|
|
||||||
EGL is initialized calling member function \c Fl_Wayland_Gl_Window_Driver::init()
|
EGL is initialized calling member function \c Fl_Wayland_Gl_Window_Driver::init()
|
||||||
once, the first time the \c Fl_Wayland_Gl_Window_Driver c'tor runs. That is done
|
once, the first time the \c Fl_Wayland_Gl_Window_Driver c'tor runs. That is done
|
||||||
with calls to <tt>eglGetDisplay(), eglInitialize()</tt>, and \c eglBindAPI().
|
with calls to <tt>eglGetDisplay(), eglInitialize()</tt>, and \c eglBindAPI().
|
||||||
|
Loading…
Reference in New Issue
Block a user