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.
This commit is contained in:
Ryan Pavlik 2020-07-16 10:10:16 -05:00
parent 9379248268
commit ca5c1568c6
7 changed files with 658 additions and 12 deletions

View file

@ -1 +0,0 @@
<mxfile host="Electron" modified="2020-05-26T22:13:46.682Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.4.2 Chrome/78.0.3904.130 Electron/7.1.4 Safari/537.36" etag="iaisVdC_bzB5dWKzDBA1" version="12.4.2" type="device" pages="1"><diagram id="i7RjRSwkiHJf6eIeykeo" name="Page-1">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</diagram></mxfile>

View file

@ -0,0 +1,223 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="642px" height="744px" viewBox="-0.5 -0.5 642 744" content="&lt;mxfile host=&quot;10460dd4-3a9b-49be-9dda-67c5da313243&quot; modified=&quot;2020-07-16T15:05:24.044Z&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;-56zt3ZJ8HD56Lm9mq8x&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-10-641-422-26-0">
<rect x="10" y="641" width="422" height="26"/>
</clipPath>
<clipPath id="mx-clip-10-667-422-26-0">
<rect x="10" y="667" width="422" height="26"/>
</clipPath>
<clipPath id="mx-clip-10-693-422-26-0">
<rect x="10" y="693" width="422" height="26"/>
</clipPath>
<clipPath id="mx-clip-10-719-422-26-0">
<rect x="10" y="719" width="422" height="26"/>
</clipPath>
</defs>
<g>
<path d="M 221 380 L 221 463.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 221 468.88 L 217.5 461.88 L 221 463.63 L 224.5 461.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: 425px; margin-left: 221px;">
<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="221" y="428" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">
creates
</text>
</switch>
</g>
<ellipse cx="221" cy="335" 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: 335px; margin-left: 112px;">
<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="221" y="339" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
xrt_instance_create...
</text>
</switch>
</g>
<rect x="176" 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: 226px;">
<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 disabled
</div>
</div>
</div>
</foreignObject>
<text x="226" y="27" fill="#000000" font-family="Helvetica" font-size="24px" text-anchor="middle" font-weight="bold">
With XRT...
</text>
</switch>
</g>
<rect x="61" y="50" width="320" 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: 312px; height: 1px; padding-top: 40px; margin-left: 66px;">
<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>
This library is loaded by the OpenXR loader and provides the entry points for that API. 
<span>
The entire runtime exists in this library, within the process space of the application. Built in xrt/targets/openxr
</span>
</div>
</div>
</div>
</foreignObject>
<text x="66" y="52" fill="#000000" font-family="Helvetica" font-size="12px">
in libopenxr_monado.soThis library is loaded by the...
</text>
</switch>
</g>
<ellipse cx="221" cy="200" 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: 200px; margin-left: 112px;">
<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="221" y="204" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
xrCreateInstance...
</text>
</switch>
</g>
<path d="M 221 240 L 221 283.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/>
<path d="M 221 288.88 L 217.5 281.88 L 221 283.63 L 224.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: 265px; margin-left: 221px;">
<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="221" y="268" fill="#000000" font-family="Helvetica" font-size="11px" text-anchor="middle">
calls
</text>
</switch>
</g>
<rect x="81" y="470" width="280" height="80" 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: 278px; height: 1px; padding-top: 510px; margin-left: 82px;">
<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="221" y="514" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
t_instance...
</text>
</switch>
</g>
<path d="M 442.37 649 L 521 649" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/>
<path d="M 437.12 649 L 444.12 646.67 L 442.37 649 L 444.12 651.33 Z" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 6 636 L 6 610 L 436 610 L 436 636" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/>
<path d="M 6 636 L 6 740 L 436 740 L 436 636" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
<path d="M 6 636 L 436 636" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="none"/>
<g fill="#000000" font-family="Helvetica" text-anchor="middle" font-size="12px">
<text x="220.5" y="627.5">
t_instance
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-10-641-422-26-0)" font-size="12px">
<text x="11.5" y="653.5">
select = t_instance_select
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-10-667-422-26-0)" font-size="12px">
<text x="11.5" y="679.5">
create_native_compositor = t_instance_create_native_compositor
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-10-693-422-26-0)" font-size="12px">
<text x="11.5" y="705.5">
get_prober = t_instance_get_prober
</text>
</g>
<g fill="#000000" font-family="Helvetica" clip-path="url(#mx-clip-10-719-422-26-0)" font-size="12px">
<text x="11.5" y="731.5">
destroy = t_instance_destroy
</text>
</g>
<rect x="521" y="624" 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: 649px; margin-left: 581px;">
<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="581" y="653" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">
«interface»...
</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>

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 12 KiB

View file

@ -1 +0,0 @@
<mxfile host="Electron" modified="2020-05-26T22:17:09.099Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.4.2 Chrome/78.0.3904.130 Electron/7.1.4 Safari/537.36" etag="UkJOf6hkk2mb1MZDNHC8" version="12.4.2" type="device" pages="1"><diagram id="i7RjRSwkiHJf6eIeykeo" name="Page-1">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</diagram></mxfile>

View file

@ -0,0 +1,431 @@
<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>

After

Width:  |  Height:  |  Size: 32 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 22 KiB

View file

@ -34,8 +34,8 @@ instantiates your implementation.
All methods of `xrt_instance` are required, though the `get_prober` method may
output a null pointer if the instance is not using a prober, and targets that do
not need compositing may stub out the `create_fd_compositor` method to always
return an error. A fully-featured implementation is in
not need compositing may stub out the `create_native_compositor` method to
always return an error. A fully-featured implementation is in
`src/targets/common/target_instance.c`, which calls
`xrt_prober_create_with_lists` passing the common `target_lists` variable to
include all supported devices.
@ -61,7 +61,7 @@ various extra targets like `monado-cli` even when building with
version, `target_instance_no_comp`, which stubs out the compositor creation
call, but are otherwise the same.)
![In-process OpenXR runtime diagram](images/in-process.svg)
![In-process OpenXR runtime diagram](images/in-process.drawio.svg)
### XRT_FEATURE_SERVICE enabled
@ -73,4 +73,4 @@ Note that in this case, there are two processes involved, which have different
- The service has a normal or complete instance implementation that actually
provides access to devices, etc.
![Out-of-process OpenXR runtime diagram](images/out-of-proc.svg)
![Out-of-process OpenXR runtime diagram](images/out-of-proc.drawio.svg)