From e669f2afdb35ab62012d42b4371ca33731053918 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Thu, 15 Jul 2021 09:03:43 -0500 Subject: [PATCH] added a builtin font because there were too many problems without it --- bin/onyx | Bin 409272 -> 409320 bytes modules/js_events/js_events.js | 1 + modules/ui/components/button.onyx | 3 +- modules/ui/components/checkbox.onyx | 3 +- modules/ui/components/radio.onyx | 3 +- modules/ui/components/textbox.onyx | 3 +- modules/ui/font.onyx | 7 +- modules/ui/fonts/builtin.data | Bin 0 -> 65536 bytes modules/ui/fonts/builtin.fnt | 102 ++++++++++++++++++++++++++++ modules/ui/fonts/builtin.png | Bin 0 -> 7620 bytes modules/ui/ui.onyx | 15 ++-- 11 files changed, 128 insertions(+), 9 deletions(-) create mode 100644 modules/ui/fonts/builtin.data create mode 100644 modules/ui/fonts/builtin.fnt create mode 100644 modules/ui/fonts/builtin.png diff --git a/bin/onyx b/bin/onyx index 7a49eae4998e3a32939d933e33ef7fb5e9d51115..fd417834abaebd71bc29bed92520335d68a2a2d1 100755 GIT binary patch delta 46293 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 delta 46560 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 diff --git a/modules/js_events/js_events.js b/modules/js_events/js_events.js index 83639145..4ef84a11 100644 --- a/modules/js_events/js_events.js +++ b/modules/js_events/js_events.js @@ -140,6 +140,7 @@ window.ONYX_MODULES.push({ var path_memory = new Uint8Array(ONYX_MEMORY.buffer, filename_ptr, filename_len); var path = new TextDecoder("utf-8").decode(path_memory); + console.log(`Requesting file '${path}'`); fetch(path) .then(response => response.arrayBuffer()) diff --git a/modules/ui/components/button.onyx b/modules/ui/components/button.onyx index 58e7d3c8..5158f990 100644 --- a/modules/ui/components/button.onyx +++ b/modules/ui/components/button.onyx @@ -58,13 +58,14 @@ button :: (use r: Rectangle, text: str, theme := ^default_button_theme, site := surface_color = color_lerp(animation_state.click_time, surface_color, theme.click_color); gfx.rect(.{ x0 + border_width, y0 + border_width }, .{ width - border_width * 2, height - border_width * 2 }, surface_color); + use_font(theme.font); text_width, text_height := current_font->get_dimensions(text, theme.font_size); @ThemeConfiguration // This always draws the text centered on the button surface. draw_text_raw(text, x0 + (width - text_width) / 2, y0 + current_font->get_baseline(theme.font_size) + (height - text_height) / 2, - theme.font_size, theme.text_color); + theme.font, theme.font_size, theme.text_color); move_towards(^animation_state.click_time, 0.0f, theme.click_decay_speed); diff --git a/modules/ui/components/checkbox.onyx b/modules/ui/components/checkbox.onyx index 391d3287..2d60b517 100644 --- a/modules/ui/components/checkbox.onyx +++ b/modules/ui/components/checkbox.onyx @@ -83,13 +83,14 @@ checkbox :: (use r: Rectangle, value: ^bool, text: str, theme := ^default_checkb surface_color ); + use_font(theme.font); text_width, text_height := current_font->get_dimensions(text, theme.font_size); draw_text_raw( text, x0 + box_size + 4 * 2, @Cleanup @ThemeConfiguration y0 + current_font->get_baseline(theme.font_size) + (height - text_height) / 2, - theme.font_size, theme.text_color); + theme.font, theme.font_size, theme.text_color); move_towards(^animation_state.click_time, 0.0f, theme.click_decay_speed); diff --git a/modules/ui/components/radio.onyx b/modules/ui/components/radio.onyx index 01dd7f0b..53183b35 100644 --- a/modules/ui/components/radio.onyx +++ b/modules/ui/components/radio.onyx @@ -76,13 +76,14 @@ radio :: (use r: Rectangle, selected: ^$T, value: T, text: str, theme := ^defaul gfx.circle(.{ cx, cy }, radius - theme.radio_border_radius, color=surface_color); + use_font(theme.font); text_width, text_height := current_font->get_dimensions(text, theme.font_size); draw_text_raw( text, x0 + 2 * radius + 4, @ThemeConfiguration y0 + current_font->get_baseline(theme.font_size) + (height - text_height) / 2, - theme.font_size, theme.text_color); + theme.font, theme.font_size, theme.text_color); move_towards(^animation_state.click_time, 0.0f, theme.click_decay_speed); diff --git a/modules/ui/components/textbox.onyx b/modules/ui/components/textbox.onyx index d9abd64f..660d6015 100644 --- a/modules/ui/components/textbox.onyx +++ b/modules/ui/components/textbox.onyx @@ -60,6 +60,7 @@ textbox :: (use r: Rectangle, text_buffer: ^string.String_Buffer, placeholder := text_color = theme.placeholder_text_color; } + use_font(theme.font); text_width, text_height := current_font->get_dimensions(text, theme.font_size); text_x := x0 + border_width; @@ -154,7 +155,7 @@ textbox :: (use r: Rectangle, text_buffer: ^string.String_Buffer, placeholder := surface_color = color_lerp(animation_state.click_time, surface_color, theme.click_color); gfx.rect(.{ x0 + border_width, y0 + border_width }, .{ width - border_width * 2, height - border_width * 2 }, surface_color); - draw_text_raw(text, text_x, text_y, theme.font_size, text_color); + draw_text_raw(text, text_x, text_y, theme.font, theme.font_size, text_color); if textbox_editing_state.hash == hash { cursor_x := get_cursor_location(text_buffer, text_x, text_y, theme.font_size, textbox_editing_state.cursor_position); diff --git a/modules/ui/font.onyx b/modules/ui/font.onyx index e694997a..874126e1 100644 --- a/modules/ui/font.onyx +++ b/modules/ui/font.onyx @@ -69,11 +69,16 @@ create_font :: (bmfont_data: [] u8, font_texture_data: [] u8) -> Font { return .{ texture=texture, font=font, rendering_kind=rendering_kind }; } -@Bug // Why is '#type' needed here? Font_Index :: i32; #private font_registry : map.Map(Font_Index, Font); register_font :: (index: Font_Index, font: Font) { assert(!map.has(^font_registry, index), "Font with this index already exists."); map.put(^font_registry, index, font); +} + +use_font :: (index: Font_Index) { + font_ptr := map.get_ptr(^font_registry, index); + if font_ptr == null do font_ptr = map.get_ptr(^font_registry, -1); + current_font = font_ptr; } \ No newline at end of file diff --git a/modules/ui/fonts/builtin.data b/modules/ui/fonts/builtin.data new file mode 100644 index 0000000000000000000000000000000000000000..cec8d2b7dc51e2e4345ceab994884a8da1a9646e GIT binary patch literal 65536 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 z z5evB7|2Wrg5qN%gUpJ7dRhQ2;UHn5!?;>o9CdLH@V?D4pArZux%C?-)e#O zcL?7TOl#Y=zij6@a)YqHz*+dP@E0L-c*Y>d3!HD$Vu63=gMPr_Tr6$cSuL}dh%ak* zgTNlTUNFu5#D*`*?n8V3e?_+21o~BACn`^i8~(zkysMOyvOwR61ASvXbALkG`G74?7Bu@0B)JeSDp8eTOnR~`{!UqC=wg@YQ z%z?)~r47~_`xfcN0IWP2nv{osDy{&&21Z$t9m zW^z`8{QY&K%AECo5;)U&*Wr15Vro~#p(NXip=D5t-}yBEvzTf`o@?UH-42vFz-A#Y zoFH&7&hyWE=%I-hcN6I&pX?t=f3ENY;lreNtlMWJ_vQBQB0feZxH^5as(qvKr2fA_$<4|24Sc}1yz^89n(o9Iif7Y;tBnG_%9 zae2jd>m3%Cm9igp2nc6$`6k!l4dR~cTU6&rfp1dJB|UuJ&yf7z`o31>s}t|w!dTqb zR*&i583DzTxbG{JZz;9RyrK)QRqy@J`zvyV(C+_YX#cSz>DlAV;Tqx5r1yGxTKfEV zWt>YtO1$$_zF#PO>&Nu(i$IOzFO{C{m?~wS*>~Zz+NM4KH<&11_jzginErc3pw27b zrR zfiVJO1jY!A5f~#dMqrG<7=bYYV+6(sj1d?kFh*dEz!-rs0%HWm2#gUJBQQo_jKCOy VF#=-*#t4iN7$Y!7;IkEh{{sW9dl3Kt literal 0 HcmV?d00001 diff --git a/modules/ui/fonts/builtin.fnt b/modules/ui/fonts/builtin.fnt new file mode 100644 index 00000000..f15bf924 --- /dev/null +++ b/modules/ui/fonts/builtin.fnt @@ -0,0 +1,102 @@ +info face="M+ 2m Nerd Font Complete" size=16 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=-2,-2 +common lineHeight=24 base=18 scaleW=128 scaleH=128 pages=1 packed=0 +page id=0 file="builtin.png" +chars count=97 +char id=0 x=95 y=63 width=7 height=13 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0 +char id=10 x=95 y=63 width=7 height=13 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=0 +char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=17 xadvance=8 page=0 chnl=0 +char id=33 x=121 y=35 width=5 height=14 xoffset=2 yoffset=5 xadvance=8 page=0 chnl=0 +char id=34 x=28 y=88 width=6 height=7 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=0 +char id=35 x=75 y=63 width=9 height=14 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 +char id=36 x=61 y=0 width=9 height=18 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0 +char id=37 x=64 y=63 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=0 +char id=38 x=84 y=63 width=11 height=14 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=0 +char id=39 x=40 y=88 width=4 height=7 xoffset=2 yoffset=4 xadvance=8 page=0 chnl=0 +char id=40 x=12 y=0 width=8 height=18 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0 +char id=41 x=20 y=0 width=8 height=18 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0 +char id=42 x=10 y=88 width=10 height=9 xoffset=-1 yoffset=4 xadvance=9 page=0 chnl=0 +char id=43 x=119 y=77 width=8 height=10 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0 +char id=44 x=44 y=88 width=6 height=7 xoffset=1 yoffset=14 xadvance=8 page=0 chnl=0 +char id=45 x=64 y=88 width=7 height=4 xoffset=1 yoffset=11 xadvance=9 page=0 chnl=0 +char id=46 x=50 y=88 width=5 height=5 xoffset=2 yoffset=14 xadvance=8 page=0 chnl=0 +char id=47 x=49 y=20 width=10 height=15 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=48 x=38 y=63 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=49 x=83 y=49 width=8 height=14 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 +char id=50 x=91 y=49 width=8 height=14 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0 +char id=51 x=99 y=49 width=9 height=14 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=52 x=108 y=49 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=53 x=118 y=49 width=9 height=14 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=54 x=0 y=63 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=55 x=10 y=63 width=8 height=14 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=56 x=18 y=63 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=57 x=28 y=63 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=58 x=114 y=77 width=5 height=11 xoffset=1 yoffset=8 xadvance=7 page=0 chnl=0 +char id=59 x=58 y=63 width=6 height=14 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0 +char id=60 x=102 y=63 width=8 height=13 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0 +char id=61 x=20 y=88 width=8 height=8 xoffset=0 yoffset=9 xadvance=8 page=0 chnl=0 +char id=62 x=110 y=63 width=8 height=13 xoffset=0 yoffset=6 xadvance=8 page=0 chnl=0 +char id=63 x=48 y=63 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=64 x=80 y=0 width=10 height=16 xoffset=-1 yoffset=6 xadvance=8 page=0 chnl=0 +char id=65 x=69 y=20 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=66 x=79 y=20 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=67 x=89 y=20 width=9 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=68 x=98 y=20 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=69 x=108 y=20 width=9 height=14 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=70 x=117 y=20 width=9 height=14 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=71 x=0 y=35 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=72 x=10 y=35 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=73 x=20 y=35 width=7 height=14 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0 +char id=74 x=27 y=35 width=9 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=75 x=36 y=35 width=9 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=76 x=45 y=35 width=8 height=14 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=77 x=53 y=35 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=78 x=63 y=35 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=79 x=73 y=35 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=80 x=83 y=35 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=81 x=70 y=0 width=10 height=17 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=82 x=93 y=35 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=83 x=103 y=35 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=84 x=113 y=35 width=8 height=14 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=85 x=0 y=49 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=86 x=10 y=49 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=87 x=20 y=49 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=88 x=30 y=49 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=89 x=40 y=49 width=10 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=90 x=50 y=49 width=8 height=14 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=91 x=28 y=0 width=7 height=18 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=0 +char id=92 x=59 y=20 width=10 height=15 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=93 x=35 y=0 width=8 height=18 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=0 +char id=94 x=0 y=88 width=10 height=10 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0 +char id=95 x=71 y=88 width=10 height=4 xoffset=-1 yoffset=18 xadvance=8 page=0 chnl=0 +char id=96 x=34 y=88 width=6 height=7 xoffset=1 yoffset=3 xadvance=8 page=0 chnl=0 +char id=97 x=0 y=77 width=10 height=11 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=98 x=90 y=0 width=10 height=15 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0 +char id=99 x=118 y=63 width=9 height=11 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0 +char id=100 x=100 y=0 width=10 height=15 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0 +char id=101 x=10 y=77 width=10 height=11 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=102 x=58 y=49 width=8 height=14 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=103 x=110 y=0 width=10 height=15 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=104 x=0 y=20 width=10 height=15 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0 +char id=105 x=120 y=0 width=7 height=15 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=0 +char id=106 x=5 y=0 width=7 height=19 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=0 +char id=107 x=10 y=20 width=9 height=15 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=0 +char id=108 x=66 y=49 width=9 height=14 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=109 x=20 y=77 width=11 height=11 xoffset=-1 yoffset=8 xadvance=9 page=0 chnl=0 +char id=110 x=31 y=77 width=10 height=11 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=111 x=41 y=77 width=10 height=11 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=112 x=19 y=20 width=10 height=15 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=113 x=29 y=20 width=10 height=15 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=114 x=51 y=77 width=8 height=11 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0 +char id=115 x=59 y=77 width=9 height=11 xoffset=0 yoffset=8 xadvance=8 page=0 chnl=0 +char id=116 x=75 y=49 width=8 height=14 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=117 x=68 y=77 width=9 height=11 xoffset=-1 yoffset=8 xadvance=7 page=0 chnl=0 +char id=118 x=77 y=77 width=10 height=11 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=119 x=87 y=77 width=10 height=11 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=120 x=97 y=77 width=10 height=11 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=121 x=39 y=20 width=10 height=15 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=122 x=107 y=77 width=7 height=11 xoffset=0 yoffset=8 xadvance=7 page=0 chnl=0 +char id=123 x=43 y=0 width=9 height=18 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0 +char id=124 x=0 y=0 width=5 height=20 xoffset=2 yoffset=3 xadvance=8 page=0 chnl=0 +char id=125 x=52 y=0 width=9 height=18 xoffset=0 yoffset=4 xadvance=8 page=0 chnl=0 +char id=126 x=55 y=88 width=9 height=5 xoffset=0 yoffset=11 xadvance=8 page=0 chnl=0 +kernings count=0 diff --git a/modules/ui/fonts/builtin.png b/modules/ui/fonts/builtin.png new file mode 100644 index 0000000000000000000000000000000000000000..135e65084a22852072c29f162a9d5d4ab4ffb11a GIT binary patch literal 7620 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 bool { } @FontSizing // In the new font system, size is in ems, which can be set per font. -draw_text_raw :: (text: str, x: f32, y: f32, size := DEFAULT_TEXT_SIZE, color := gfx.Color4.{1,1,1}) { +draw_text_raw :: (text: str, x: f32, y: f32, font: i32 = -1, size := DEFAULT_TEXT_SIZE, color := gfx.Color4.{1,1,1}) { + use_font(font); + if current_font == null do use_font(-1); current_font->render(text, x, y, size, color); } @@ -92,7 +99,7 @@ draw_rect :: #match { } draw_text :: (use r: Rectangle, text: str, theme := ^default_text_theme, site := #callsite) -> bool { - draw_text_raw(text, x0, y0 + current_font->get_baseline(theme.font_size), theme.font_size, theme.text_color); + draw_text_raw(text, x0, y0 + current_font->get_baseline(theme.font_size), theme.font, theme.font_size, theme.text_color); } Rectangle :: struct { -- 2.25.1