changeset 26034:e8289d9a4fec

Some debugging routines.
author eugeni
date Fri, 22 Feb 2008 19:31:51 +0000
parents 9da3b0c393e6
children 501ea0b13962
files libass/ass_utils.c libass/ass_utils.h
diffstat 2 files changed, 27 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libass/ass_utils.c	Fri Feb 22 19:31:49 2008 +0000
+++ b/libass/ass_utils.c	Fri Feb 22 19:31:51 2008 +0000
@@ -22,6 +22,8 @@
 
 #include <stdlib.h>
 #include <inttypes.h>
+#include <ft2build.h>
+#include FT_GLYPH_H
 
 #include "mputils.h"
 #include "ass_utils.h"
@@ -79,3 +81,27 @@
 	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));
+	}
+}
--- a/libass/ass_utils.h	Fri Feb 22 19:31:49 2008 +0000
+++ b/libass/ass_utils.h	Fri Feb 22 19:31:51 2008 +0000
@@ -25,6 +25,7 @@
 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;