gg/ft: minor Sokol fixes
parent
d0f9bdf85e
commit
e7f52ebed6
|
@ -53,14 +53,19 @@ pub fn new(c Config) ?&FT{
|
||||||
pub fn (ft &FT) draw_text(x, y int, text string, cfg gx.TextCfg) {
|
pub fn (ft &FT) draw_text(x, y int, text string, cfg gx.TextCfg) {
|
||||||
ft.fons.set_font(ft.font_normal)
|
ft.fons.set_font(ft.font_normal)
|
||||||
ft.fons.set_size(2.0 * ft.scale * f32(cfg.size))
|
ft.fons.set_size(2.0 * ft.scale * f32(cfg.size))
|
||||||
C.fonsSetAlign(ft.fons, C.FONS_ALIGN_LEFT | C.FONS_ALIGN_TOP)
|
if cfg.align == gx.align_right {
|
||||||
|
C.fonsSetAlign(ft.fons, C.FONS_ALIGN_RIGHT | C.FONS_ALIGN_TOP)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
C.fonsSetAlign(ft.fons, C.FONS_ALIGN_LEFT | C.FONS_ALIGN_TOP)
|
||||||
|
}
|
||||||
color := C.sfons_rgba(cfg.color.r, cfg.color.g, cfg.color.b, 255)
|
color := C.sfons_rgba(cfg.color.r, cfg.color.g, cfg.color.b, 255)
|
||||||
C.fonsSetColor(ft.fons, color)
|
C.fonsSetColor(ft.fons, color)
|
||||||
ascender := f32(0.0)
|
ascender := f32(0.0)
|
||||||
descender := f32(0.0)
|
descender := f32(0.0)
|
||||||
lh := f32(0.0)
|
lh := f32(0.0)
|
||||||
ft.fons.vert_metrics(&ascender, &descender, &lh)
|
ft.fons.vert_metrics(&ascender, &descender, &lh)
|
||||||
C.fonsDrawText(ft.fons, x, y, text.str, 0) // TODO: check offsets/alignment
|
C.fonsDrawText(ft.fons, x*ft.scale, y*ft.scale, text.str, 0) // TODO: check offsets/alignment
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (ft &FT) draw_text_def(x, y int, text string) {
|
pub fn (ft &FT) draw_text_def(x, y int, text string) {
|
||||||
|
|
23
vlib/gg/gg.v
23
vlib/gg/gg.v
|
@ -38,6 +38,7 @@ pub:
|
||||||
fail_fn FNFail = voidptr(0)
|
fail_fn FNFail = voidptr(0)
|
||||||
wait_events bool // set this to true for UIs, to save power
|
wait_events bool // set this to true for UIs, to save power
|
||||||
font_path string
|
font_path string
|
||||||
|
fullscreen bool
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct Context {
|
pub struct Context {
|
||||||
|
@ -127,6 +128,7 @@ f32(cfg.bg_color.b) / 255.0, 1.0)
|
||||||
width: cfg.width
|
width: cfg.width
|
||||||
height: cfg.height
|
height: cfg.height
|
||||||
high_dpi: cfg.scale > 1
|
high_dpi: cfg.scale > 1
|
||||||
|
fullscreen: cfg.fullscreen
|
||||||
}
|
}
|
||||||
//b := sapp.high_dpi()
|
//b := sapp.high_dpi()
|
||||||
//println('scale=$g.scale high_dpi=$b')
|
//println('scale=$g.scale high_dpi=$b')
|
||||||
|
@ -150,14 +152,23 @@ pub fn (ctx &Context) draw_rect(x, y, w, h f32, c gx.Color) {
|
||||||
sgl.end()
|
sgl.end()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (gg &Context) draw_empty_rect(x, y, w, h f32, c gx.Color) {
|
pub fn (ctx &Context) draw_empty_rect(x, y, w, h f32, c gx.Color) {
|
||||||
sgl.c4b(c.r, c.g, c.b, 128)
|
sgl.c4b(c.r, c.g, c.b, 128)
|
||||||
sgl.begin_line_strip()
|
sgl.begin_line_strip()
|
||||||
sgl.v2f(x, y)
|
if ctx.scale == 1 {
|
||||||
sgl.v2f(x + w, y)
|
sgl.v2f(x, y)
|
||||||
sgl.v2f(x + w, y + h)
|
sgl.v2f(x + w, y)
|
||||||
sgl.v2f(x, y + h)
|
sgl.v2f(x + w, y + h)
|
||||||
sgl.v2f(x, y)
|
sgl.v2f(x, y + h)
|
||||||
|
sgl.v2f(x, y)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
sgl.v2f(x * ctx.scale, y * ctx.scale)
|
||||||
|
sgl.v2f((x + w) * ctx.scale, y * ctx.scale)
|
||||||
|
sgl.v2f((x + w) * ctx.scale, (y + h) * ctx.scale)
|
||||||
|
sgl.v2f(x * ctx.scale, (y + h) * ctx.scale)
|
||||||
|
sgl.v2f(x*ctx.scale, y*ctx.scale)
|
||||||
|
}
|
||||||
sgl.end()
|
sgl.end()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue