1. 14 Mar, 2017 1 commit
    • Daniel Stone's avatar
      Switch to global output repaint timer · 6847b858
      Daniel Stone authored
      In preparation for grouping output repaint together where possible,
      switch the per-output repaint timer, to a global timer which iterates
      across all outputs.
      This is implemented by storing the absolute time for the next repaint
      for each output locally, and maintaining a global timer which iterates
      all of them, scheduling the repaint for the first available time.
      Signed-off-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      Cc: Mario Kleiner <mario.kleiner.de@gmail.com>
      Cc: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
      [Pekka: The comment about 1 ms delay.]
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
  2. 13 Mar, 2017 2 commits
    • Daniel Stone's avatar
      Change boolean repaint_scheduled to quad-state enum · 05df8c16
      Daniel Stone authored
      repaint_scheduled is actually cleverly a quad-state, disguised as a
      boolean. There are four possible conditions for the repaint loop to be
      in at any time:
        - loop idle; no repaint will occur until specifically requested, which
          may be never (repaint_scheduled == 0)
        - loop schedule to begin: the loop was previously idle, but due to a
          repaint-schedule request, we will call the start_repaint_loop hook
          in the next idle task
        - repaint scheduled: the compositor has definitively scheduled a
          repaint request for this output, which will occur in fixed time
        - awaiting repaint completion: the backend has not yet signaled
          completion of the last repaint request, and the compositor will not
          schedule another until it does so
      All but the first condition were previously conflated as
      repaint_scheduled == 1, but break them out into separate conditions to
      aid clarity, backed up by some asserts.
      Signed-off-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
    • Daniel Stone's avatar
      Change repaint_needed to bool · 09a97e24
      Daniel Stone authored
      It is only used as a binary value.
      Signed-off-by: Daniel Stone's avatarDaniel Stone <daniels@collabora.com>
      Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
  3. 07 Feb, 2017 1 commit
  4. 17 Jan, 2017 3 commits
  5. 24 Nov, 2016 1 commit
  6. 21 Nov, 2016 3 commits
  7. 22 Oct, 2016 1 commit
  8. 05 Oct, 2016 2 commits
  9. 03 Oct, 2016 1 commit
    • Armin Krezović's avatar
      libweston: Add more functionality for handling weston_output objects · a01ab6d5
      Armin Krezović authored
      This patch implements additional functionality that will be used
      for configuring, enabling and disabling weston's outputs. Its
      indended use is by the compositors or user programs that want to
      be able to configure, enable or disable an output at any time. An
      output can only be configured while it's disabled.
      The compositor and backend specific functionality is required
      for these functions to be useful, and those will come later in
      this series.
      All the new functions have been documented, so I'll avoid
      describing them here.
       - Minor documentation improvements.
       - Rename output-initialized to output->enabled.
       - Split weston_output_disable() further into
       - Rename weston_output_deinit() to weston_output_enable_undo().
       - Make weston_output_disable() call two functions mentioned
         above instead of calling weston_output_disable() directly.
         This means that backend needs to take care of doing backend
         specific disable in backend specific destroy function.
       - Require output->name to be set before calling
       - Require output->destroying to be set before
         calling weston_compositor_remove_output().
       - Split weston_output_init_pending() into
         weston_compositor_add_pending_output() so pending outputs
         can be announced separately.
       - Require output->disable() to be set in order for
         weston_output_disable() to be usable.
       - Fix output removing regression that happened when
         weston_output_disable() was split.
       - Minor documentation fix.
       - Bump libweston version to 2 as this patch breaks the ABI.
      Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      Signed-off-by: default avatarArmin Krezović <krezovic.armin@gmail.com>
  10. 30 Aug, 2016 6 commits
  11. 27 Aug, 2016 1 commit
  12. 15 Aug, 2016 1 commit
  13. 14 Aug, 2016 5 commits
  14. 26 Jul, 2016 10 commits
  15. 01 Jul, 2016 2 commits
    • Armin Krezović's avatar
      compositor: Untangle surface/view is_mapped from output assignments · f8486c33
      Armin Krezović authored
      Currently, weston assumes a surface/view is mapped if
      it has an output assigned. In a zero outputs scenario,
      this isn't really desirable.
      This patch introduces a new flag to weston_surface and
      weston_view, which has to be set manually to indicate
      that a surface/view is mapped.
      - Remove usage of new flags from
        weston_{view,surface}_is_mapped at this point. They
        will be added after all the implicit mappings have
        been introduced
      - Unmap a surface before unmapping a view so the input
        foci is cleaned up properly
      - Remove implicit view mapping from view_list_add
      - Cosmetic fixes
      - Rebased to apply on git master
      Signed-off-by: default avatarArmin Krezović <krezovic.armin@gmail.com>
      Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
    • Giulio Camuffo's avatar
      xwayland: make the plugin usable by libweston compositors · 9c764df0
      Giulio Camuffo authored
      This patch follows a similar approach taken to detach the backends from
      weston. But instead of passing a configuration struct when loading the
      plugin, we use the plugin API registry to register an API, and to get it
      in the compositor side.  This API allows to spawn the Xwayland process
      in the compositor side, and to deal with signal handling.  A new
      function is added in compositor.c to load and init the xwayland.so
      Also make sure to re-arm the SIGUSR1 when the X server quits.
      Signed-off-by: default avatarGiulio Camuffo <giuliocamuffo@gmail.com>
      [Pekka: moved xwayland/weston-xwayland.c -> compositor/xwayland.c]
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>