shithub: fnt

ref: a65e44617ba1d08e011f3cee56470a0a7351ea47
dir: /otf.h.in/

View raw version
/* this file is generated. do not modify. */
typedef struct Otf Otf;
#pragma incomplete Otf

typedef struct ComponentGlyph ComponentGlyph;

enum {
	CGLYPH_FL_ROUND_TO_GRID_XY = 1<<2,
	CGLYPH_FL_SCALE = 1<<3,
	CGLYPH_FL_MORE_COMPONENTS = 1<<5,
	CGLYPH_FL_SCALE_XY = 1<<6,
	CGLYPH_FL_2X2_TRANSFORM = 1<<7,
	CGLYPH_FL_INSTRUCTIONS = 1<<8,
	CGLYPH_FL_METRICS = 1<<9,
	CGLYPH_FL_OVERLAP_COMPOUND = 1<<10,
	CGLYPH_FL_SCALED_COMPONENT_OFFSET = 1<<11,
	CGLYPH_FL_UNSCALED_COMPONENT_OFFSET = 1<<12,
};

struct ComponentGlyph {
	u16int flags;
	u16int glyphIndex;
	int arg1;
	int arg2;
	float scale, scaleX, scale01, scale10, scaleY;
	u16int numInstr;
	u8int *instr;
	ComponentGlyph *next;
};

typedef struct Point Point;

struct Point {
	int x;
	int y;
	int onCurve;
};

typedef struct SimpleGlyph SimpleGlyph;

struct SimpleGlyph {
	int numEndPtsOfContours;
	u16int *endPtsOfContours;
	u16int instructionLength;
	u8int *instructions;

	int numPoints;
	Point *points;
};

extern int indentΔ;

#pragma varargck type "T" s64int
#pragma varargck type "t" u32int
#pragma varargck type "V" u32int

void otfinit(void);
Otf *otfopen(char *path);
void otfprint(Otf *o, Biobuf *out, int indent);
void otfclose(Otf *o);

/* FIXME these will go, this is for debugging and designing the drawing logic */
typedef struct Glyf Glyf;
Glyf *otfglyf(Otf *o, int index);
int otfglyfnum(Otf *o);