Ejemplo n.º 1
0
static void
gx_print_segment(const gs_memory_t *mem, const segment * pseg)
{
    double px = fixed2float(pseg->pt.x);
    double py = fixed2float(pseg->pt.y);
    char out[80];

    gs_sprintf(out, "0x%lx<0x%lx,0x%lx>:%u",
         (ulong) pseg, (ulong) pseg->prev, (ulong) pseg->next, pseg->notes);
    switch (pseg->type) {
        case s_start:{
                const subpath *const psub = (const subpath *)pseg;

                dmprintf5(mem, "   %1.4f %1.4f moveto\t%% %s #curves=%d last=0x%lx\n",
                          px, py, out, psub->curve_count, (ulong) psub->last);
                break;
            }
        case s_curve:{
                const curve_segment *const pcur = (const curve_segment *)pseg;

                dmprintf7(mem, "   %1.4f %1.4f %1.4f %1.4f %1.4f %1.4f curveto\t%% %s\n",
                          fixed2float(pcur->p1.x), fixed2float(pcur->p1.y),
                          fixed2float(pcur->p2.x), fixed2float(pcur->p2.y),
                          px, py, out);
                break;
            }
        case s_line:
            dmprintf3(mem, "   %1.4f %1.4f lineto\t%% %s\n", px, py, out);
            break;
        case s_gap:
            dmprintf3(mem, "   %1.4f %1.4f gapto\t%% %s\n", px, py, out);
            break;
        case s_dash:{
                const dash_segment *const pd = (const dash_segment *)pseg;

                dmprintf5(mem, "   %1.4f %1.4f %1.4f  %1.4f dash\t%% %s\n",
                          fixed2float(pd->pt.x), fixed2float(pd->pt.y),
                          fixed2float(pd->tangent.x),fixed2float(pd->tangent.y),
                          out);
                break;
            }
        case s_line_close:{
                const line_close_segment *const plc =
                (const line_close_segment *)pseg;

                dmprintf4(mem, "   closepath\t%% %s %1.4f %1.4f 0x%lx\n",
                          out, px, py, (ulong) (plc->sub));
                break;
            }
        default:
            dmprintf4(mem, "   %1.4f %1.4f <type 0x%x>\t%% %s\n",
                      px, py, pseg->type, out);
    }
}
Ejemplo n.º 2
0
void
xps_debug_fixdocseq(xps_context_t *ctx)
{
    xps_document_t *fixdoc = ctx->first_fixdoc;
    xps_page_t *page = ctx->first_page;

    if (ctx->start_part)
        dmprintf1(ctx->memory, "start part %s\n", ctx->start_part);

    while (fixdoc)
    {
        dmprintf1(ctx->memory, "fixdoc %s\n", fixdoc->name);
        fixdoc = fixdoc->next;
    }

    while (page)
    {
        dmprintf3(ctx->memory, "page %s w=%d h=%d\n", page->name, page->width, page->height);
        page = page->next;
    }
}