Package org.lwjgl.egl

Class EXTSyncReuse


  • public class EXTSyncReuse
    extends java.lang.Object
    Native bindings to the EXT_sync_reuse extension.

    The original EGLSync extensions separated sync objects into two types: fence sync objects signaled by one time events in an API command pipeline; and reusable sync objects signaled by commands which can be issued again and again. However, this conflates reusability of the event triggering a sync object with the EGLSync object itself.

    Although the event associated with a fence sync object will only occur once, there is no reason that it can't be replaced with a new event. Doing so would avoid unnecessary allocation and free operations in an application that repeatedly waits for events. With the current interfaces, such applications must constantly create and destroy new EGLSync objects.

    This extension allows all sync objects to be reusable. When a sync object is in the signaled state, it can be reset back to an unsignaled state, regenerating or reevaluating the events that trigger them. For fence sync objects, this means generating a new fence in the current API. For OpenCL event sync objects, this means waiting for a new OpenCL event handle. This mechanism also allows sync objects to be created in the signaled state with no associated fence/event, and have one applied later. Thus all EGLSyncs required by an application can be allocated up front, before any rendering operations have begun.

    Requires EGL 1.5 or EGL 1.4 with KHR_fence_sync.

    • Method Detail

      • neglUnsignalSyncEXT

        public static int neglUnsignalSyncEXT​(long dpy,
                                              long sync,
                                              long attrib_list)
      • eglUnsignalSyncEXT

        public static boolean eglUnsignalSyncEXT​(long dpy,
                                                 long sync,
                                                 @Nullable
                                                 PointerBuffer attrib_list)