-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:
parent
46de0f6adb
commit
946fbf2934
18 changed files with 443 additions and 229 deletions
|
|
@ -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";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue