mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
gg: make create_image() return !Image
This commit is contained in:
parent
75deb66fd4
commit
d60ceb45cd
@ -190,7 +190,7 @@ fn main() {
|
|||||||
frame_fn: frame
|
frame_fn: frame
|
||||||
event_fn: on_event
|
event_fn: on_event
|
||||||
user_data: app
|
user_data: app
|
||||||
init_fn: init_images
|
init_fn: app.init_images_wrapper
|
||||||
font_path: font_path
|
font_path: font_path
|
||||||
)
|
)
|
||||||
app.nv = neuroevolution.Generations{
|
app.nv = neuroevolution.Generations{
|
||||||
@ -209,21 +209,25 @@ fn (mut app App) run() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn init_images(mut app App) {
|
fn (mut app App) init_images_wrapper() {
|
||||||
|
app.init_images() or { panic(err) }
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (mut app App) init_images() ! {
|
||||||
$if android {
|
$if android {
|
||||||
background := os.read_apk_asset('img/background.png') or { panic(err) }
|
background := os.read_apk_asset('img/background.png')!
|
||||||
app.background = app.gg.create_image_from_byte_array(background)
|
app.background = app.gg.create_image_from_byte_array(background)!
|
||||||
bird := os.read_apk_asset('img/bird.png') or { panic(err) }
|
bird := os.read_apk_asset('img/bird.png')!
|
||||||
app.bird = app.gg.create_image_from_byte_array(bird)
|
app.bird = app.gg.create_image_from_byte_array(bird)!
|
||||||
pipetop := os.read_apk_asset('img/pipetop.png') or { panic(err) }
|
pipetop := os.read_apk_asset('img/pipetop.png')!
|
||||||
app.pipetop = app.gg.create_image_from_byte_array(pipetop)
|
app.pipetop = app.gg.create_image_from_byte_array(pipetop)!
|
||||||
pipebottom := os.read_apk_asset('img/pipebottom.png') or { panic(err) }
|
pipebottom := os.read_apk_asset('img/pipebottom.png')!
|
||||||
app.pipebottom = app.gg.create_image_from_byte_array(pipebottom)
|
app.pipebottom = app.gg.create_image_from_byte_array(pipebottom)!
|
||||||
} $else {
|
} $else {
|
||||||
app.background = app.gg.create_image(os.resource_abs_path('assets/img/background.png'))
|
app.background = app.gg.create_image(os.resource_abs_path('assets/img/background.png'))!
|
||||||
app.bird = app.gg.create_image(os.resource_abs_path('assets/img/bird.png'))
|
app.bird = app.gg.create_image(os.resource_abs_path('assets/img/bird.png'))!
|
||||||
app.pipetop = app.gg.create_image(os.resource_abs_path('assets/img/pipetop.png'))
|
app.pipetop = app.gg.create_image(os.resource_abs_path('assets/img/pipetop.png'))!
|
||||||
app.pipebottom = app.gg.create_image(os.resource_abs_path('assets/img/pipebottom.png'))
|
app.pipebottom = app.gg.create_image(os.resource_abs_path('assets/img/pipebottom.png'))!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,9 +12,9 @@ pub mut:
|
|||||||
image gg.Image
|
image gg.Image
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut window Window) init(_ voidptr) {
|
pub fn (mut window Window) init() {
|
||||||
logo_path := os.resource_abs_path(os.join_path('..', 'assets', 'logo.png'))
|
logo_path := os.resource_abs_path(os.join_path('..', 'assets', 'logo.png'))
|
||||||
window.image = window.ctx.create_image(logo_path)
|
window.image = window.ctx.create_image(logo_path) or { panic(err) }
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut window Window) draw(_ voidptr) {
|
pub fn (mut window Window) draw(_ voidptr) {
|
||||||
|
@ -30,7 +30,7 @@ fn main() {
|
|||||||
init_fn: init_images
|
init_fn: init_images
|
||||||
)
|
)
|
||||||
mut logo_path := os.resource_abs_path(os.join_path('..', 'assets', 'logo.png'))
|
mut logo_path := os.resource_abs_path(os.join_path('..', 'assets', 'logo.png'))
|
||||||
app.image = app.gg.create_image(logo_path).id
|
app.image = app.gg.create_image(logo_path)!.id
|
||||||
app.gg.run()
|
app.gg.run()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,9 @@ pub mut:
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut window Window) init() {
|
pub fn (mut window Window) init() {
|
||||||
window.img = window.ctx.create_image(os.resource_abs_path('../assets/logo.png'))
|
window.img = window.ctx.create_image(os.resource_abs_path('../assets/logo.png')) or {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn (mut window Window) draw() {
|
pub fn (mut window Window) draw() {
|
||||||
|
@ -82,7 +82,7 @@ fn main() {
|
|||||||
|
|
||||||
fn init_images(mut app App) {
|
fn init_images(mut app App) {
|
||||||
mut logo_path := os.resource_abs_path(os.join_path('..', 'assets', 'logo.png'))
|
mut logo_path := os.resource_abs_path(os.join_path('..', 'assets', 'logo.png'))
|
||||||
app.image = app.gg.create_image(logo_path)
|
app.image = app.gg.create_image(logo_path) or { panic(err) }
|
||||||
}
|
}
|
||||||
|
|
||||||
fn frame(mut app App) {
|
fn frame(mut app App) {
|
||||||
|
@ -25,11 +25,10 @@ pub mut:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// create_image creates an `Image` from `file`.
|
// create_image creates an `Image` from `file`.
|
||||||
// TODO return !Image
|
pub fn (ctx &Context) create_image(file string) !Image {
|
||||||
pub fn (ctx &Context) create_image(file string) Image {
|
|
||||||
// println('\ncreate_image("$file")')
|
// println('\ncreate_image("$file")')
|
||||||
if !os.exists(file) {
|
if !os.exists(file) {
|
||||||
return Image{}
|
return error('image file "${file}" not found')
|
||||||
}
|
}
|
||||||
$if macos {
|
$if macos {
|
||||||
if ctx.native_rendering {
|
if ctx.native_rendering {
|
||||||
@ -47,7 +46,7 @@ pub fn (ctx &Context) create_image(file string) Image {
|
|||||||
if !gfx.is_valid() {
|
if !gfx.is_valid() {
|
||||||
// Sokol is not initialized yet, add stbi object to a queue/cache
|
// Sokol is not initialized yet, add stbi object to a queue/cache
|
||||||
// ctx.image_queue << file
|
// ctx.image_queue << file
|
||||||
stb_img := stbi.load(file) or { return Image{} }
|
stb_img := stbi.load(file)!
|
||||||
img := Image{
|
img := Image{
|
||||||
width: stb_img.width
|
width: stb_img.width
|
||||||
height: stb_img.height
|
height: stb_img.height
|
||||||
@ -220,8 +219,8 @@ fn create_image(file string) Image {
|
|||||||
// memory buffer `buf` of size `bufsize`.
|
// memory buffer `buf` of size `bufsize`.
|
||||||
//
|
//
|
||||||
// See also: create_image_from_byte_array
|
// See also: create_image_from_byte_array
|
||||||
pub fn (mut ctx Context) create_image_from_memory(buf &u8, bufsize int) Image {
|
pub fn (mut ctx Context) create_image_from_memory(buf &u8, bufsize int) !Image {
|
||||||
stb_img := stbi.load_from_memory(buf, bufsize) or { return Image{} }
|
stb_img := stbi.load_from_memory(buf, bufsize)!
|
||||||
mut img := Image{
|
mut img := Image{
|
||||||
width: stb_img.width
|
width: stb_img.width
|
||||||
height: stb_img.height
|
height: stb_img.height
|
||||||
@ -239,7 +238,7 @@ pub fn (mut ctx Context) create_image_from_memory(buf &u8, bufsize int) Image {
|
|||||||
// byte array `b`.
|
// byte array `b`.
|
||||||
//
|
//
|
||||||
// See also: create_image_from_memory
|
// See also: create_image_from_memory
|
||||||
pub fn (mut ctx Context) create_image_from_byte_array(b []u8) Image {
|
pub fn (mut ctx Context) create_image_from_byte_array(b []u8) !Image {
|
||||||
return ctx.create_image_from_memory(b.data, b.len)
|
return ctx.create_image_from_memory(b.data, b.len)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user