@ -532,6 +532,7 @@ calc_inverse_matrix_transform(const struct weston_matrix *matrix,
*/
*/
static void
static void
calc_surface_to_global_matrix_and_mask_to_weston_surface (
calc_surface_to_global_matrix_and_mask_to_weston_surface (
struct ivi_layout_screen * iviscrn ,
struct ivi_layout_layer * ivilayer ,
struct ivi_layout_layer * ivilayer ,
struct ivi_layout_surface * ivisurf ,
struct ivi_layout_surface * ivisurf ,
struct weston_matrix * m ,
struct weston_matrix * m ,
@ -539,6 +540,7 @@ calc_surface_to_global_matrix_and_mask_to_weston_surface(
{
{
const struct ivi_layout_surface_properties * sp = & ivisurf - > prop ;
const struct ivi_layout_surface_properties * sp = & ivisurf - > prop ;
const struct ivi_layout_layer_properties * lp = & ivilayer - > prop ;
const struct ivi_layout_layer_properties * lp = & ivilayer - > prop ;
struct weston_output * output = iviscrn - > output ;
struct ivi_rectangle weston_surface_rect = { 0 ,
struct ivi_rectangle weston_surface_rect = { 0 ,
0 ,
0 ,
ivisurf - > surface - > width ,
ivisurf - > surface - > width ,
@ -566,7 +568,9 @@ calc_surface_to_global_matrix_and_mask_to_weston_surface(
* coordinates to global coordinates , which is computed by
* coordinates to global coordinates , which is computed by
* two steps ,
* two steps ,
* - surface - local coordinates to layer - local coordinates
* - surface - local coordinates to layer - local coordinates
* - layer - local coordinates to global coordinates
* - layer - local coordinates to a single screen - local coordinates
* - a single screen - local coordinates to multi screen coordinates ,
* which is global coordinates .
*/
*/
calc_transformation_matrix ( & surface_source_rect ,
calc_transformation_matrix ( & surface_source_rect ,
& surface_dest_rect ,
& surface_dest_rect ,
@ -576,6 +580,8 @@ calc_surface_to_global_matrix_and_mask_to_weston_surface(
& layer_dest_rect ,
& layer_dest_rect ,
lp - > orientation , m ) ;
lp - > orientation , m ) ;
weston_matrix_translate ( m , output - > x , output - > y , 0.0f ) ;
/* this intersected ivi_rectangle would be used for masking
/* this intersected ivi_rectangle would be used for masking
* weston_surface
* weston_surface
*/
*/
@ -622,7 +628,7 @@ update_prop(struct ivi_layout_screen *iviscrn,
weston_matrix_init ( & ivisurf - > transform . matrix ) ;
weston_matrix_init ( & ivisurf - > transform . matrix ) ;
calc_surface_to_global_matrix_and_mask_to_weston_surface (
calc_surface_to_global_matrix_and_mask_to_weston_surface (
ivilayer , ivisurf , & ivisurf - > transform . matrix , & r ) ;
iviscrn , ivi layer , ivisurf , & ivisurf - > transform . matrix , & r ) ;
weston_view_set_mask ( tmpview , r . x , r . y , r . width , r . height ) ;
weston_view_set_mask ( tmpview , r . x , r . y , r . width , r . height ) ;
wl_list_insert ( & tmpview - > geometry . transformation_list ,
wl_list_insert ( & tmpview - > geometry . transformation_list ,