-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

@ -10,22 +10,9 @@ import ecs.system;
import ecs.attributes;
import ecs.core;
version(WebAssembly)
{
extern(C) int printf(scope const char* format, ...) @nogc nothrow @system;
/*{
return 0;
}*/
//import core.stdc.stdio : printf;
/*struct Time
{
static long getUSecTime()
{
return 0;
}
}*/
alias int time_t;
alias int clockid_t;
@ -52,11 +39,6 @@ version(WebAssembly)
//time = spec.tv_sec;
return spec.tv_sec * 1000_000 + spec.tv_nsec / 1000;//time / 1000_000;
/*LARGE_INTEGER time, freq;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&time);
return time.QuadPart / (freq.QuadPart / 1000_000);*/
}
}
@ -92,11 +74,6 @@ else version(Posix)
//time = spec.tv_sec;
return spec.tv_sec * 1000_000 + spec.tv_nsec / 1000;//time / 1000_000;
/*LARGE_INTEGER time, freq;
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&time);
return time.QuadPart / (freq.QuadPart / 1000_000);*/
}
}
}
@ -380,11 +357,6 @@ struct TestSystemWithHighPriority
{
}
/*void handleEvent(Event event, ref TestComp comp)
{
}*/
}
struct Sys1
@ -468,12 +440,7 @@ struct TestSystem2
//TestComp* tt;
}
/*void handleEvent(EventInput input)
{
}*/
void handleEvent(/*EventInput input, */Entity* entity, ref TestEvent event)
void handleEvent(Entity* entity, ref TestEvent event)
{
TestComp3* test = entity.getComponent!TestComp3;
test.bg = event.a;
@ -482,7 +449,7 @@ struct TestSystem2
gEM.sendEvent(entity.id, event2);
}
void handleEvent(/*EventInput input, */Entity* entity, ref TestEvent2 event)
void handleEvent(Entity* entity, ref TestEvent2 event)
{
TestComp3* test = entity.getComponent!TestComp3;
test.gg = cast(uint) event.a;
@ -532,17 +499,11 @@ struct TestSystem2
}
}
/*void handleEvent(Event event, ref TestComp comp)
{
}*/
}
extern(C) int main()
{
void dispatch(EntityManager.JobGroup jobs) nothrow @nogc
{
foreach (job; jobs.jobs)
@ -552,6 +513,11 @@ extern(C) int main()
}
}
uint getID() nothrow @nogc
{
return 0;
}
void writeEntityComponents(Entity* entity)
{
@ -574,12 +540,10 @@ extern(C) int main()
////writeln((cast(uint*) pp)[0 .. 14], " ", pp);
}
/*int a = 0;
if(!a)assert(0);*/
EntityManager.initialize(1);
gEM.setJobDispachFunc(&dispatch);
//gEM.setJobDispachFunc(&dispatch);
gEM.setMultithreadingCallbacks(&dispatch, &getID);
//assert(gEM !is null);
gEM.beginRegister();
@ -612,7 +576,7 @@ extern(C) int main()
gEM.registerSystem!Sys2(-100);
gEM.registerSystem!Sys3(-2);
//gEM.registerSystem!TestSystemWithHighPriority(100);
//gEM.registerSystem!TestSystem2(0);*/
//gEM.registerSystem!TestSystem2(0);
gEM.endRegister();
/*dur = (MonoTime.currTime - time).total!"usecs";