<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="&#1;" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Helv;
        panose-1:2 11 6 4 2 2 2 3 2 4;}
@font-face
        {font-family:Helv;
        panose-1:2 11 6 4 2 2 2 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-GB link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal>Background: I was tired of using xwd, especially as it does
not support RGBA 32 bit visuals.  I hacked together a program from the latest
xwininfo (based on XCB) to get the Window ID using a pointer selection and then
created a surface based on that ID.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>#ifdef XLIB<o:p></o:p></p>

<p class=MsoNormal>  cairo_surface_t *surface = cairo_xlib_surface_create(dpy,
target_win, vinfos[0].visual, geom-&gt;width, geom-&gt;height);<o:p></o:p></p>

<p class=MsoNormal>#else<o:p></o:p></p>

<p class=MsoNormal>  cairo_surface_t *surface = cairo_xcb_surface_create(conn,
target_win, v, geom-&gt;width, geom-&gt;height);<o:p></o:p></p>

<p class=MsoNormal>#endif<o:p></o:p></p>

<p class=MsoNormal>  free(geom);<o:p></o:p></p>

<p class=MsoNormal>  cairo_surface_write_to_png(surface, file);<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>This works fine for 24-bit visual windows but with 32-bit
visuals (eg gnome-terminal) I get the following error.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>xwd: cairo-xcb-surface.c:504: _get_image: Assertion
`reply-&gt;depth == surface-&gt;depth' failed.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Using xlib on 32-bit visuals doesn’t fail but instead
produces a zero sized PNG file.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>I understand this may be an abuse of cairo for which it wasn’t
designed and I maybe should use XImage or Xrender (I haven’t actually looked at
render for image transfers) but as cairo has most of this code already I was
hoping for some pointers.<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Many thanks<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal>Ross<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span
style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Ross Alexander<o:p></o:p></span></p>

<p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span
style='font-size:9.0pt;font-family:"Arial","sans-serif"'>SAP Basis<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>NEC
Europe Ltd<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:9.0pt;font-family:"Arial","sans-serif"'>European
Information Systems<o:p></o:p></span></p>

<p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span
style='font-size:9.0pt;font-family:"Arial","sans-serif"'>Tel:&nbsp;&nbsp;&nbsp;&nbsp;
+44 20 8752 3394<o:p></o:p></span></p>

<p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span
style='font-family:"Helv","sans-serif";color:black'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span
style='font-size:7.0pt;font-family:"Arial","sans-serif";color:black'>IMPORTANT:
The information contained in this e-mail and attachment (if any) is intended
for the person to whom it is addressed and may contain confidential and/or
privileged information. The contents of this message may contain personal views
which are not the views of NEC Europe Ltd or its subsidiaries, unless
specifically stated. You should not copy, retain, forward or disclose its
contents to anyone else, or take any action based upon it, if it is not
addressed to you personally.&nbsp; If you have received this e-mail in error
please contact the sender immediately. Any legally binding agreement resulting
from its content must be made separately in a printed<o:p></o:p></span></p>

<p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span
style='font-size:10.0pt;font-family:"Arial","sans-serif";color:black'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal style='line-height:12.0pt;text-autospace:none'><span
style='font-size:8.0pt;font-family:"Arial","sans-serif";color:#0070C0'>NEC
Europe Limited | Registered Office: NEC House, 1 Victoria Road, London W3 6BL |
Registered in England 2832014<o:p></o:p></span></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>