From b803331d0c9ca82d1734fc97dfa74726566ac40f Mon Sep 17 00:00:00 2001 From: eugeni Date: Fri, 22 Feb 2008 19:31:51 +0000 Subject: Some debugging routines. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@26066 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libass/ass_utils.c | 26 ++++++++++++++++++++++++++ libass/ass_utils.h | 1 + 2 files changed, 27 insertions(+) diff --git a/libass/ass_utils.c b/libass/ass_utils.c index 3be71b8f31..eaa3455f07 100644 --- a/libass/ass_utils.c +++ b/libass/ass_utils.c @@ -22,6 +22,8 @@ #include #include +#include +#include FT_GLYPH_H #include "mputils.h" #include "ass_utils.h" @@ -79,3 +81,27 @@ int strtocolor(char** q, uint32_t* res) return result; } +static void sprint_tag(uint32_t tag, char* dst) +{ + dst[0] = (tag >> 24) & 0xFF; + dst[1] = (tag >> 16) & 0xFF; + dst[2] = (tag >> 8) & 0xFF; + dst[3] = tag & 0xFF; + dst[4] = 0; +} + +void dump_glyph(FT_Glyph g) +{ + char tag[5]; + int i; + FT_OutlineGlyph og = (FT_OutlineGlyph)g; + FT_Outline* o = &(og->outline); + sprint_tag(g->format, tag); + printf("glyph: %p \n", g); + printf("format: %s \n", tag); + printf("outline: %p \n", o); + printf("contours: %d, points: %d, points ptr: %p \n", o->n_contours, o->n_points, o->points); + for (i = 0; i < o->n_points; ++i) { + printf(" point %f, %f \n", d6_to_double(o->points[i].x), d6_to_double(o->points[i].y)); + } +} diff --git a/libass/ass_utils.h b/libass/ass_utils.h index f574409783..0d121a8a12 100644 --- a/libass/ass_utils.h +++ b/libass/ass_utils.h @@ -25,6 +25,7 @@ int mystrtoi(char** p, int base, int* res); int mystrtou32(char** p, int base, uint32_t* res); int mystrtod(char** p, double* res); int strtocolor(char** q, uint32_t* res); +void dump_glyph(FT_Glyph g); static inline int d6_to_int(int x) { return (x + 32) >> 6; -- cgit v1.2.3