/images/linux-gfx.svg
SVG | 366 lines | 365 code | 0 blank | 1 comment | 2 complexity | 412522901c2c399ccda2a7ffc6e92534 MD5 | raw file
Possible License(s): Apache-2.0
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <!-- Created with Inkscape (http://www.inkscape.org/) -->
- <svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="744.09448819"
- height="1052.3622047"
- id="svg2"
- sodipodi:version="0.32"
- inkscape:version="0.46"
- inkscape:export-filename="/tmp/trunk/images/linux-gfx.png"
- inkscape:export-xdpi="129"
- inkscape:export-ydpi="129"
- sodipodi:docname="linux-gfx.svg"
- inkscape:output_extension="org.inkscape.output.svg.inkscape">
- <defs
- id="defs4">
- <marker
- inkscape:stockid="Arrow1Mend"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="Arrow1Mend"
- style="overflow:visible;">
- <path
- id="path3287"
- d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
- transform="scale(0.4) rotate(180) translate(10,0)" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Mstart"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="Arrow1Mstart"
- style="overflow:visible">
- <path
- id="path3284"
- d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
- transform="scale(0.4) translate(10,0)" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Lstart"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="Arrow1Lstart"
- style="overflow:visible">
- <path
- id="path3278"
- d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
- transform="scale(0.8) translate(12.5,0)" />
- </marker>
- <marker
- inkscape:stockid="Arrow1Lend"
- orient="auto"
- refY="0.0"
- refX="0.0"
- id="Arrow1Lend"
- style="overflow:visible;">
- <path
- id="path3281"
- d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
- style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
- transform="scale(0.8) rotate(180) translate(12.5,0)" />
- </marker>
- <inkscape:perspective
- sodipodi:type="inkscape:persp3d"
- inkscape:vp_x="0 : 526.18109 : 1"
- inkscape:vp_y="0 : 1000 : 0"
- inkscape:vp_z="744.09448 : 526.18109 : 1"
- inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
- id="perspective10" />
- </defs>
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- gridtolerance="10000"
- guidetolerance="10"
- objecttolerance="10"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="0.98994949"
- inkscape:cx="368.50902"
- inkscape:cy="609.07711"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- showguides="true"
- inkscape:guide-bbox="true"
- inkscape:window-width="1440"
- inkscape:window-height="900"
- inkscape:window-x="0"
- inkscape:window-y="0" />
- <metadata
- id="metadata7">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1">
- <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
- x="295.46964"
- y="637.69458"
- id="text2383"><tspan
- sodipodi:role="line"
- id="tspan2385"
- x="295.46964"
- y="637.69458">X</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
- x="285.3681"
- y="606.37982"
- id="text2387"><tspan
- sodipodi:role="line"
- id="tspan2389"
- x="285.3681"
- y="606.37982">GDK</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
- x="255.5686"
- y="582.13617"
- id="text2391"><tspan
- sodipodi:role="line"
- id="tspan2393"
- x="255.5686"
- y="582.13617">GTK</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
- x="312.13715"
- y="582.13617"
- id="text2395"><tspan
- sodipodi:role="line"
- id="tspan2397"
- x="312.13715"
- y="582.13617">Cairo Surface</tspan></text>
- <flowRoot
- xml:space="preserve"
- id="flowRoot2399"
- style="font-size:8px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%"><flowRegion
- id="flowRegion2401"><rect
- id="rect2403"
- width="231.83"
- height="75.761406"
- x="311.12698"
- y="629.10828"
- style="-inkscape-font-specification:Bitstream Vera Serif;font-family:Bitstream Vera Serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:8px;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%" /></flowRegion><flowPara
- id="flowPara2405">Everything has to end up at the X server. You can find out the structure of your 32-bit visuals by running xdpyinfo. Usually it's xRGB in registers.</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot2407"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif"
- transform="translate(41.921331,30.809652)"><flowRegion
- id="flowRegion2409"><rect
- id="rect2411"
- width="106.06602"
- height="60.104107"
- x="145.46196"
- y="516.98132"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif" /></flowRegion><flowPara
- id="flowPara2413">Our test_shell menus etc are GTK widgets as you would expect</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot2415"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif"
- transform="translate(-7.5175689,19.192899)"><flowRegion
- id="flowRegion2417"><rect
- id="rect2419"
- width="186.87825"
- height="51.01268"
- x="405.57623"
- y="535.16406"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif" /></flowRegion><flowPara
- id="flowPara2421">We ask GDK for a Cairo surface to render to with gdk_cairo_create. When it comes time to actually draw we create a Cairo image surface, wrapping the buffer above, and ask this surface to paint the contents of it.</flowPara></flowRoot> <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
- x="333.60297"
- y="534.15393"
- id="text2423"><tspan
- sodipodi:role="line"
- id="tspan2425"
- x="333.60297"
- y="534.15393">Buffer</tspan></text>
- <flowRoot
- xml:space="preserve"
- id="flowRoot2427"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif"
- transform="translate(-2.5253814,38.890873)"><flowRegion
- id="flowRegion2429"><rect
- id="rect2431"
- width="189.90868"
- height="41.416229"
- x="400.52548"
- y="480.11078"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif" /></flowRegion><flowPara
- id="flowPara2433">This is the one true pixel buffer in ARGB (registers) mode.</flowPara></flowRoot> <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
- x="340.01019"
- y="478.59552"
- id="text2435"><tspan
- sodipodi:role="line"
- id="tspan2437"
- x="340.01019"
- y="478.59552">Skia</tspan></text>
- <flowRoot
- xml:space="preserve"
- id="flowRoot2439"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif"
- transform="translate(1.9433686,7.5761441)"><flowRegion
- id="flowRegion2441"><rect
- id="rect2443"
- width="186.87825"
- height="30.809664"
- x="395.47473"
- y="461.92801"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif" /></flowRegion><flowPara
- id="flowPara2445">Skia draws directly into the buffer.</flowPara></flowRoot> <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
- x="233.85033"
- y="478.59552"
- id="text2447"><tspan
- sodipodi:role="line"
- id="tspan2449"
- x="233.85033"
- y="478.59552">Webkit</tspan></text>
- <flowRoot
- xml:space="preserve"
- id="flowRoot2451"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif"
- transform="translate(-14.647211,8.5862971)"><flowRegion
- id="flowRegion2453"><rect
- id="rect2455"
- width="169.70563"
- height="53.033009"
- x="153.03812"
- y="447.78589"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif" /></flowRegion><flowPara
- id="flowPara2457">Webkit paints using Skia, including Skia's font support</flowPara></flowRoot> <text
- id="text2459"
- y="359.39752"
- x="339.98383"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
- xml:space="preserve"><tspan
- y="359.39752"
- x="339.98383"
- id="tspan2461"
- sodipodi:role="line">GTK</tspan></text>
- <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
- x="403.55594"
- y="405.16028"
- id="text2463"><tspan
- sodipodi:role="line"
- id="tspan2465"
- x="403.55594"
- y="405.16028">GdkSkia</tspan></text>
- <flowRoot
- xml:space="preserve"
- id="flowRoot2467"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif"
- transform="translate(-81.31728,15.152288)"><flowRegion
- id="flowRegion2469"><rect
- id="rect2471"
- width="224.25388"
- height="43.941647"
- x="369.71582"
- y="310.40515"
- style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif" /></flowRegion><flowPara
- id="flowPara2473">When it comes to rendering widgets, we use GTK to get the native look and feel.</flowPara></flowRoot> <flowRoot
- xml:space="preserve"
- id="flowRoot2475"
- style="font-size:8px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Serif;-inkscape-font-specification:Bitstream Vera Serif;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%"><flowRegion
- id="flowRegion2477"><rect
- id="rect2479"
- width="225.26399"
- height="119.70309"
- x="472.7514"
- y="376.57013"
- style="-inkscape-font-specification:Bitstream Vera Serif;font-family:Bitstream Vera Serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal;font-size:8px;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%" /></flowRegion><flowPara
- id="flowPara2481">GTK renders to a GdkDrawable which we implement with GdkSkia. This implements the drawing operations by translating to Skia calls. However, modern GTK themes often ask the drawable for a Cairo surface. In this case we create another Cairo image surface backing onto the buffer.</flowPara></flowRoot> <text
- xml:space="preserve"
- style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
- x="204.55588"
- y="402.83411"
- id="text2483"><tspan
- sodipodi:role="line"
- id="tspan2485"
- x="204.55588"
- y="402.83411">Cairo Image Surface</tspan></text>
- <path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)"
- d="M 426.28437,408.38993 L 352.03816,467.98893"
- id="path2487" />
- <path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)"
- d="M 352.03816,480.61584 L 352.03816,521.52702"
- id="path2489" />
- <path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)"
- d="M 352.03816,539.20469 L 352.03816,570.51942"
- id="path2491" />
- <path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)"
- d="M 299.00515,608.90521 L 299.00515,628.60319"
- id="path2493" />
- <path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)"
- d="M 353.04831,586.17678 L 313.65237,598.29861"
- id="path2495" />
- <path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)"
- d="M 275.26657,585.16663 L 283.34779,596.27831"
- id="path2497" />
- <path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)"
- d="M 262.13459,405.86455 L 331.33004,520.51687"
- id="path2499" />
- <path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)"
- d="M 279.30718,474.04985 L 334.36049,474.04985"
- id="path2501" />
- <path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#Arrow1Mstart);marker-end:url(#Arrow1Mend)"
- d="M 261.12443,391.21734 L 352.54324,363.94322 L 426.28437,391.21734"
- id="path2503" />
- <path
- style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.69999999999999996;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:2.79999999999999982, 0.69999999999999996;stroke-dashoffset:0;marker-end:url(#Arrow1Mend)"
- d="M 399.01026,400.30871 L 329.81481,400.30871"
- id="path7227" />
- <text
- xml:space="preserve"
- style="font-size:20px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Georgia;-inkscape-font-specification:Georgia;font-stretch:normal;font-variant:normal;text-anchor:start;text-align:start;writing-mode:lr;line-height:125%"
- x="164.65486"
- y="295.75793"
- id="text7762"
- sodipodi:linespacing="125%"><tspan
- sodipodi:role="line"
- id="tspan7764"
- x="164.65486"
- y="295.75793">Chromium Linux Graphics (for the moment)</tspan></text>
- </g>
- </svg>