From 9e86b3e199db27b4166dec3be3a63c3481e86e1d Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Fri, 19 Feb 2021 20:40:20 -0600 Subject: [PATCH] added image borders --- dist/prez.wasm | Bin 34418 -> 34691 bytes onyx.prez | 70 +++++++++++++++++++++++++++++++++++++++---- src/show_parser.onyx | 8 +++++ src/slides.onyx | 14 ++++++++- todo | 5 ++++ 5 files changed, 91 insertions(+), 6 deletions(-) create mode 100644 todo diff --git a/dist/prez.wasm b/dist/prez.wasm index 5a1bf6436ba03e657c1e5cec7315bd273d2fd09d..3112fb4009304bc6b01eb75bb57ef29f2c8f0cda 100644 GIT binary patch delta 8907 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 LM ^Slide { slideshow_make_item :: (use s: ^Slideshow) -> ^Slide_Item { allocator := alloc.arena.make_allocator(^arena); - return new(Slide_Item, allocator = allocator); + ret := new(Slide_Item, allocator = allocator); + memory.set(ret, 0, sizeof Slide_Item); + return ret; } slideshow_load_image :: (use s: ^Slideshow, image_name: str, image_path: str) -> HTML_Image { @@ -243,6 +248,13 @@ slide_item_render :: (use slide_item: ^Slide_Item, slide: ^Slide) { y := image.y * height; w := image.width * width; h := w * (cast(f32) html_image.height / cast(f32) html_image.width); + + if image.border_width > 0 { + bw := image.border_width * width; + fill_rect(canvas, x - bw, y - bw, w + 2 * bw, h + 2 * bw, + image.border_color.r, image.border_color.g, + image.border_color.b, image.border_color.a); + } draw_image(canvas, html_image.handle, x, y, w, h); } diff --git a/todo b/todo new file mode 100644 index 0000000..a8ed93f --- /dev/null +++ b/todo @@ -0,0 +1,5 @@ +[X] Image borders +[ ] Fixed aspect ratio slides + +[ ] Slide animation: Slide from Right +[ ] Slide animatoin: Fade -- 2.25.1