1#!/usr/bin/mscgen -Tpng 2 3msc { 4 hscale="1.5"; 5 6 c [label = "compositor"], w [label = "libweston core"], 7 b [label = "backend"]; 8 9 |||; 10 11 --- [label = "Compositor destroys an output for a head"]; 12 13 c box c [label = "A head is found disconnected, is being destroyed, or something else needs it disabled."]; 14 15 c => w [label = "weston_head_get_output()"]; 16 c << w [label = "weston_output"]; 17 18 c box c [label = "decide the output needs to be destroyed"]; 19 20 c => w [label = "weston_output_destroy()"]; 21 w => b [label = "weston_output::destroy()"]; 22 w <= b [label = "weston_output_release()"]; 23 w <= w [label = "weston_head_detach()"]; 24 w :> b [label = "weston_output::detach_head()"]; 25 w >> b [label = "release return"]; 26 b box b [label = "free(output)"]; 27 w << b; 28 c << w; 29} 30