monado/doc/images/out-of-proc.drawio.svg
Ryan Pavlik ca5c1568c6 doc: Update prose and diagrams for fd->native renames.
Also now leaving just the SVG with drawio data embedded,
renamed so e.g. the extension for VSCode can hook it.
2020-07-16 10:10:16 -05:00

432 lines
32 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1031px" height="814px" viewBox="-0.5 -0.5 1031 814" content="&lt;mxfile host=&quot;33d46728-47ad-447a-847e-52de5af0104e&quot; modified=&quot;2020-07-16T15:05:54.211Z&quot; agent=&quot;5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Code-Insiders/1.48.0-insider Chrome/80.0.3987.165 Electron/8.3.3 Safari/537.36&quot; etag=&quot;dJD7QJZ0I1eWj79Hh-_4&quot; version=&quot;13.1.3&quot;&gt;&lt;diagram id=&quot;i7RjRSwkiHJf6eIeykeo&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;">
<defs>
<clipPath id="mx-clip-604-711-422-26-0">
<rect x="604" y="711" width="422" height="26"/>
</clipPath>
<clipPath id="mx-clip-604-737-422-26-0">
<rect x="604" y="737" width="422" height="26"/>
</clipPath>
<clipPath id="mx-clip-604-763-422-26-0">
<rect x="604" y="763" width="422" height="26"/>
</clipPath>
<clipPath id="mx-clip-604-789-422-26-0">
<rect x="604" y="789" width="422" height="26"/>
</clipPath>
<clipPath id="mx-clip-4-711-422-26-0">
<rect x="4" y="711" width="422" height="26"/>
</clipPath>
<clipPath id="mx-clip-4-737-422-26-0">
<rect x="4" y="737" width="422" height="26"/>
</clipPath>
<clipPath id="mx-clip-4-763-422-26-0">
<rect x="4" y="763" width="422" height="26"/>
</clipPath>
<clipPath id="mx-clip-4-789-422-26-0">
<rect x="4" y="789" width="422" height="26"/>
</clipPath>
</defs>
<g>
<path d="M 815 375 L 815 573.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 815 578.88 L 811.5 571.88 L 815 573.63 L 818.5 571.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 478px; margin-left: 815px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">
creates
</div>
</div>
</div>
</foreignObject>
<text x="815" y="481" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">
creates
</text>
</switch>
</g>
<ellipse cx="815" cy="330" rx="110" ry="45" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 330px; margin-left: 706px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<font face="Courier New">
xrt_instance_create
<br/>
</font>
(full implementation in targets/common/target_instance.c)
</div>
</div>
</div>
</foreignObject>
<text x="815" y="334" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
xrt_instance_create...
</text>
</switch>
</g>
<rect x="455" y="0" width="100" height="40" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 20px; margin-left: 505px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 24px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: nowrap; ">
With XRT_FEATURE_SERVICE enabled
</div>
</div>
</div>
</foreignObject>
<text x="505" y="27" fill="#000000" font-family="Helvetica" font-size="24px" text-anchor="middle" font-weight="bold">
With XRT...
</text>
</switch>
</g>
<rect x="55" y="60" width="340" height="110" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 332px; height: 1px; padding-top: 50px; margin-left: 60px;">
<div style="box-sizing: border-box; font-size: 0; text-align: left; max-height: 120px; overflow: hidden; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<h1>
in libopenxr_monado.so
</h1>
<p>
This library is loaded by the OpenXR loader and provides the entry points for that API. No direct hardware access takes place (neither for rendering nor device input) - forwarded over IPC links to service module. Built in xrt/targets/openxr
</p>
</div>
</div>
</div>
</foreignObject>
<text x="60" y="62" fill="#000000" font-family="Helvetica" font-size="12px">
in libopenxr_monado.so...
</text>
</switch>
</g>
<rect x="655" y="60" width="320" height="100" fill="none" stroke="none" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 312px; height: 1px; padding-top: 50px; margin-left: 660px;">
<div style="box-sizing: border-box; font-size: 0; text-align: left; max-height: 110px; overflow: hidden; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<h1>
in monado-service
</h1>
<p>
This persistent service performs hardware interaction and exposes functionality over IPC to the runtime SO loaded in the app's process. Built in xrt/targets/service
</p>
</div>
</div>
</div>
</foreignObject>
<text x="660" y="62" fill="#000000" font-family="Helvetica" font-size="12px">
in monado-service...
</text>
</switch>
</g>
<ellipse cx="215" cy="210" rx="110" ry="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 210px; margin-left: 106px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<font face="Courier New">
xrCreateInstance
</font>
<br/>
(in state_trackers/oxr/oxr_instance.c)
</div>
</div>
</div>
</foreignObject>
<text x="215" y="214" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
xrCreateInstance...
</text>
</switch>
</g>
<ellipse cx="215" cy="330" rx="80" ry="40" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 330px; margin-left: 136px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<font face="Courier New">
xrt_instance_create
</font>
<br/>
(trampoline in targets/openxr/target.c)
</div>
</div>
</div>
</foreignObject>
<text x="215" y="334" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
xrt_instance_create...
</text>
</switch>
</g>
<path d="M 215 250 L 215 283.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 215 288.88 L 211.5 281.88 L 215 283.63 L 218.5 281.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 270px; margin-left: 215px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">
calls
</div>
</div>
</div>
</foreignObject>
<text x="215" y="273" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">
calls
</text>
</switch>
</g>
<ellipse cx="215" cy="470" rx="80" ry="50" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 470px; margin-left: 136px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<font face="Courier New">
ipc_instance_create
</font>
<br/>
(in ipc/ipc_client_instance)
</div>
</div>
</div>
</foreignObject>
<text x="215" y="474" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
ipc_instance_create...
</text>
</switch>
</g>
<path d="M 215 370 L 215 413.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 215 418.88 L 211.5 411.88 L 215 413.63 L 218.5 411.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 395px; margin-left: 215px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">
calls
</div>
</div>
</div>
</foreignObject>
<text x="215" y="398" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">
calls
</text>
</switch>
</g>
<rect x="95" y="580" width="240" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 615px; margin-left: 96px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<div>
<font face="Courier New">
ipc_client_instance
</font>
</div>
<div>
which implements
<font face="Courier New">
xrt_instance
</font>
with client proxy functions
</div>
</div>
</div>
</div>
</foreignObject>
<text x="215" y="619" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
ipc_client_instance...
</text>
</switch>
</g>
<path d="M 215 520 L 215 573.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 215 578.88 L 211.5 571.88 L 215 573.63 L 218.5 571.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 550px; margin-left: 215px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">
creates
</div>
</div>
</div>
</foreignObject>
<text x="215" y="553" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">
creates
</text>
</switch>
</g>
<rect x="695" y="580" width="240" height="70" fill="#ffffff" stroke="#000000" pointer-events="all"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 615px; margin-left: 696px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">
<div>
<font face="Courier New">
t_instance
</font>
</div>
<div>
which implements
<font face="Courier New">
xrt_instance
</font>
with functions that access hardware, using a prober created with all target lists
</div>
</div>
</div>
</div>
</foreignObject>
<text x="815" y="619" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
t_instance...
</text>
</switch>
</g>
<path d="M 593.63 700.02 L 545 700 L 545 580" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/>
<path d="M 598.88 700.02 L 591.88 702.35 L 593.63 700.02 L 591.88 697.68 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 600 706 L 600 680 L 1030 680 L 1030 706" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 600 706 L 600 810 L 1030 810 L 1030 706" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
<path d="M 600 706 L 1030 706" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
<g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
<text x="814.5" y="697.5">
t_instance
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-604-711-422-26-0)" font-size="12px">
<text x="605.5" y="723.5">
select = t_instance_select
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-604-737-422-26-0)" font-size="12px">
<text x="605.5" y="749.5">
create_native_compositor = t_instance_create_native_compositor
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-604-763-422-26-0)" font-size="12px">
<text x="605.5" y="775.5">
get_prober = t_instance_get_prober
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-604-789-422-26-0)" font-size="12px">
<text x="605.5" y="801.5">
destroy = t_instance_destroy
</text>
</g>
<path d="M 436.37 700.28 L 485 700.3 L 485 580" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="none"/>
<path d="M 431.12 700.28 L 438.12 697.95 L 436.37 700.28 L 438.12 702.62 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
<path d="M 0 706 L 0 680 L 430 680 L 430 706" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
<path d="M 0 706 L 0 810 L 430 810 L 430 706" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
<path d="M 0 706 L 430 706" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
<g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
<text x="214.5" y="697.5">
ipc_client_instance
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-4-711-422-26-0)" font-size="12px">
<text x="5.5" y="723.5">
select = ipc_client_instance_select
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-4-737-422-26-0)" font-size="12px">
<text x="5.5" y="749.5">
create_native_compositor = ipc_client_instance_create_native_compositor
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-4-763-422-26-0)" font-size="12px">
<text x="5.5" y="775.5">
get_prober = ipc_client_instance_get_prober
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-4-789-422-26-0)" font-size="12px">
<text x="5.5" y="801.5">
destroy = ipc_client_instance_destroy
</text>
</g>
<rect x="455" y="530" width="120" height="50" fill="#ffffff" stroke="#000000" pointer-events="none"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 555px; margin-left: 515px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: nowrap; ">
«interface»
<br/>
<b>
xrt_instance
</b>
</div>
</div>
</div>
</foreignObject>
<text x="515" y="559" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
«interface»...
</text>
</switch>
</g>
<path d="M 815 240 L 815 278.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
<path d="M 815 283.88 L 811.5 276.88 L 815 278.63 L 818.5 276.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 263px; margin-left: 815px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; background-color: #ffffff; white-space: nowrap; ">
calls
</div>
</div>
</div>
</foreignObject>
<text x="815" y="266" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">
calls
</text>
</switch>
</g>
<ellipse cx="815" cy="200" rx="85" ry="40" fill="#ffffff" stroke="#000000" pointer-events="none"/>
<g transform="translate(-0.5 -0.5)">
<switch>
<foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility">
<div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 200px; margin-left: 731px;">
<div style="box-sizing: border-box; font-size: 0; text-align: center; ">
<div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: none; white-space: normal; word-wrap: normal; ">
<font face="Courier New">
init_all()
</font>
<br/>
(in ipc/ipc_server_process.c)
</div>
</div>
</div>
</foreignObject>
<text x="815" y="204" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
init_all()...
</text>
</switch>
</g>
</g>
<switch>
<g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
<a transform="translate(0,-5)" xlink:href="https://desk.draw.io/support/solutions/articles/16000042487" target="_blank">
<text text-anchor="middle" font-size="10px" x="50%" y="100%">
Viewer does not support full SVG 1.1
</text>
</a>
</switch>
</svg>