From 4d3803aaec21a360ca9c5aa7091fc26c9f209403 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Wed, 3 Mar 2021 18:50:53 -0600 Subject: [PATCH] updates with more onyx features --- dist/index.js | 2 +- dist/prez.wasm | Bin 38921 -> 39341 bytes src/show_parser.onyx | 8 ++++---- src/slides.onyx | 42 +++++++++++++++++------------------------- 4 files changed, 22 insertions(+), 30 deletions(-) diff --git a/dist/index.js b/dist/index.js index c44496f..c02d304 100644 --- a/dist/index.js +++ b/dist/index.js @@ -239,7 +239,7 @@ let import_obj = { console.log(str); }, - exit(status) { console.warn("Attempted to call host.exit()."); }, + exit(status) { console.warn("Attempted to call host.exit()."); debugger; }, start_loop() { let loop = () => { diff --git a/dist/prez.wasm b/dist/prez.wasm index 24c3d339b4c3326c7b557dd2cac89a2cb87ee5be..93479d653d230f0b63f8ad01ed794781b4a9892c 100644 GIT binary patch delta 11953 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 delta 11619 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 diff --git a/src/show_parser.onyx b/src/show_parser.onyx index 591d693..c065bf2 100644 --- a/src/show_parser.onyx +++ b/src/show_parser.onyx @@ -77,7 +77,7 @@ parse_slideshow :: (source: str, slideshow: ^Slideshow) { } elseif command_name == "background" { r, g, b := parse_color(^parse_context); - current_slide.background = Color.{ r, g, b }; + current_slide.background = .{ r, g, b }; } elseif command_name == "y" { y := parse_numeric_value(^parse_context); @@ -209,7 +209,7 @@ parse_text_style :: (use pc: ^ParseContext, text_style: ^Slide_Item_Text, parse_ if style_name == "color" { r, g, b := parse_color(pc); - text_style.color = Color.{ r, g, b }; + text_style.color = .{ r, g, b }; } elseif style_name == "font_size" { text_style.font_size = parse_numeric_value(pc); @@ -268,7 +268,7 @@ parse_image_style :: (use pc: ^ParseContext, image_style: ^Slide_Item_Image, par } elseif style_name == "border_color" { r, g, b := parse_color(pc); - image_style.border_color = Color.{ r, g, b }; + image_style.border_color = .{ r, g, b }; } else { printf("Unknown style option: '%s'\n", style_name); @@ -305,7 +305,7 @@ parse_rect_style :: (use pc: ^ParseContext, rect_style: ^Slide_Item_Rect, parse_ } elseif style_name == "color" { r, g, b := parse_color(pc); - rect_style.color = Color.{ r, g, b }; + rect_style.color = .{ r, g, b }; } else { printf("Unknown style option: '%s'\n", style_name); diff --git a/src/slides.onyx b/src/slides.onyx index 413ba1a..72136c2 100644 --- a/src/slides.onyx +++ b/src/slides.onyx @@ -4,6 +4,7 @@ HTML_Image :: struct { handle: i32 = -1; width: i32 = 1; // To avoid dividing by 0 height: i32 = 1; + size_initialized := false; } Color :: struct { @@ -115,7 +116,7 @@ slideshow_init :: (use s: ^Slideshow, allocator := context.allocator) { arena = alloc.arena.make(allocator, arena_size = 16 * 1024); array.init(^slides, 4); - map.init(^image_map, default = HTML_Image.{}); + map.init(^image_map, default=.{}); } slideshow_reset :: (use s: ^Slideshow) { @@ -165,11 +166,14 @@ slideshow_insert_slide :: (use s: ^Slideshow, at := -1) -> ^Slide { slideshow_make_item :: (use s: ^Slideshow) -> ^Slide_Item { allocator := alloc.arena.make_allocator(^arena); - ret := new(Slide_Item, allocator = allocator); + ret := new(Slide_Item, allocator=allocator, initialize=false); memory.set(ret, 0, sizeof Slide_Item); return ret; } +// @Cleanup +use package core.intrinsics.wasm { __initialize } + slideshow_load_image :: (use s: ^Slideshow, image_name: str, image_path: str) -> HTML_Image { if map.has(^image_map, image_name) { printf("Warning: the image '%s' was already defined.", image_name); @@ -178,6 +182,7 @@ slideshow_load_image :: (use s: ^Slideshow, image_name: str, image_path: str) -> html_image_load :: (path: str, out_image: ^HTML_Image) -> void #foreign "html" "load_image" --- image: HTML_Image; + __initialize(^image); html_image_load(image_path, ^image); map.put(^image_map, image_name, image); @@ -282,16 +287,13 @@ slide_item_render :: (use slide_item: ^Slide_Item, slide: ^Slide, width: f32, he } case Image { - if html_image := map.get(^the_slideshow.image_map, image.name); html_image.handle != -1 { - // @Speed: There is a much better way of doing this... - // @Robustness: Currently, because HTML images are asynchronously loaded, - // the image dimensions are not known when the load_image call is made. - // These means that the dimensions need to be queried later once the image - // has been loaded. The real bad thing here, is that the 'html_image' being - // passed is a local copy from the image_map. This means everytime this image - // is drawn, it has to requery the image dimensions... Uck... - store_image_size :: (html_image: ^HTML_Image) -> void #foreign "html" "store_image_size" --- - store_image_size(^html_image); + if html_image := map.get_ptr(^the_slideshow.image_map, image.name); html_image != null { + if !html_image.size_initialized { + store_image_size :: (html_image: ^HTML_Image) -> void #foreign "html" "store_image_size" --- + store_image_size(html_image); + + html_image.size_initialized = true; + } x := image.x * width; y := image.y * height; @@ -380,12 +382,8 @@ Slide_Animation_Swipe :: struct { t : f32 = 0; dt : f32 = 0.03; - make :: (allocator := context.allocator) -> ^Slide_Animation_Swipe { - anim := new(Slide_Animation_Swipe, allocator=allocator); - *anim = Slide_Animation_Swipe.{}; - - return anim; + return new(Slide_Animation_Swipe, allocator=allocator); } init :: (use anim: ^Slide_Animation_Swipe, source := -1, target := -1) { @@ -433,10 +431,7 @@ Slide_Animation_Fade :: struct { make :: (allocator := context.allocator) -> ^Slide_Animation_Fade { - anim := new(Slide_Animation_Fade, allocator=allocator); - *anim = Slide_Animation_Fade.{}; - - return anim; + return new(Slide_Animation_Fade, allocator=allocator); } init :: (use anim: ^Slide_Animation_Fade, source := -1, target := -1) { @@ -484,10 +479,7 @@ Slide_Animation_Wiper :: struct { draw_line := false; make :: (allocator := context.allocator) -> ^Slide_Animation_Wiper { - anim := new(Slide_Animation_Wiper, allocator=allocator); - *anim = Slide_Animation_Wiper.{}; - - return anim; + return new(Slide_Animation_Wiper, allocator=allocator); } init :: (use anim: ^Slide_Animation_Wiper, source := -1, target := -1) { -- 2.25.1