From 81ead1ba91a638dfcfdf6e6180863923f962d0c0 Mon Sep 17 00:00:00 2001 From: Martin Fouilleul Date: Wed, 19 Apr 2023 11:28:53 +0200 Subject: [PATCH] [in-app console] - splitting input state from app structures in milepost, so that it can be used from another thread than main event thread. - Adding a collapsable debug overlay to orca window (wip) --- milepost | 2 +- resources/Andale Mono.ttf | Bin 0 -> 109700 bytes scripts/mkapp.py | 2 + src/main.c | 163 +++++++++++++++++++++++++++++++------- 4 files changed, 137 insertions(+), 30 deletions(-) create mode 100644 resources/Andale Mono.ttf diff --git a/milepost b/milepost index f1d6e0f..ab150f9 160000 --- a/milepost +++ b/milepost @@ -1 +1 @@ -Subproject commit f1d6e0f15cfa27ef3670c23ea4f372904aac109d +Subproject commit ab150f94f2a9232d47f8a34213dc92dc23438c7f diff --git a/resources/Andale Mono.ttf b/resources/Andale Mono.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e766a6e18badf3aa063cce94ee2268d89b02a13d GIT binary patch literal 109700 zcmce1RWJ+YaSs&2H|sOghZu3ykeR$>qny3pn{O+dKv0@{+E_% z-x3lSB%W5^#HmJU&oAIU_22;JDW2x1IPxcT`mhFG!y0Hj8BXpY5_*wIH0h5zqv{A? z%?K4w)6KY|ksgt}xOH^32?(lM7c&Og$|?czUyw{BhFu#v^`KvC#nb2 zV}*n~e(`Lmfq;=R^hVp-&=VoOSg(%pjmLR#td!`<_)wV}1!C!_7dy3)NEj&# zwNVirSsE&;f>0AG>&V=W zzVxJ*@TX9{fs}QW!^srUqSWg;%~8+CFD_8(4V~)4d07m?L`FGW+@!RzpllW&Q_9v( z?QJN_A-F|!s*glDTzpPxAI;l@o*C1rOG_6E^@h;+ zb7qy!S~6=@NwKrIXi1TC#)5?_7tbm!TjER}(#_eYUq5e895S5a%1WH07R+C;WaYvV z=a2=97cN*_v}D$T`MsQj=FW90ca%F9mz0+*URF}vYta1SqPf8voMTE#m(DF(JfUQ9 zIodl@d-d+UB6yuYFIaloIjh`RI-#i)WP=&ziwUSl)}=MHZ07WF8QHE}2hO;%quuNyA79 znT_)=k$$~CmMlTL`9Sd^+*2$(A{-E25ne@lQFuvshUAc0q!eih(keWmm^hWT{4OV% zfhR3Q4~vynWoYFj$z%xWhP)5yhp(6P43#oaHx2|=f_xP2v>k+5%tiidALYtf2`R^&i^(!&RK3tHIE%Tz>7g9YFTyy3BcFwPoXW_{LL;7w z5jgSu5@nXtm68*%3y$x%ch6L6mta)?xi2RfqdaFRp2DFy0cVTR<1FPqCrQPfz42Y~ zoBP{g(dn74c#P@Su`a<=iU9QzWla~8Ik>uj%*65k7M@PB94jyj@F>IG97Fi*r{l>S zzCjq21Nwa2?GT%fYaD)yQD206`T1-xN4_5A7!`jS#|{p$a?G%OKEJN*IAxU=0K$A8 z3(@yV!tt&|Sv&r`G0IAh!qp{8eYx^9j!#R_{tl9Y?{ekat7C22pWh4pFFCv-SO7A|Y-o9z+8JYd==$|!UV7712;2}A=Lx<%JA2IUIQFq-v`kpak$BmybF@MtJ zd#4mkomN;xrq3uYnORykYxbPE^X4yDxM*?tlBLU*uUNV2zWXa4s9e3~!K$^@f2gTl zx4v#e{l-n3w>;GFaO2i(P0f!yy8W>okMDe9*X}(}KDBq>AD{lyGtcgS&VS(fgNI%? zeB|hhFa7!DSB|}U{4cM)e&UTcPo8?~uW$d)>380J?|t&O4?aBe(b;n!|NS55FMM+G z5)q|XO!{T$fGUzj9-x)e%m{HfO9e z-r3dJ+v#=Q;mmRlbmllKoqL>nozJ)=m&Fy~ig$H&^>R&hHM;i2vv^g!G2R?+i;s$r zi|-ciiO-8KiZ5|9x9oN$l0=qhNR$(;iH^iBi3y2468k1*CC*J;owzo!HgQ8@L*f&O z&m=yd_)_A_i6;`@PJB1<x`~5yUw{G{lcK_5aJ{|G5Vj`n;88$ zjD9UfzfssNQZZb-N1Q5dj$Ix5ozvp9JDtktQ=R=fM!);tMt`qsbI0gS7=2`XY-sd_ z@x{vMo&RO@qdP{wIdNy=(;cJ#D@K0~qranL^d((q-w=O+uGaQBA#GN$MG}w+Y5lIX zrS*F2*R5Z*9&J6+dbst4)@njNpBY5YOVyXQein79`ZMikF_%_+dXkV&cV04mI{eeD zPw%`q`{K$^3qNI-KDhLkPqu!t>ytV{KH1CfyA=1yqEDvbtoOydi~TQ-ybygM>VoM) z_yzq1%?0Uv;QUYLZ=C<~{72_o&VP0O>iNs(Kjn9wf8+eI^RJvgjM6LT_nhB*KIi

?WV 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℘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

>7EyB2eK_o`kkYsi~Pm&tX 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 MZ87Ow4J^Zd0fuWB)c^nh literal 0 HcmV?d00001 diff --git a/scripts/mkapp.py b/scripts/mkapp.py index 8276434..0bab978 100644 --- a/scripts/mkapp.py +++ b/scripts/mkapp.py @@ -76,7 +76,9 @@ if args.res_dirs != None: for res in args.res_dirs: shutil.copytree(res, res_dir) +# default fonts shutil.copy(args.orca_dir + '/resources/OpenSansLatinSubset.ttf', res_dir) +shutil.copy(args.orca_dir + '/resources/Andale Mono.ttf', res_dir) #----------------------------------------------------------- #NOTE make icon #----------------------------------------------------------- diff --git a/src/main.c b/src/main.c index 63bd825..07674b2 100644 --- a/src/main.c +++ b/src/main.c @@ -72,10 +72,10 @@ int orca_assert(const char* file, const char* function, int line, const char* sr exit(-1); } -mg_font mg_font_create_default() +mg_font orca_font_create(const char* resourcePath) { //NOTE(martin): create default font - str8 fontPath = mp_app_get_resource_path(mem_scratch(), "../resources/OpenSansLatinSubset.ttf"); + str8 fontPath = mp_app_get_resource_path(mem_scratch(), resourcePath); char* fontPathCString = str8_to_cstring(mem_scratch(), fontPath); FILE* fontFile = fopen(fontPathCString, "r"); @@ -105,20 +105,43 @@ mg_font mg_font_create_default() return(font); } +mg_font mg_font_create_default() +{ + return(orca_font_create("../resources/OpenSansLatinSubset.ttf")); +} + + #include"bindgen_core_api.c" #include"canvas_api_bind.c" #include"bindgen_gles_api.c" #include"manual_gles_api.c" +typedef struct orca_debug_overlay +{ + bool show; + mg_surface surface; + mg_canvas canvas; + mg_font font; + ui_context ui; + +} orca_debug_overlay; + +void debug_overlay_toogle(orca_debug_overlay* overlay) +{ + overlay->show = !overlay->show; + mg_surface_set_hidden(overlay->surface, !overlay->show); +} + typedef struct orca_app { mp_window window; mg_surface surface; - mg_surface mtlSurface; mg_canvas canvas; orca_runtime runtime; + orca_debug_overlay debugOverlay; + } orca_app; char m3_type_to_tag(M3ValueType type) @@ -299,7 +322,7 @@ void* orca_runloop(void* user) } } - //mg_canvas_prepare(app->canvas); + //NOTE: setup ui context //NOTE: prepare GL surface mg_surface_prepare(app->surface); @@ -321,11 +344,18 @@ void* orca_runloop(void* user) m3_Call(eventHandlers[G_EVENT_FRAME_RESIZE], 2, args); } + ui_set_context(&app->debugOverlay.ui); + while(!mp_should_quit()) { mp_event event = {0}; while(mp_next_event(&event)) { + if(app->debugOverlay.show) + { + ui_process_event(event); + } + switch(event.type) { case MP_EVENT_WINDOW_CLOSE: @@ -336,7 +366,7 @@ void* orca_runloop(void* user) case MP_EVENT_WINDOW_RESIZE: { mp_rect frame = {0, 0, event.frame.rect.w, event.frame.rect.h}; - mg_surface_set_frame(app->mtlSurface, frame); + mg_surface_set_frame(app->surface, frame); if(eventHandlers[G_EVENT_FRAME_RESIZE]) { @@ -382,6 +412,11 @@ void* orca_runloop(void* user) { if(event.key.action == MP_KEY_PRESS) { + if(event.key.code == MP_KEY_D && (event.key.mods & (MP_KEYMOD_SHIFT | MP_KEYMOD_CMD))) + { + debug_overlay_toogle(&app->debugOverlay); + } + if(eventHandlers[G_EVENT_KEY_DOWN]) { const void* args[1] = {&event.key.code}; @@ -412,7 +447,72 @@ void* orca_runloop(void* user) mg_present(); - //TODO: update and render + if(app->debugOverlay.show) + { + ui_style debugUIDefaultStyle = {.bgColor = {0}, + .color = {1, 1, 1, 1}, + .font = app->debugOverlay.font, + .fontSize = 16, + .borderColor = {1, 0, 0, 1}, + .borderSize = 2}; + + ui_style_mask debugUIDefaultMask = UI_STYLE_BG_COLOR + | UI_STYLE_COLOR + | UI_STYLE_BORDER_COLOR + | UI_STYLE_BORDER_SIZE + | UI_STYLE_FONT + | UI_STYLE_FONT_SIZE; + + ui_frame(&debugUIDefaultStyle, debugUIDefaultMask) + { + ui_style_next(&(ui_style){.size.width = {UI_SIZE_PARENT, 1}, + .size.height = {UI_SIZE_PARENT, 1, 1}}, + UI_STYLE_SIZE); + + ui_container("overlay area", 0) + { + //... + } + + ui_style_next(&(ui_style){.size.width = {UI_SIZE_PARENT, 1}, + .size.height = {UI_SIZE_PARENT, 0.4}, + .bgColor = {0, 0, 0, 0.5}}, + UI_STYLE_SIZE + |UI_STYLE_BG_COLOR); + + ui_container("log console", UI_FLAG_DRAW_BACKGROUND) + { + ui_style_next(&(ui_style){.size.width = {UI_SIZE_PARENT, 1}, + .size.height = {UI_SIZE_PARENT, 1}}, + UI_STYLE_SIZE); + + ui_panel("log console", UI_FLAG_CLICKABLE) + { + ui_style_next(&(ui_style){.size.width = {UI_SIZE_PARENT, 1}, + .size.height = {UI_SIZE_PIXELS, 800}}, + UI_STYLE_SIZE); + + ui_container("contents", 0) + { + } + } + } + } + + mg_canvas_prepare(app->debugOverlay.canvas); + + ui_draw(); + /* + mg_set_font(app->debugOverlay.font); + mg_set_font_size(32); + mg_set_color_rgba(0.2, 0.2, 0.2, 1); + mg_move_to(30, 30); + mg_text_outlines(STR8("Debug Overlay")); + mg_fill(); + */ + mg_present(); + } + mem_scratch_clear(); } @@ -426,32 +526,37 @@ int main(int argc, char** argv) mp_init(); mp_clock_init(); + orca_app* orca = &__orcaApp; + mp_rect windowRect = {.x = 100, .y = 100, .w = 810, .h = 610}; - mp_window window = mp_window_create(windowRect, "orca", 0); + orca->window = mp_window_create(windowRect, "orca", 0); + orca->surface = mg_surface_create_for_window(orca->window, MG_BACKEND_DEFAULT); + orca->canvas = mg_canvas_create(orca->surface); - //NOTE: create surface and canvas - mg_surface surface = mg_surface_create_for_window(window, MG_BACKEND_GLES); - mg_surface_swap_interval(surface, 1); -/* mg_canvas canvas = mg_canvas_create(surface); + mg_surface_swap_interval(orca->surface, 1); - if(mg_canvas_is_nil(canvas)) + orca->debugOverlay.show = false; + orca->debugOverlay.surface = mg_surface_create_for_window(orca->window, MG_BACKEND_DEFAULT); + orca->debugOverlay.canvas = mg_canvas_create(orca->debugOverlay.surface); + orca->debugOverlay.font = orca_font_create("../resources/Andale Mono.ttf"); + + mg_surface_set_hidden(orca->debugOverlay.surface, true); + + //WARN: this is a workaround to avoid stalling the first few times we acquire drawables from + // the surfaces... This should probably be fixed in the implementation of mtl_surface! + for(int i=0; i<4; i++) { - printf("Error: couldn't create canvas\n"); - return(-1); + mg_canvas_prepare(orca->canvas); + mg_present(); + mg_canvas_prepare(orca->debugOverlay.canvas); + mg_present(); } -*/ + + ui_init(&orca->debugOverlay.ui); + //NOTE: show window and start runloop - mp_window_bring_to_front(window); - mp_window_focus(window); - - mg_surface mtlSurface = mg_surface_create_for_window(window, MG_BACKEND_DEFAULT); - mg_surface_swap_interval(mtlSurface, 1); - mg_canvas canvas = mg_canvas_create(mtlSurface); - - __orcaApp = (orca_app){.window = window, - .surface = surface, - .mtlSurface = mtlSurface, - .canvas = canvas}; + mp_window_bring_to_front(orca->window); + mp_window_focus(orca->window); pthread_t runloopThread; pthread_create(&runloopThread, 0, orca_runloop, 0); @@ -465,9 +570,9 @@ int main(int argc, char** argv) void* res; pthread_join(runloopThread, &res); -// mg_canvas_destroy(canvas); -// mg_surface_destroy(surface); - mp_window_destroy(window); + mg_canvas_destroy(orca->canvas); + mg_surface_destroy(orca->surface); + mp_window_destroy(orca->window); mp_terminate(); return(0);