autofree: more tests; gg: fix draw_circle with hidpi
parent
fe3d2a9aba
commit
26785668c0
|
@ -211,8 +211,6 @@ jobs:
|
||||||
# run: git clone --depth 1 https://github.com/vlang/vorum && cd vorum && ../v . && cd ..
|
# run: git clone --depth 1 https://github.com/vlang/vorum && cd vorum && ../v . && cd ..
|
||||||
# - name: Build vpm
|
# - name: Build vpm
|
||||||
# run: git clone --depth 1 https://github.com/vlang/vpm && cd vpm && ../v . && cd ..
|
# run: git clone --depth 1 https://github.com/vlang/vpm && cd vpm && ../v . && cd ..
|
||||||
# - name: Build V UI examples
|
|
||||||
# run: ./v install ui && git clone --depth 1 https://github.com/vlang/ui && cd ui && ../v examples/calculator.v && cd ..
|
|
||||||
# - name: Freestanding
|
# - name: Freestanding
|
||||||
# run: ./v -freestanding -o bare vlib/os/bare/bare_example_linux.v
|
# run: ./v -freestanding -o bare vlib/os/bare/bare_example_linux.v
|
||||||
- name: v self compilation
|
- name: v self compilation
|
||||||
|
|
10
vlib/gg/gg.v
10
vlib/gg/gg.v
|
@ -308,10 +308,16 @@ pub fn (ctx &Context) draw_circle_line(x f32, y f32, r int, segments int, c gx.C
|
||||||
sgl.end()
|
sgl.end()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (ctx &Context) draw_circle(x f32, y f32, r int, c gx.Color) {
|
pub fn (ctx &Context) draw_circle(x f32, y f32, r f32, c gx.Color) {
|
||||||
|
if ctx.scale == 1 {
|
||||||
ctx.draw_circle_with_segments(x,y,r,10, c)
|
ctx.draw_circle_with_segments(x,y,r,10, c)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ctx.draw_circle_with_segments(x*f32(ctx.scale),y*f32(ctx.scale),r*ctx.scale,10, c)
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
pub fn (ctx &Context) draw_circle_with_segments(x f32, y f32, r int, segments int, c gx.Color) {
|
pub fn (ctx &Context) draw_circle_with_segments(x f32, y f32, r f32, segments int, c gx.Color) {
|
||||||
if c.a != 255 {
|
if c.a != 255 {
|
||||||
sgl.load_pipeline(ctx.timage_pip)
|
sgl.load_pipeline(ctx.timage_pip)
|
||||||
}
|
}
|
||||||
|
|
|
@ -217,6 +217,11 @@ fn get_font_path_variant(font_path string, variant FontVariant) string {
|
||||||
} else {
|
} else {
|
||||||
fpath += '-bold'
|
fpath += '-bold'
|
||||||
}
|
}
|
||||||
|
$if macos {
|
||||||
|
if os.exists('SFNS-bold') {
|
||||||
|
fpath = 'SFNS-bold'
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.italic {
|
.italic {
|
||||||
if fpath.ends_with('-Regular') {
|
if fpath.ends_with('-Regular') {
|
||||||
|
|
|
@ -1025,6 +1025,7 @@ fn (mut g Gen) stmt(node ast.Stmt) {
|
||||||
// g.autofree_call_pregen(node.exprs[0] as ast.CallExpr)
|
// g.autofree_call_pregen(node.exprs[0] as ast.CallExpr)
|
||||||
}
|
}
|
||||||
// g.autofree_scope_vars(node.pos.pos - 1)
|
// g.autofree_scope_vars(node.pos.pos - 1)
|
||||||
|
g.writeln('// ast.Return free_end')
|
||||||
// g.write_autofree_stmts_when_needed(node)
|
// g.write_autofree_stmts_when_needed(node)
|
||||||
}
|
}
|
||||||
g.return_statement(node, af)
|
g.return_statement(node, af)
|
||||||
|
@ -3785,6 +3786,10 @@ fn (mut g Gen) return_statement(node ast.Return, af bool) {
|
||||||
defer {
|
defer {
|
||||||
g.inside_return = false
|
g.inside_return = false
|
||||||
}
|
}
|
||||||
|
if af {
|
||||||
|
tmp := g.new_tmp_var()
|
||||||
|
g.writeln('// $tmp = ...')
|
||||||
|
}
|
||||||
// got to do a correct check for multireturn
|
// got to do a correct check for multireturn
|
||||||
sym := g.table.get_type_symbol(g.fn_decl.return_type)
|
sym := g.table.get_type_symbol(g.fn_decl.return_type)
|
||||||
fn_return_is_multi := sym.kind == .multi_return
|
fn_return_is_multi := sym.kind == .multi_return
|
||||||
|
|
|
@ -240,6 +240,22 @@ fn free_before_return_bool() bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct User {
|
||||||
|
name string
|
||||||
|
age int
|
||||||
|
}
|
||||||
|
|
||||||
|
fn free_array_except_returned_element() {
|
||||||
|
user := get_user()
|
||||||
|
println(user)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_user() User {
|
||||||
|
users := [User{'Peter', 25}, User{'Alice', 21}]
|
||||||
|
user := users[0] // has to be cloned, since `users` are going to be freed at the end of the function
|
||||||
|
return user
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
println('start')
|
println('start')
|
||||||
simple()
|
simple()
|
||||||
|
@ -262,6 +278,7 @@ fn main() {
|
||||||
// free_before_return_bool()
|
// free_before_return_bool()
|
||||||
// free_map()
|
// free_map()
|
||||||
// loop_map()
|
// loop_map()
|
||||||
|
// free_array_except_returned_element()
|
||||||
println('end')
|
println('end')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue