added library schrift
This commit is contained in:
parent
f86a360f39
commit
dbe70eb4f4
11 changed files with 141 additions and 1 deletions
56
lib/libschrift.c3l/libschrift.c3
Normal file
56
lib/libschrift.c3l/libschrift.c3
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
module schrift;
|
||||
|
||||
def SftFont = void*;
|
||||
def SftUChar = uint;
|
||||
def SftGlyph = uint;
|
||||
|
||||
struct Sft
|
||||
{
|
||||
SftFont font;
|
||||
double xScale;
|
||||
double yScale;
|
||||
double xOffset;
|
||||
double yOffset;
|
||||
int flags;
|
||||
}
|
||||
|
||||
struct SftLMetrics
|
||||
{
|
||||
double ascender;
|
||||
double descender;
|
||||
double lineGap;
|
||||
}
|
||||
|
||||
struct SftGMetrics
|
||||
{
|
||||
double advanceWidth;
|
||||
double leftSideBearing;
|
||||
int yOffset;
|
||||
int minWidth;
|
||||
int minHeight;
|
||||
}
|
||||
|
||||
struct SftKerning
|
||||
{
|
||||
double xShift;
|
||||
double yShift;
|
||||
}
|
||||
|
||||
struct SftImage
|
||||
{
|
||||
void *pixels;
|
||||
int width;
|
||||
int height;
|
||||
}
|
||||
|
||||
extern fn char* sft_version() @extern("sft_version");
|
||||
|
||||
extern fn SftFont sft_loadmem(void* mem, usz size) @extern("sft_loadmem");
|
||||
extern fn SftFont sft_loadfile(char* filename) @extern("sft_loadfile");
|
||||
extern fn void sft_freefont(SftFont font) @extern("sft_freefont");
|
||||
|
||||
extern fn int sft_lmetrics(Sft* sft, SftLMetrics* metrics) @extern("sft_lmetrics");
|
||||
extern fn int sft_lookup(Sft* sft, SftUChar codepoint, SftGlyph* glyph) @extern("sft_lookup");
|
||||
extern fn int sft_gmetrics(Sft* sft, SftGlyph glyph, SftGMetrics* metrics) @extern("sft_gmetrics");
|
||||
extern fn int sft_kerning(Sft* sft, SftGlyph leftGlyph, SftGlyph rightGlyph, SftKerning* kerning) @extern("sft_kerning");
|
||||
extern fn int sft_render(Sft* sft, SftGlyph glyph, SftImage image) @extern("sft_render");
|
||||
Loading…
Add table
Add a link
Reference in a new issue