mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
gg: clean up draw_image()
This commit is contained in:
parent
7a7572e478
commit
60c642f42d
@ -16,23 +16,25 @@ mut:
|
||||
}
|
||||
|
||||
fn main() {
|
||||
mut app := &App{
|
||||
//image: gg.create_image2('logo.png')
|
||||
}
|
||||
mut app := &App{}
|
||||
app.gg = gg.new_context(
|
||||
bg_color: gx.white
|
||||
width: win_width
|
||||
height: win_height
|
||||
use_ortho: true // This is needed for 2D drawing
|
||||
create_window: true
|
||||
window_title: 'Empty window'
|
||||
window_title: 'Rectangles'
|
||||
frame_fn: frame
|
||||
init_fn: init_app
|
||||
user_data: app
|
||||
//font_path: os.resource_abs_path('assets/fonts/RobotoMono-Regular.ttf')
|
||||
)
|
||||
app.gg.run()
|
||||
}
|
||||
|
||||
fn init_app(mut app App) {
|
||||
app.image = gg.create_image('logo.png')
|
||||
}
|
||||
|
||||
fn frame(app &App) {
|
||||
app.gg.begin()
|
||||
app.draw()
|
||||
@ -44,5 +46,5 @@ fn (app &App) draw() {
|
||||
//app.gg.draw_text_def(300,300, 'привет')
|
||||
app.gg.draw_rect(10, 10, 100, 30, gx.blue)
|
||||
app.gg.draw_empty_rect(110, 150, 80, 40, gx.black)
|
||||
//app.gg.draw_image2(30,30,100,30, app.image)
|
||||
app.gg.draw_image(230,30,app.image.width,app.image.height, app.image)
|
||||
}
|
||||
|
28
vlib/gg/gg.v
28
vlib/gg/gg.v
@ -243,17 +243,6 @@ pub fn (ctx &Context) draw_empty_rect(x, y, w, h f32, c gx.Color) {
|
||||
pub fn (ctx &Context) draw_circle(x, y, r f32, c gx.Color) {
|
||||
}
|
||||
|
||||
pub fn create_image(file string) u32 {
|
||||
// println('gg create image "$file"')
|
||||
if !os.exists(file) {
|
||||
println('gg create image no such file "$file"')
|
||||
return u32(0)
|
||||
}
|
||||
// img := stbi.load(file)
|
||||
// img.free()
|
||||
return 0 // texture
|
||||
}
|
||||
|
||||
pub struct Image {
|
||||
pub mut:
|
||||
width int
|
||||
@ -265,9 +254,9 @@ pub mut:
|
||||
sokol_img C.sg_image
|
||||
}
|
||||
|
||||
pub fn create_image2(file string) Image {
|
||||
pub fn create_image(file string) Image {
|
||||
if !os.exists(file) {
|
||||
println('gg create image no such file "$file"')
|
||||
println('gg.create_image(): file not found: $file')
|
||||
return Image{} // none
|
||||
}
|
||||
stb_img := stbi.load(file)
|
||||
@ -331,18 +320,15 @@ pub fn (ctx &Context) draw_line(x, y, x2, y2 f32, c gx.Color) {
|
||||
sgl.end()
|
||||
}
|
||||
|
||||
pub fn (ctx &Context) draw_image(x, y, width, height f32, img u32) {
|
||||
}
|
||||
|
||||
pub fn (ctx &Context) draw_image2(x, y, width, height f32, img Image) {
|
||||
pub fn (ctx &Context) draw_image(x, y, width, height f32, img Image) {
|
||||
u0 := f32(0.0)
|
||||
v0 := f32(0.0)
|
||||
u1 := f32(1.0)
|
||||
v1 := f32(1.0)
|
||||
x0 := f32(x)
|
||||
y0 := f32(y)
|
||||
x1 := f32(x + width)
|
||||
y1 := f32(y + height)
|
||||
x0 := f32(x) * ctx.scale
|
||||
y0 := f32(y) * ctx.scale
|
||||
x1 := f32(x + width) * ctx.scale
|
||||
y1 := f32(y + height) * ctx.scale
|
||||
//
|
||||
sgl.load_pipeline(ctx.timage_pip)
|
||||
sgl.enable_texture()
|
||||
|
@ -24,6 +24,10 @@ fn C.stbi_load_from_memory() voidptr
|
||||
fn C.stbi_image_free()
|
||||
fn C.stbi_set_flip_vertically_on_load()
|
||||
|
||||
fn init() {
|
||||
set_flip_vertically_on_load(false)
|
||||
}
|
||||
|
||||
pub fn load(path string) Image {
|
||||
ext := path.all_after_last('.')
|
||||
mut res := Image {
|
||||
|
@ -194,11 +194,10 @@ fn (mut g Gen) string_inter_literal_sb_optimized(call_expr ast.CallExpr) {
|
||||
fn (mut g Gen) string_inter_literal(node ast.StringInterLiteral) {
|
||||
mut cur_line := ''
|
||||
mut tmp := ''
|
||||
free := g.pref.autofree && g.inside_call && !g.inside_return &&
|
||||
g.inside_ternary == 0 && !g.inside_const
|
||||
free := g.pref.autofree && g.inside_call && !g.inside_return && g.inside_ternary == 0 && !g.inside_const
|
||||
// && g.cur_fn != 0 &&
|
||||
// g.cur_fn.name != ''
|
||||
if free {
|
||||
if false && free {
|
||||
// Save the string expr in a temporary variable, so that it can be removed after the call.
|
||||
tmp = g.new_tmp_var()
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user