1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

thirdparty: update all sokol and fontstash headers with their upstream versions (#16940)

This commit is contained in:
Delyan Angelov
2023-01-11 11:29:38 +02:00
committed by GitHub
parent d1306ffcf5
commit e854051c1f
26 changed files with 3937 additions and 1692 deletions

View File

@@ -2,13 +2,27 @@ module sfons
import fontstash
import sokol.f
import sokol.memory
// keep v from warning about unused imports
const used_import = f.used_import + fontstash.used_import + 1
// 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 {
return C.sfons_create(width, height, flags)
assert is_power_of_two(width)
assert is_power_of_two(height)
allocator := C.sfons_allocator_t{
alloc: memory.salloc
free: memory.sfree
user_data: voidptr(0x100005f0)
}
desc := C.sfons_desc_t{
width: width
height: height
allocator: allocator
}
return C.sfons_create(&desc)
}
[inline]
@@ -25,3 +39,7 @@ pub fn rgba(r u8, g u8, b u8, a u8) u32 {
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]
}

View File

@@ -1,8 +1,26 @@
module sfons
import fontstash
import sokol.memory
fn C.sfons_create(width int, height int, flags int) &fontstash.Context
[typedef]
pub struct C.sfons_allocator_t {
pub:
alloc memory.FnAllocatorAlloc
free memory.FnAllocatorFree
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(desc &C.sfons_desc_t) &fontstash.Context
fn C.sfons_destroy(ctx &fontstash.Context)
fn C.sfons_rgba(r u8, g u8, b u8, a u8) u32
fn C.sfons_flush(ctx &fontstash.Context)
fn C.sfons_rgba(r u8, g u8, b u8, a u8) u32