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); } }
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; } }