On Fri, Apr 23, 2010 at 10:11 PM, Chris Wilson <span dir="ltr">&lt;<a href="mailto:chris@chris-wilson.co.uk">chris@chris-wilson.co.uk</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
&gt; The goal is to then to pass the information to the backend immediately,<br><div class="im">
&gt; &gt; and convert the existing implementation into a library of core helpers<br>
&gt; &gt; that the backends may choose to use or to assist them in their task.<br>
&gt;<br>
&gt;<br>
&gt; That&#39;s one way to do it. With that approach, the existing backends would<br>
&gt; fill their function tables with pointers to the &quot;default implementation&quot;.<br>
&gt;<br>
&gt; Another way to do it would be more like the surface backends; make the<br>
&gt; default be NULL and have cairo_ functions call through to the backend<br>
&gt; function if it&#39;s non-NULL, otherwise continue on with the default<br>
&gt; implementation.<br>
<br>
</div>The trouble here is that this is often labelled the &quot;mid-layer mistake&quot;.</blockquote><div><br>Sure, makes sense.<br><br>Rob<br>-- <br></div></div>&quot;He was pierced for our transgressions, he was crushed for our iniquities; the punishment that brought us peace was upon him, and by his wounds we are healed. We all, like sheep, have gone astray, each of us has turned to his own way; and the LORD has laid on him the iniquity of us all.&quot; [Isaiah 53:5-6]<br>