1. 27 Nov, 2017 1 commit
  2. 26 Jul, 2016 1 commit
  3. 23 Jun, 2016 1 commit
  4. 20 Nov, 2015 2 commits
  5. 17 Jul, 2015 1 commit
    • Derek Foreman's avatar
      input: Pass the appropriate pointer type to bindings instead of a seat · 8ae2db5b
      Derek Foreman authored
      Normally we need to check if a seat's [device_type]_count is > 0 before
      we can use the associated pointer.  However, in a binding you're
      guaranteed that the seat has a device of that type.  If we pass in
      that type instead of the seat, it's obvious we don't have to test it.
      
      The bindings can still get the seat pointer via whatever->seat if they
      need it.
      
      This is preparation for a follow up patch that prevents direct access
      to seat->device_type pointers, and this will save us a few tests at
      that point.
      Reviewed-by: Jonas Ådahl's avatarJonas Ådahl <jadahl@gmail.com>
      Signed-off-by: default avatarDerek Foreman <derekf@osg.samsung.com>
      8ae2db5b
  6. 16 Jun, 2015 1 commit
  7. 15 Jun, 2015 1 commit
  8. 27 Mar, 2015 1 commit
  9. 11 Mar, 2015 8 commits
  10. 25 Feb, 2015 1 commit
  11. 24 Feb, 2015 1 commit
    • Pekka Paalanen's avatar
      compositor: turn weston_view boundingbox into masked · 25c0ca57
      Pekka Paalanen authored
      weston_view::transform.boundingbox is made to include the layer mask,
      which removes the need for masked_boundingbox.
      
      The following were using boundingbox when they should have used
      masked_boundingbox:
      - drm_output_prepare_overlay_view() uses boundingbox to compute overlay
        position, source and destination coordinates.
      - drm_assign_planes() uses boundingbox for view overlap checks.
      - is_view_not_visible() uses boundingbox, but nothing will show outside
        the layer mask.
      - weston_surface_assign_output() intersects boundingbox with output
        region to choose the primary output for a surface.
      - weston_view_assign_output() intersects boundingbox with output region
        to pick the outputs the view is on.
      
      This patch essentially changes all those cases to use the masked
      boundingbox.
      
      Therefore there are no cases which would need the boundingbox without
      the layer mask, and we can convert boundingbox into masked and remove
      the left-over member.
      Signed-off-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
      [v2: don't move the decl of 'mask' in weston_view_update_transform]
      Reviewed-By: default avatarGiulio Camuffo <giuliocamuffo@gmail.com>
      25c0ca57
  12. 28 Nov, 2014 1 commit
  13. 04 Sep, 2014 1 commit
  14. 03 Sep, 2014 1 commit
  15. 28 Aug, 2014 1 commit
  16. 23 Jul, 2014 1 commit
    • Giulio Camuffo's avatar
      compositor: add a masking mechanism to weston_layer · 95ec0f95
      Giulio Camuffo authored
      this adds a mechanism to mask the views belonging to a layer
      to an arbitrary rect, in the global space. The parts that don't fit
      in that rect will be clipped away.
      Supported by the gl and pixman renderer only for now.
      95ec0f95
  17. 25 Apr, 2014 1 commit
  18. 07 Apr, 2014 2 commits
  19. 01 Apr, 2014 3 commits
  20. 10 Mar, 2014 1 commit
  21. 09 Jan, 2014 1 commit
  22. 22 Dec, 2013 1 commit
    • Lubomir Rintel's avatar
      pixman: Destroy pixman images when underlying buffer is destroyed · ddc2b1ec
      Lubomir Rintel authored
      While the pixman image might be attached, the underlying buffer might be
      already gone under certain circumstances. This is easily reproduced by
      attempting to resize gnome-terminal on a fbdev backend.
      
      $ WAYLAND_DEBUG=1 strace -emunmap weston --backend=fbdev-backend.so
      ...
      [1524826.942] wl_shm@7.create_pool(new id wl_shm_pool@23, fd 40, 1563540)
      [1524827.315] wl_shm_pool@23.create_buffer(new id wl_buffer@24, 0, 759, 515, 3036, 0)
      ...
      [1524829.488] wl_surface@14.attach(wl_buffer@24, 0, 0)
      [1524829.766] wl_surface@14.set_buffer_scale(1)
      [1524829.904] wl_surface@14.damage(0, 0, 759, 515)
      [1524830.248] wl_surface@14.frame(new id wl_callback@25)
      [1524830.450] wl_surface@14.commit()
      ...
      [1524846.706] wl_shm@7.create_pool(new id wl_shm_pool@26, fd 40, 1545000)
      [1524847.215] wl_shm_pool@26.create_buffer(new id wl_buffer@27, 0, 750, 515, 3000, 0)
      [1524847.735] wl_buffer@24.destroy()
      [1524847.953]  -> wl_display@1.delete_id(24)
      [1524848.144] wl_shm_pool@23.destroy()
      munmap(0xb5b2e000, 1563540)             = 0
      [1524849.021]  -> wl_display@1.delete_id(23)
      [1524849.425] wl_surface@14.attach(wl_buffer@27, 0, 0)
      [1524849.730] wl_surface@14.set_buffer_scale(1)
      [1524849.821] wl_surface@14.damage(0, 0, 750, 515)
      <No commit yet, so drawing is attempted from older buffer that used to be
       attached to the surface, which happens to come from a destroyed pool,
       resulting it an invalid read from address 0xb5b2e000>
      Signed-off-by: Lubomir Rintel's avatarLubomir Rintel <lkundrak@v3.sk>
      ddc2b1ec
  23. 17 Dec, 2013 1 commit
    • Jonny Lamb's avatar
      pixman-renderer: implement surface scaling and cropping · fa1b3055
      Jonny Lamb authored
      The pixman renderer doesn't use the weston_surface_to_buffer*
      functions to alter coordinates depending on buffer transformation,
      buffer scaling, and surface scaler (wl_surface_scaler).
      pixman_transform_scale() is used instead to perform said
      transformations without having to modify each coordinate.
      fa1b3055
  24. 03 Dec, 2013 1 commit
    • Jason Ekstrand's avatar
      Remove the weston_view.geometry.width/height fields · 918f2dd4
      Jason Ekstrand authored
      This has a couple of additional implications for the internal weston API:
       1) weston_view_configure no longer exists.  Use weston_view_set_position
          instead.
       2) The weston_surface.configure callback no longer takes a width and
          height.  If you need these, surface.width/height are set before
          configure is called.  If you need to know when the width/height
          changes, you must track that yourself.
      918f2dd4
  25. 28 Nov, 2013 1 commit
  26. 14 Nov, 2013 1 commit
    • Neil Roberts's avatar
      Add calls to wl_shm_buffer_begin/end_access · e505171a
      Neil Roberts authored
      This wraps all accesses to an SHM buffer between wl_shm_buffer_begin
      and end so that wayland-shm can install a handler for SIGBUS and catch
      attempts to pass the compositor a buffer that is too small.
      e505171a
  27. 08 Nov, 2013 1 commit
  28. 25 Oct, 2013 2 commits
    • Ander Conselvan de Oliveira's avatar
      pixman-renderer, gl-renderer: Destroy surface state with the renderer · adda00e7
      Ander Conselvan de Oliveira authored
      Previously the renderers destroy function assumed they are only called
      when the compositor is shutting down and that the compositor had
      already destroyed all the surfaces. However, if a runtime renderer
      switch would be done, the surface state would be leaked.
      
      This patch adds a destroy_signal to the pixman and gl renderers. The
      surface state objects will listen for that signal and destroy
      themselves if needed.
      
      This is a step towards runtime switchable renderers.
      adda00e7
    • Ander Conselvan de Oliveira's avatar
      compositor: Let renderers create and destroy surface state on their own · aa398ae1
      Ander Conselvan de Oliveira authored
      Remove create_surface() and destroy_surface() from the renderer
      interface and change the renderers to create surface state on demand
      and destroy it using the weston_surface's destroy signal.
      
      Also make sure the surfaces' renderer state is reset to NULL on
      destruction.
      
      This is a step towards runtime switchable renderers.
      
      (rpi-renderer changes are only compile-tested)
      aa398ae1