<DIV>Hi,</DIV>
<DIV>I am learning cairo with image backend for several weeks , and </DIV>
<DIV>I have several questions whitch troubles me a lot.</DIV>
<DIV> </DIV>
<DIV>1. There are two data changes in cairo:</DIV>
<DIV> (1) fdx = _cairo_fixed_from_double(dx)</DIV>
<DIV> (2) x_off_fixed = pixman_int_to_fixed(x_off)</DIV>
<DIV> that , fdx = dx * 256 , x_off_fixed = x_off * 256 * 256,</DIV>
<DIV> What's the meaning about the two changes?</DIV>
<DIV>2. I use a debugger to see how the thick stroking works.</DIV>
<DIV> After cairo_traps_add_trap,the polygon will be reduced </DIV>
<DIV> to trapezoid, and then the pixman will compute the right and</DIV>
<DIV> left edge of the trapezoid .is that right?</DIV>
<DIV> When compute the edge of trapezoid ,the algorithms is different</DIV>
<DIV> from Bresenham algorithms, so I would like to know what computer </DIV>
<DIV> graphics algorithms does cairo use?(draw line)</DIV>
<DIV>3. #define RENDER_EDGE_STEP_SMALL(edge)</DIV>
<DIV> { edge->x += edge->stepx_small;</DIV>
<DIV> edge->e += edge->dx_small;</DIV>
<DIV> if(edge->e > 0)</DIV>
<DIV> { edge->e -= edge->dy;</DIV>
<DIV> edge->x += edge->signdx;</DIV>
<DIV> }</DIV>
<DIV> }</DIV>
<DIV> What's the meaning of edge->e or What's the meaning of if(edge->e > 0)?</DIV>
<DIV> What's the different between RENDER_EDGE_STEP_SMALL(edge) and</DIV>
<DIV> RENDER_EDGE_STEP_BIG(edge)?</DIV>
<DIV> </DIV>
<DIV> Thanks a lot for your help.</DIV>
<DIV> chen</DIV><br><br><span title="neteasefooter"/><hr/>
<a href="http://qiye.163.com/?163" target="_blank">您想拥有和网易免费邮箱一样强大的软件吗?</a>
</span>