parent
f86a360f39
commit
dbe70eb4f4
@ -1,2 +1,3 @@ |
||||
*.o |
||||
build/* |
||||
**/.ccls-cache |
||||
|
@ -0,0 +1,3 @@ |
||||
all: |
||||
make -C thirdparty/libschrift
|
||||
cp thirdparty/libschrift/libschrift.a linux-x64/libschrift.a
|
@ -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"); |
Binary file not shown.
@ -0,0 +1,9 @@ |
||||
{ |
||||
"provides" : "schrift", |
||||
"targets" : { |
||||
"linux-x64" : { |
||||
"dependencies" : [], |
||||
"linked-libraries" : ["schrift", "c"] |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,45 @@ |
||||
{ |
||||
// Language version of C3. |
||||
"langrev": "1", |
||||
// Warnings used for all targets. |
||||
"warnings": [ "no-unused" ], |
||||
// Directories where C3 library files may be found. |
||||
"dependency-search-paths": [ ".." ], |
||||
// Libraries to use for all targets. |
||||
"dependencies": [ "schrift" ], |
||||
// Authors, optionally with email. |
||||
"authors": [ "Alessandro Mauri <alemauri001@gmail.com" ], |
||||
// Version using semantic versioning. |
||||
"version": "0.1.0", |
||||
// Sources compiled for all targets. |
||||
"sources": [ ], |
||||
// C sources if the project also compiles C sources |
||||
// relative to the project file. |
||||
// "c-sources": [ "csource/**" ], |
||||
// Output location, relative to project file. |
||||
"output": "build", |
||||
// Architecture and OS target. |
||||
// You can use 'c3c --list-targets' to list all valid targets. |
||||
// "target": "windows-x64", |
||||
"features": [ |
||||
// See rcore.c3 |
||||
//"SUPPORT_INTERNAL_MEMORY_MANAGEMENT", |
||||
//"SUPPORT_STANDARD_FILEIO", |
||||
//"SUPPORT_FILE_SYSTEM_FUNCTIONS", |
||||
//"SUPPORT_DATA_ENCODER", |
||||
// See text.c3 |
||||
//"SUPPORT_TEXT_CODEPOINTS_MANAGEMENT", |
||||
//"SUPPORT_TEXT_C_STRING_MANAGEMENT", |
||||
//"SUPPORT_RANDOM_GENERATION", |
||||
|
||||
//"SUPPORT_RAYGUI", |
||||
//"RAYGUI_NO_ICONS", |
||||
//"RAYGUI_CUSTOM_ICONS", |
||||
], |
||||
// Global settings. |
||||
// CPU name, used for optimizations in the LLVM backend. |
||||
"cpu": "generic", |
||||
// Optimization: "O0", "O1", "O2", "O3", "O4", "O5", "Os", "Oz". |
||||
"opt": "O0", |
||||
// See resources/examples/project_all_settings.json and 'c3c --list-project-properties' to see more properties. |
||||
} |
@ -0,0 +1 @@ |
||||
Subproject commit 24737d2922b23df4a5692014f5ba03da0c296112 |
@ -0,0 +1,18 @@ |
||||
module ugui; |
||||
|
||||
import schrift; |
||||
|
||||
struct Font @private { |
||||
schrift::Sft sft; |
||||
String path; |
||||
} |
||||
|
||||
fn void! Ctx.font_load(&ctx, String path) |
||||
{ |
||||
|
||||
} |
||||
|
||||
fn void Ctx.font_free(&ctx) |
||||
{ |
||||
|
||||
} |
@ -0,0 +1,6 @@ |
||||
import rl; |
||||
|
||||
fn int main(void) |
||||
{ |
||||
return 0; |
||||
} |
Loading…
Reference in new issue