Initial project import

This commit is contained in:
Agila Forge Importer committed 2026-07-13 15:20:32 +00:00
commit 23f2d29e32
11957 files changed
+1754577

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
module sfons
import fontstash
import sokol.f as _
import sokol.memory
// create a new Context/font atlas, for rendering glyphs, given its dimensions `width` and `height`
@[inline]
pub fn create(width int, height int, flags int) &fontstash.Context {
assert is_power_of_two(width)
assert is_power_of_two(height)
allocator := C.sfons_allocator_t{
alloc_fn: memory.salloc
free_fn: memory.sfree
user_data: voidptr(0x100005f0)
}
desc := C.sfons_desc_t{
width: width
height: height
allocator: allocator
}
return C.sfons_create(&desc)
}
@[inline]
pub fn destroy(ctx &fontstash.Context) {
C.sfons_destroy(ctx)
}
@[inline]
pub fn rgba(r u8, g u8, b u8, a u8) u32 {
return C.sfons_rgba(r, g, b, a)
}
@[inline]
pub fn flush(ctx &fontstash.Context) {
C.sfons_flush(ctx)
}
fn is_power_of_two(x int) bool {
return x in [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768]
}
+26
View File
@@ -0,0 +1,26 @@
module sfons
import fontstash
import sokol.memory
@[typedef]
pub struct C.sfons_allocator_t {
pub:
alloc_fn memory.FnAllocatorAlloc = unsafe { nil }
free_fn memory.FnAllocatorFree = unsafe { nil }
user_data voidptr
}
@[typedef]
pub struct C.sfons_desc_t {
pub:
width int // initial width of font atlas texture (default: 512, must be power of 2)
height int // initial height of font atlas texture (default: 512, must be power of 2)
allocator C.sfons_allocator_t // optional memory allocation overrides
}
fn C.sfons_create(const_desc &C.sfons_desc_t) &fontstash.Context
fn C.sfons_destroy(ctx &fontstash.Context)
fn C.sfons_flush(ctx &fontstash.Context)
fn C.sfons_rgba(r u8, g u8, b u8, a u8) u32