mirror of
https://github.com/odin-lang/Odin.git
synced 2026-03-06 16:47:03 +00:00
add freeLoadedData flag in case you dont want to remove font memory (e.g. #load)
This commit is contained in:
11
vendor/fontstash/fontstash.odin
vendored
11
vendor/fontstash/fontstash.odin
vendored
@@ -50,6 +50,7 @@ Font :: struct {
|
||||
|
||||
info: stbtt.fontinfo,
|
||||
loadedData: []byte,
|
||||
freeLoadedData: bool, // in case you dont want loadedData to be removed
|
||||
|
||||
ascender: f32,
|
||||
descender: f32,
|
||||
@@ -147,7 +148,11 @@ Init :: proc(using ctx: ^FontContext, w, h: int, loc: QuadLocation) {
|
||||
|
||||
Destroy :: proc(using ctx: ^FontContext) {
|
||||
for font in &fonts {
|
||||
delete(font.loadedData)
|
||||
if font.freeLoadedData {
|
||||
delete(font.loadedData)
|
||||
}
|
||||
|
||||
delete(font.name)
|
||||
delete(font.glyphs)
|
||||
}
|
||||
|
||||
@@ -349,7 +354,7 @@ AddFontPath :: proc(
|
||||
log.panicf("FONT: failed to read font at %s", path)
|
||||
}
|
||||
|
||||
return AddFontMem(ctx, name, data)
|
||||
return AddFontMem(ctx, name, data, true)
|
||||
}
|
||||
|
||||
// push a font to the font stack
|
||||
@@ -358,10 +363,12 @@ AddFontMem :: proc(
|
||||
ctx: ^FontContext,
|
||||
name: string,
|
||||
data: []u8,
|
||||
freeLoadedData: bool,
|
||||
) -> int {
|
||||
append(&ctx.fonts, Font {})
|
||||
res := &ctx.fonts[len(ctx.fonts) - 1]
|
||||
res.loadedData = data
|
||||
res.freeLoadedData = freeLoadedData
|
||||
res.name = strings.clone(name)
|
||||
|
||||
stbtt.InitFont(&res.info, &res.loadedData[0], 0)
|
||||
|
||||
Reference in New Issue
Block a user