-updated tests:

*updated build scripts
 *removed tls variables from code (needed to support WebAssembly)
 *some mmutils tweaks
 *some fixes
 *pthread TLS thread ID implementation
-added Atomic file (reimplementation of atomics templates for emscripten)
-added emscripten support to ecs.std
This commit is contained in:
Mergul 2019-11-25 20:06:16 +00:00
parent 46de0f6adb
commit 946fbf2934
18 changed files with 443 additions and 229 deletions

View file

@ -87,7 +87,7 @@ struct Texture
}
}
static bool function(ref Texture this_, const char[] path) __load;
__gshared bool function(ref Texture this_, const char[] path) __load;
struct Data
{

View file

@ -28,12 +28,12 @@ import cimgui.cimgui;
extern(C):
SDL_Window* g_Window;
ulong g_Time;
bool[3] g_MousePressed;
SDL_Cursor*[ImGuiMouseCursor_COUNT] g_MouseCursors;
char* g_ClipboardTextData;
GLuint g_FontTexture = 0;
__gshared SDL_Window* g_Window;
__gshared ulong g_Time;
__gshared bool[3] g_MousePressed;
__gshared SDL_Cursor*[ImGuiMouseCursor_COUNT] g_MouseCursors;
__gshared char* g_ClipboardTextData;
__gshared GLuint g_FontTexture = 0;
const (char)* ImGuiImplSDL2GetClipboardText(void*)
{
@ -280,7 +280,7 @@ static void ImGui_ImplSDL2_UpdateGamepads()
}
private long frequency;
__gshared private long frequency;
void ImGuiImplSDL2NewFrame(SDL_Window* window)
{

View file

@ -50,6 +50,12 @@ version(D_BetterC)
version(WebAssembly)
{
alias pthread_key_t = uint;
extern (C) int pthread_key_create(pthread_key_t *, void* function(void *)) @nogc nothrow;
extern (C) int pthread_key_delete(pthread_key_t) @nogc nothrow;
extern (C) void* pthread_getspecific(pthread_key_t) @nogc nothrow;
extern (C) int pthread_setspecific(pthread_key_t, const void *) @nogc nothrow;
enum EMSCRIPTEN_RESULT_SUCCESS = 0;
enum EMSCRIPTEN_RESULT_DEFERRED = 1;
@ -109,6 +115,9 @@ version(WebAssembly)
extern (C) void emscripten_cancel_main_loop();
extern (C) int emscripten_request_fullscreen_strategy(const char *target, bool deferUntilInEventHandler, const EmscriptenFullscreenStrategy *fullscreenStrategy);
extern (C) int emscripten_enter_soft_fullscreen(const char *target, const EmscriptenFullscreenStrategy *fullscreenStrategy);
extern (C) void emscripten_main_thread_process_queued_calls();
extern (C) void emscripten_pause_main_loop();
extern (C) void emscripten_resume_main_loop();
alias int time_t;
alias int clockid_t;