Documentation and some other stuff.

This commit is contained in:
2026-03-30 11:03:56 +02:00
parent 8349b65a83
commit 9dd8b895ae
13 changed files with 2619 additions and 1607 deletions

View File

@@ -0,0 +1,516 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="1400"
height="820"
viewBox="0 0 1400 820"
version="1.1"
id="svg34"
sodipodi:docname="rktwebview-shared-memory-diagram-simple.svg"
inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs34">
<marker
style="overflow:visible"
id="marker49"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path49" />
</marker>
<marker
style="overflow:visible"
id="marker48"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path48" />
</marker>
<marker
style="overflow:visible"
id="marker45"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path45" />
</marker>
<marker
style="overflow:visible"
id="Triangle"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path135" />
</marker>
<marker
style="overflow:visible"
id="marker40"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path40" />
</marker>
<marker
style="overflow:visible"
id="marker38"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Triangle arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid">
<path
transform="scale(0.5)"
style="fill:context-stroke;fill-rule:evenodd;stroke:context-stroke;stroke-width:1pt"
d="M 5.77,0 -2.88,5 V -5 Z"
id="path38" />
</marker>
</defs>
<sodipodi:namedview
id="namedview34"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="0.78374771"
inkscape:cx="729.82669"
inkscape:cy="468.90089"
inkscape:window-width="1920"
inkscape:window-height="1129"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg34" />
<rect
x="0"
y="0"
width="1400"
height="820"
fill="#ffffff"
id="rect1" />
<!-- Title -->
<rect
x="292.14935"
y="50.869148"
width="807.46985"
height="69.175186"
fill="#4b7fda"
stroke="#000000"
stroke-width="2.82481"
id="rect2"
ry="14.206594"
rx="26.788099" />
<text
x="693.3324"
y="95.456741"
font-family="Arial"
font-size="30px"
font-weight="bold"
text-anchor="middle"
fill="#ffffff"
id="text2">Shared Memory</text>
<!-- Shared memory block -->
<rect
x="298.4361"
y="138.76608"
width="800"
height="600"
fill="#efefef"
stroke="#000000"
stroke-width="2"
id="rect3" />
<!-- Allocator -->
<g
id="g36"
transform="translate(-1.5639013,-1.2339131)">
<g
id="g34"
transform="translate(-24.328594,-25.434439)">
<rect
x="350"
y="185"
width="240"
height="60"
fill="#d8d8d8"
stroke="#000000"
stroke-width="2"
id="rect4"
ry="11.058452"
rx="12.164297" />
</g>
<text
x="445.67142"
y="197.56557"
font-family="Arial"
font-size="24px"
font-weight="bold"
text-anchor="middle"
id="text4">Allocator</text>
</g>
<text
x="311.94321"
y="237.80243"
font-family="Arial"
font-size="16px"
id="text5">free list, slot table, allocation headers</text>
<!-- Queues -->
<rect
x="633.4361"
y="183.76608"
width="395"
height="54"
fill="#f0bc23"
stroke="#000000"
stroke-width="2"
id="rect5" />
<rect
x="633.4361"
y="237.76608"
width="395"
height="50"
fill="#fbf6df"
stroke="#000000"
stroke-width="2"
id="rect6" />
<text
x="830.4361"
y="218.76608"
font-family="Arial"
font-size="24px"
font-weight="bold"
text-anchor="middle"
id="text6">Command Queue</text>
<text
x="830.4361"
y="269.76608"
font-family="Arial"
font-size="18px"
text-anchor="middle"
id="text7">command payloads</text>
<rect
x="633.4361"
y="348.76608"
width="395"
height="54"
fill="#71b53b"
stroke="#000000"
stroke-width="2"
id="rect7" />
<rect
x="633.4361"
y="402.76608"
width="395"
height="50"
fill="#edf5e0"
stroke="#000000"
stroke-width="2"
id="rect8" />
<text
x="830.4361"
y="383.76608"
font-family="Arial"
font-size="24px"
font-weight="bold"
text-anchor="middle"
fill="#ffffff"
id="text8">Result Queue</text>
<text
x="830.4361"
y="434.76608"
font-family="Arial"
font-size="18px"
text-anchor="middle"
id="text9">result payloads</text>
<rect
x="633.4361"
y="513.76611"
width="395"
height="54"
fill="#e56a0b"
stroke="#000000"
stroke-width="2"
id="rect9" />
<rect
x="633.4361"
y="567.76611"
width="395"
height="50"
fill="#fae9dd"
stroke="#000000"
stroke-width="2"
id="rect10" />
<text
x="830.4361"
y="548.76611"
font-family="Arial"
font-size="24px"
font-weight="bold"
text-anchor="middle"
fill="#ffffff"
id="text10">Event Queue</text>
<text
x="830.4361"
y="599.76611"
font-family="Arial"
font-size="18px"
text-anchor="middle"
id="text11">event payloads</text>
<!-- Payload label -->
<text
x="698.4361"
y="673.76611"
font-family="Arial"
font-size="24px"
font-weight="bold"
text-anchor="middle"
fill="#555555"
id="text12">Payloads in Shared Memory</text>
<line
x1="388.4361"
y1="686.76611"
x2="1008.4361"
y2="686.76611"
stroke="#888888"
stroke-width="2"
id="line12" />
<!-- Left process -->
<rect
x="43.653984"
y="361.71698"
width="274.56424"
height="326.83121"
fill="#ffffff"
stroke="#000000"
stroke-width="2"
id="rect12" />
<g
id="g37"
transform="translate(-1.7755917,-110.71258)">
<rect
x="45"
y="470"
width="275"
height="90"
fill="#e26a10"
stroke="#000000"
stroke-width="2"
id="rect13" />
<text
x="182"
y="525"
font-family="Arial"
font-size="28px"
font-weight="bold"
text-anchor="middle"
fill="#ffffff"
id="text13">Racket Process</text>
</g>
<text
x="101.61144"
y="514.19263"
font-family="Arial"
font-size="22px"
font-weight="bold"
id="text14">• Call API (FFI)</text>
<text
x="117.09328"
y="543.13422"
font-family="Arial"
font-size="22px"
font-weight="bold"
id="text15">• Receive Result</text>
<text
x="96.082222"
y="589.76929"
font-family="Arial"
font-size="22px"
font-weight="bold"
id="text16">• Poll Events</text>
<!-- Right process -->
<g
id="g44"
transform="translate(15.023069,-161.99993)">
<rect
x="1120"
y="460"
width="245"
height="240"
fill="#f7f7f8"
stroke="#000000"
stroke-width="2"
id="rect16" />
<rect
x="1120"
y="460"
width="245"
height="105"
fill="#676e7a"
stroke="#000000"
stroke-width="2"
id="rect17" />
<text
x="1242"
y="515"
font-family="Arial"
font-size="24px"
font-weight="bold"
text-anchor="middle"
fill="#ffffff"
id="text17">rktwebview_prg</text>
<text
x="1242"
y="548"
font-family="Arial"
font-size="18px"
text-anchor="middle"
fill="#ffffff"
id="text18">(Qt / Chromium)</text>
<g
id="g41"
transform="translate(0,-11.058452)">
<rect
x="1152"
y="590"
width="180"
height="48"
fill="#efdf9b"
stroke="#000000"
stroke-width="2"
id="rect18" />
<text
x="1242"
y="621"
font-family="Arial"
font-size="20px"
font-weight="bold"
text-anchor="middle"
id="text19">Command Thread</text>
</g>
<g
id="g42">
<g
id="g43"
transform="translate(0,-10.947309)">
<rect
x="1152"
y="650"
width="180"
height="48"
fill="#efdf9b"
stroke="#000000"
stroke-width="2"
id="rect19" />
<text
x="1242"
y="681"
font-family="Arial"
font-size="20px"
font-weight="bold"
text-anchor="middle"
id="text20">Qt GUI Thread</text>
</g>
</g>
</g>
<!-- Command arrows -->
<!-- Result arrows right to left -->
<!-- Event arrows right to left -->
<!-- Footer -->
<text
x="698.4361"
y="783.76611"
font-family="Arial"
font-size="16px"
text-anchor="middle"
fill="#555555"
id="text34">Racket calls the C API through FFI; the helper process consumes commands and produces results and events.</text>
<path
style="fill:#000000;stroke:#000000;stroke-width:4.2;stroke-dasharray:none;marker-end:url(#marker38)"
d="m 638.72046,571.59389 -321.80095,1.10585"
id="path37"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:4.1534;stroke-dasharray:none;marker-end:url(#marker40)"
d="m 635.3126,404.52149 -55.08407,1.10725 -2.16016,128.43983 -260.29922,2.21448"
id="path39" />
<path
style="fill:none;stroke:#000000;stroke-width:4.2;stroke-dasharray:none;marker-end:url(#Triangle)"
d="M 306.96691,505.24318 H 543.61777 V 261.95724 h 87.36177"
id="path41" />
<path
style="fill:none;stroke:#000000;stroke-width:3.89804;stroke-dasharray:none;marker-end:url(#marker45)"
d="m 1165.3148,499.58917 h -86.7061 v 77.63074 h -36.8501"
id="path44" />
<path
style="fill:none;stroke:#000000;stroke-width:3.9801;stroke-dasharray:none;marker-end:url(#marker49)"
d="m 1030.6475,241.07822 h 31.4718 v 189.62297 h 95.6253"
id="path46" />
<path
style="fill:none;stroke:#000000;stroke-width:4.2;stroke-dasharray:none;marker-end:url(#marker48)"
d="m 1162.0759,452.99389 h -112.2811 v -53.58867 l -18.8137,5.04111"
id="path47" />
</svg>

After

Width:  |  Height:  |  Size: 13 KiB