-improved WASM compilation scripts

-added external bindbc.sdl import for WASM
-working on demos (WIP, working simple demo with ECS and SDL2)
-small change in ecs.std
This commit is contained in:
Mergul 2019-11-06 20:38:46 +01:00
parent a8c74d5045
commit 73f2aa6861
60 changed files with 9015 additions and 67 deletions

View file

@ -0,0 +1,130 @@
// Copyright Michael D. Parker 2018.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
module bindbc.sdl.bind.sdlcpuinfo;
import bindbc.sdl.config;
import bindbc.sdl.bind.sdlstdinc : SDL_bool;
enum SDL_CACHELINE_SIZE = 128;
version(BindSDL_Static) {
extern(C) @nogc nothrow {
int SDL_GetCPUCount();
int SDL_GetCPUCacheLineSize();
SDL_bool SDL_HasRDTSC();
SDL_bool SDL_HasAltiVec();
SDL_bool SDL_HasMMX();
SDL_bool SDL_Has3DNow();
SDL_bool SDL_HasSSE();
SDL_bool SDL_HasSSE2();
SDL_bool SDL_HasSSE3();
SDL_bool SDL_HasSSE41();
SDL_bool SDL_HasSSE42();
static if(sdlSupport >= SDLSupport.sdl201) {
int SDL_GetSystemRAM();
}
static if(sdlSupport >= SDLSupport.sdl202) {
SDL_bool SDL_HasAVX();
}
static if(sdlSupport >= SDLSupport.sdl204) {
SDL_bool SDL_HasAVX2();
}
static if(sdlSupport >= SDLSupport.sdl206) {
SDL_bool SDL_HasNEON();
}
static if(sdlSupport >= SDLSupport.sdl209) {
SDL_bool SDL_HasAVX512F();
}
static if(sdlSupport >= SDLSupport.sdl2010) {
size_t SDL_SIMDGetAlignment();
void* SDL_SIMDAlloc(const(size_t));
void SDL_SIMDFree(void*);
}
}
}
else {
extern(C) @nogc nothrow {
alias pSDL_GetCPUCount = int function();
alias pSDL_GetCPUCacheLineSize = int function();
alias pSDL_HasRDTSC = SDL_bool function();
alias pSDL_HasAltiVec = SDL_bool function();
alias pSDL_HasMMX = SDL_bool function();
alias pSDL_Has3DNow = SDL_bool function();
alias pSDL_HasSSE = SDL_bool function();
alias pSDL_HasSSE2 = SDL_bool function();
alias pSDL_HasSSE3 = SDL_bool function();
alias pSDL_HasSSE41 = SDL_bool function();
alias pSDL_HasSSE42 = SDL_bool function();
}
__gshared {
pSDL_GetCPUCount SDL_GetCPUCount;
pSDL_GetCPUCacheLineSize SDL_GetCPUCacheLineSize;
pSDL_HasRDTSC SDL_HasRDTSC;
pSDL_HasAltiVec SDL_HasAltiVec;
pSDL_HasMMX SDL_HasMMX;
pSDL_Has3DNow SDL_Has3DNow;
pSDL_HasSSE SDL_HasSSE;
pSDL_HasSSE2 SDL_HasSSE2;
pSDL_HasSSE3 SDL_HasSSE3;
pSDL_HasSSE41 SDL_HasSSE41;
pSDL_HasSSE42 SDL_HasSSE42;
}
static if(sdlSupport >= SDLSupport.sdl201) {
extern(C) @nogc nothrow {
alias pSDL_GetSystemRAM = int function();
}
__gshared {
pSDL_GetSystemRAM SDL_GetSystemRAM;
}
}
static if(sdlSupport >= SDLSupport.sdl202) {
extern(C) @nogc nothrow {
alias pSDL_HasAVX = SDL_bool function();
}
__gshared {
pSDL_HasAVX SDL_HasAVX;
}
}
static if(sdlSupport >= SDLSupport.sdl204) {
extern(C) @nogc nothrow {
alias pSDL_HasAVX2 = SDL_bool function();
}
__gshared {
pSDL_HasAVX2 SDL_HasAVX2;
}
}
static if(sdlSupport >= SDLSupport.sdl206) {
extern(C) @nogc nothrow {
alias pSDL_HasNEON = SDL_bool function();
}
__gshared {
pSDL_HasNEON SDL_HasNEON;
}
}
static if(sdlSupport >= SDLSupport.sdl209) {
extern(C) @nogc nothrow {
alias pSDL_HasAVX512F = SDL_bool function();
}
__gshared {
pSDL_HasAVX512F SDL_HasAVX512F;
}
}
static if(sdlSupport >= SDLSupport.sdl2010) {
extern(C) @nogc nothrow {
alias pSDL_SIMDGetAlignment = size_t function();
alias pSDL_SIMDAlloc = void* function(const(size_t));
alias pSDL_SIMDFree = void function(void*);
}
__gshared {
pSDL_SIMDGetAlignment SDL_SIMDGetAlignment;
pSDL_SIMDAlloc SDL_SIMDAlloc;
pSDL_SIMDFree SDL_SIMDFree;
}
}
}