Merge pull request 'mp_thread' (#26) from mp_thread into main

Reviewed-on: #26
This commit is contained in:
MartinFouilleul 2023-07-31 18:36:54 +00:00
commit e642c38a4d
3 changed files with 10 additions and 16 deletions

View File

@ -28,12 +28,9 @@ if %target% == milepost (
if %target% == orca ( if %target% == orca (
echo building orca echo building orca
set pthread_dir=..\vcpkg\packages\pthreads_x64-windows
::copy libraries ::copy libraries
copy milepost\bin\milepost.dll bin copy milepost\bin\milepost.dll bin
copy milepost\bin\milepost.dll.lib bin copy milepost\bin\milepost.dll.lib bin
copy %pthread_dir%\bin\pthreadVC3.dll bin
::generate wasm3 api bindings ::generate wasm3 api bindings
python3 scripts\bindgen.py core src\core_api.json^ python3 scripts\bindgen.py core src\core_api.json^
@ -58,8 +55,8 @@ if %target% == orca (
--wasm3-bindings src\io_api_bind_gen.c --wasm3-bindings src\io_api_bind_gen.c
::compile orca ::compile orca
set INCLUDES=/I src /I sdk /I ext\wasm3\source /I milepost\src /I milepost\ext /I %pthread_dir%\include set INCLUDES=/I src /I sdk /I ext\wasm3\source /I milepost\src /I milepost\ext
set LIBS=/LIBPATH:bin /LIBPATH:%pthread_dir%\lib milepost.dll.lib wasm3.lib pthreadVC3.lib set LIBS=/LIBPATH:bin milepost.dll.lib wasm3.lib
cl /Zi /Zc:preprocessor /std:c11 %INCLUDES% src\main.c /link %LIBS% /out:bin\orca.exe cl /Zi /Zc:preprocessor /std:c11 /experimental:c11atomics %INCLUDES% src\main.c /link %LIBS% /out:bin\orca.exe
) )

@ -1 +1 @@
Subproject commit 442d86386ebdc6e119ec765648420b6e096d145d Subproject commit 6221370aa0e8c520ebde179a1e715a8ed2e28611

View File

@ -7,7 +7,6 @@
*****************************************************************/ *****************************************************************/
#include<stdio.h> #include<stdio.h>
#include<errno.h> #include<errno.h>
#include<pthread.h>
#include<math.h> #include<math.h>
#define MG_INCLUDE_GL_API #define MG_INCLUDE_GL_API
@ -306,7 +305,7 @@ void orca_runtime_init(orca_runtime* runtime)
#include"gles_api_bind_gen.c" #include"gles_api_bind_gen.c"
#include"manual_gles_api.c" #include"manual_gles_api.c"
void* orca_runloop(void* user) i32 orca_runloop(void* user)
{ {
orca_app* app = &__orcaApp; orca_app* app = &__orcaApp;
@ -328,7 +327,7 @@ void* orca_runloop(void* user)
options); options);
mp_request_quit(); mp_request_quit();
return((void*)-1); return(-1);
} }
fseek(file, 0, SEEK_END); fseek(file, 0, SEEK_END);
@ -378,7 +377,7 @@ void* orca_runloop(void* user)
options); options);
mp_request_quit(); mp_request_quit();
return((void*)-1); return(-1);
} }
//NOTE: Find and type check event handlers. //NOTE: Find and type check event handlers.
@ -473,7 +472,7 @@ void* orca_runloop(void* user)
options); options);
mp_request_quit(); mp_request_quit();
return((void*)-1); return(-1);
} }
} }
@ -803,8 +802,7 @@ int main(int argc, char** argv)
mp_window_focus(app->window); mp_window_focus(app->window);
mp_window_center(app->window); mp_window_center(app->window);
pthread_t runloopThread; mp_thread* runloopThread = mp_thread_create(orca_runloop, 0);
pthread_create(&runloopThread, 0, orca_runloop, 0);
while(!mp_should_quit()) while(!mp_should_quit())
{ {
@ -812,8 +810,7 @@ int main(int argc, char** argv)
//TODO: what to do with mem scratch here? //TODO: what to do with mem scratch here?
} }
void* res; mp_thread_join(runloopThread, NULL);
pthread_join(runloopThread, &res);
mg_canvas_destroy(app->canvas); mg_canvas_destroy(app->canvas);
mg_surface_destroy(app->surface); mg_surface_destroy(app->surface);