@ -1092,11 +1092,13 @@ static void
repaint_views ( struct weston_output * output , pixman_region32_t * damage )
repaint_views ( struct weston_output * output , pixman_region32_t * damage )
{
{
struct weston_compositor * compositor = output - > compositor ;
struct weston_compositor * compositor = output - > compositor ;
struct weston_view * view ;
struct weston_paint_node * pnode ;
wl_list_for_each_reverse ( view , & compositor - > view_list , link )
wl_list_for_each_reverse ( pnode , & output - > paint_node_z_order_list ,
if ( view - > plane = = & compositor - > primary_plane )
z_order_link ) {
draw_view ( view , output , damage ) ;
if ( pnode - > view - > plane = = & compositor - > primary_plane )
draw_view ( pnode - > view , output , damage ) ;
}
}
}
static int
static int
@ -1110,9 +1112,11 @@ static void
update_buffer_release_fences ( struct weston_compositor * compositor ,
update_buffer_release_fences ( struct weston_compositor * compositor ,
struct weston_output * output )
struct weston_output * output )
{
{
struct weston_view * view ;
struct weston_paint_node * pnode ;
wl_list_for_each_reverse ( view , & compositor - > view_list , link ) {
wl_list_for_each_reverse ( pnode , & output - > paint_node_z_order_list ,
z_order_link ) {
struct weston_view * view = pnode - > view ;
struct gl_surface_state * gs ;
struct gl_surface_state * gs ;
struct weston_buffer_release * buffer_release ;
struct weston_buffer_release * buffer_release ;
int fence_fd ;
int fence_fd ;
@ -1560,17 +1564,18 @@ gl_renderer_repaint_output(struct weston_output *output,
/* total area we need to repaint this time */
/* total area we need to repaint this time */
pixman_region32_t total_damage ;
pixman_region32_t total_damage ;
enum gl_border_status border_status = BORDER_STATUS_CLEAN ;
enum gl_border_status border_status = BORDER_STATUS_CLEAN ;
struct weston_view * view ;
struct weston_paint_node * pnode ;
if ( use_output ( output ) < 0 )
if ( use_output ( output ) < 0 )
return ;
return ;
/* Clear the used_in_output_repaint flag, so that we can properly track
/* Clear the used_in_output_repaint flag, so that we can properly track
* which surfaces were used in this output repaint . */
* which surfaces were used in this output repaint . */
wl_list_for_each_reverse ( view , & compositor - > view_list , link ) {
wl_list_for_each_reverse ( pnode , & output - > paint_node_z_order_list ,
if ( view - > plane = = & compositor - > primary_plane ) {
z_order_link ) {
if ( pnode - > view - > plane = = & compositor - > primary_plane ) {
struct gl_surface_state * gs =
struct gl_surface_state * gs =
get_surface_state ( view - > surface ) ;
get_surface_state ( pnode - > view - > surface ) ;
gs - > used_in_output_repaint = false ;
gs - > used_in_output_repaint = false ;
}
}
}
}