# X.Org Conceptual Diagram # Matt Dew digraph Xorg { graph [ fontsize=18 ]; node [ fontsize=15 ]; subgraph cluster_client { subgraph clusterLibraries { label = "Client Libraries"; color=black Cairo; Pango; OpenGL; Toolkit; "Xlib or xcb"; Cairo -> "Xlib or xcb"; Cairo -> OpenGL; Pango -> "Xlib or xcb"; Toolkit -> "Xlib or xcb"; } label = "Client"; fontsize=20; color=green } subgraph cluster_hw { Display; Keyboard; Mouse; label = "Hardware devices"; fontsize=20; color=grey } Mesa; Gallium; subgraph cluster_server { Event_Queue; label = "Server"; fontsize=20; color=blue subgraph cluster_ddx { "Input Drivers"; "Video Drivers"; label = "DDX"; color=purple subgraph clusterAcceleration { label = "Acceleration Architectures"; Acceleration_2D; Pixman; } Acceleration_2D -> Pixman; Acceleration_2D -> "Video Drivers" -> Acceleration_2D; } subgraph cluster_dix { Dispatch; Event_Queue; label = "DIX"; color=purple } subgraph cluster_extensions { Render; RandR; Xinput; GLX; label = "Extensions"; color=purple } Dispatch -> RandR [color=green]; Dispatch -> Xinput [color=green]; Dispatch -> Render [color=green]; Dispatch -> GLX [color=green]; Dispatch -> "Video Drivers"; RandR -> "Video Drivers"; } "Xlib or xcb" -> Dispatch; Keyboard -> "Input Drivers" [style=dashed]; Mouse -> "Input Drivers" [color=blue]; "Input Drivers" -> Xinput; "Input Drivers" -> Event_Queue; Xinput -> Event_Queue; Event_Queue -> "Xlib or xcb"; OpenGL -> Mesa; GLX -> Mesa; Mesa -> Gallium; Gallium -> Display [color=purple,style=dashed]; "Video Drivers" -> Display [color=purple,style=dashed]; "Video Drivers" [shape=Msquare,color=red]; "Input Drivers" [shape=Msquare,color=red]; Xinput [shape=Mdiamond]; }