<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="City"/>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
name="place"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I thought I’d just send you an email to let you know
about a couple bugs I discovered in <st1:place w:st="on"><st1:City w:st="on">Cairo</st1:City></st1:place>
v1.3.10. I’m playing with the Win32 version of <st1:City w:st="on"><st1:place
w:st="on">Cairo</st1:place></st1:City>. <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>First, if you call cairo_debug_reset_static_data() (which in
turn calls _cairo_font_reset_static_data() ) before you make a call to
_cairo_win32_initialize(), it will crash (in the mutex locking stuff). In my
testing, I always call cairo_debug_reset_static_data() before the program exits
just so everything gets cleaned up. When I do this without making a <st1:place
w:st="on"><st1:City w:st="on">cairo</st1:City></st1:place> call first that
calls _cairo_win32_initialize(), it crashes.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>The second bug I noticed is that gradient reflection is
completely broken. If you set up a gradient of any kind and call
cairo_pattern_set_extend(pat, CAIRO_EXTEND_REFLECT); it will not render
correctly at all.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>I was also wondering, since I noticed that <st1:City w:st="on"><st1:place
w:st="on">Cairo</st1:place></st1:City> v1.3.10 uses the Win32 AlphaBlend()
function, if that means that WinNT & Win95 are no longer supported (since
they don’t export this function from GDI32.DLL)? That would be a shame if
they weren’t supported anymore. I wonder, would it be better to have <st1:City
w:st="on"><st1:place w:st="on">Cairo</st1:place></st1:City> check whether
GDI32.DLL exports AlphaBlend() and dynamically get the function address and use
it if supported, otherwise just fall back to something else?<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
</div>
</body>
</html>