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 creates an output for a head"]; 12 13 c box c [label = "Have an existing head to process."]; 14 c => w [label = "weston_compositor_create_output_with_head()"]; 15 w => b [label = "weston_backend::create_output()"]; 16 w << b [label = "an empty output, no hw resources"]; 17 w => b [label = "weston_output::attach_head()"]; 18 w << b [label = "success"]; 19 c << w [label = "success"]; 20 21 c abox c [label = "optionally more heads with weston_output_attach_head() for hardware clone mode."]; 22 23 c :> w [label = "weston_output_set_scale()"]; 24 c :> w [label = "weston_output_set_transform()"]; 25 c :> b [label = "backend specific settings via plugin API"]; 26 c => w [label = "weston_output_enable()"]; 27 w => b [label = "weston_output::enable()"]; 28 b box b [label = "hw resource allocation"]; 29 w << b [label = "success"]; 30 c << w [label = "success"]; 31} 32