commit_timing_v1 Module
***********************


WpCommitTimerV1
===============

class pywayland.protocol.commit_timing_v1.WpCommitTimerV1

   Surface commit timer

   An object to set a time constraint for a content update on a
   surface.

   set_timestamp(tv_sec_hi: 'int', tv_sec_lo: 'int', tv_nsec: 'int') -> 'None'

      -[ Request -- opcode 0 (attached to "Resource" instance) ]-

      Specify time the following commit takes effect

      Provide a timing constraint for a surface content update.

      A set_timestamp request may be made before a
      "WlSurface.commit()" to tell the compositor that the content is
      intended to be presented as closely as possible to, but not
      before, the specified time. The time is in the domain of the
      compositor's presentation clock.

      An invalid_timestamp error will be generated for invalid
      tv_nsec.

      If a timestamp already exists on the surface, a timestamp_exists
      error is generated.

      Requesting set_timestamp after the commit_timer object's surface
      is destroyed will generate a "surface_destroyed" error.

      Parameters:
         * **tv_sec_hi** (*ArgumentType.Uint*) -- high 32 bits of the
           seconds part of target time

         * **tv_sec_lo** (*ArgumentType.Uint*) -- low 32 bits of the
           seconds part of target time

         * **tv_nsec** (*ArgumentType.Uint*) -- nanoseconds part of
           target time

   destroy() -> 'None'

      -[ Request -- opcode 1 (attached to "Resource" instance) ]-

      Destroy the timer

      Informs the server that the client will no longer be using this
      protocol object.

      Existing timing constraints are not affected by the destruction.


WpCommitTimingManagerV1
=======================

class pywayland.protocol.commit_timing_v1.WpCommitTimingManagerV1

   Commit timing

   When a compositor latches on to new content updates it will check
   for any number of requirements of the available content updates
   (such as fences of all buffers being signalled) to consider the
   update ready.

   This protocol provides a method for adding a time constraint to
   surface content. This constraint indicates to the compositor that a
   content update should be presented as closely as possible to, but
   not before, a specified time.

   This protocol does not change the Wayland property that content
   updates are applied in the order they are received, even when some
   content updates contain timestamps and others do not.

   To provide timestamps, this global factory interface must be used
   to acquire a wp_commit_timing_v1 object for a surface, which may
   then be used to provide timestamp information for commits.

   Warning! The protocol described in this file is currently in the
   testing phase. Backward compatible changes may be added together
   with the corresponding interface version bump. Backward
   incompatible changes can only be done by creating a new major
   version of the extension.

   destroy() -> 'None'

      -[ Request -- opcode 0 (attached to "Resource" instance) ]-

      Unbind from the commit timing interface

      Informs the server that the client will no longer be using this
      protocol object. Existing objects created by this object are not
      affected.

   get_timer(surface: 'WlSurfaceProxy') -> 'WpCommitTimerV1Proxy'

      -[ Request -- opcode 1 (attached to "Resource" instance) ]-

      Request commit timer interface for surface

      Establish a timing controller for a surface.

      Only one commit timer can be created for a surface, or a
      commit_timer_exists protocol error will be generated.

      Parameters:
         **surface** ("WlSurface")

      Returns:
         "WpCommitTimerV1"
