[PATCH weston v2 00/20] Replace existing transformation code with matrix operations

Derek Foreman derekf at osg.samsung.com
Thu Oct 16 08:55:18 PDT 2014


This is also available at https://github.com/ManMower/weston/commits/transforms

The goal of this patch set is to remove much of the bulky switch statement
based transform code and replace it with matrix multiplication.  Hopefully
this will result in a more maintainable pixman renderer due to the removal
of all the special cases for each screen transform.

Major changes since the last revision:
 - remove full matrix transform decomposition routines:
   replace it with weston_matrix_needs_filtering based on matrix inspection
   and weston_matrix_to_transform that does a simpler decompose

 - changes to how compositor-drm checks for plane viability

 - addition of weston_view_to_output_matrix() to create the "end to end" matrix


Derek Foreman (14):
  compositor: Move weston_matrix_transform_region to compositor.c and
    export it
  compositor: add weston_matrix_transform_rect() and use it where
    appropriate
  compositor: use matrix transforms for surface_to_buffer functions
  compositor: use weston_matrix_transform_region for overlay setup
  compositor: Remove weston_transformed_region
  compositor: Add a function to test if images transformed by a matrix
    should be bilinearly filtered
  renderers: use weston_matrix_needs_filtering to choose filter
    parameters in gl and pixman renderers
  compositor-drm: use weston_surface_to_buffer_rect instead of
    weston_transformed_rect
  compositor: Remove weston_transformed_rect() and
    weston_transformed_coord()
  compositor: use weston_matrix_transform for
    weston_output_transform_coordinate
  compositor: Add weston_matrix_to_transform function
  compositor: add weston_view_to_output_matrix()
  renderers: use weston_view_to_output_matrix() in renderers
  compositor-drm: use weston_view_to_output_matrix() to test plane
    viability

Jason Ekstrand (6):
  weston_surface: Add surface-to-buffer and buffer-to-surface matrices
  gl-renderer: Call glViewport after the context is made current
  Use pixel coordinates for weston_output.matrix
  zoom: Use pixels instead of GL coordinates
  pixman-renderer: Add a weston_matrix_to_pixman_transform function and 
       simplify the buffer-to-output matrix computation
  pixman-renderer: Use output->matrix for region transformations and
    enable output zoom

 src/compositor-drm.c     |  85 +++----
 src/compositor-wayland.c |   8 +-
 src/compositor-x11.c     |   8 +-
 src/compositor.c         | 589 ++++++++++++++++++++++-------------------------
 src/compositor.h         |  41 ++--
 src/gl-renderer.c        |  35 ++-
 src/pixman-renderer.c    | 173 ++------------
 src/screen-share.c       |   8 +-
 src/screenshooter.c      |   7 +-
 src/zoom.c               |  38 ++-
 10 files changed, 402 insertions(+), 590 deletions(-)

-- 
2.1.1



More information about the wayland-devel mailing list