-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,152 @@
// 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.sdlsystem;
import bindbc.sdl.config;
import bindbc.sdl.bind.sdlrender : SDL_Renderer;
import bindbc.sdl.bind.sdlstdinc : SDL_bool;
version(Android) {
enum int SDL_ANDROID_EXTERNAL_STORAGE_READ = 0x01;
enum int SDL_ANDROID_EXTERNAL_STORAGE_WRITE = 0x02;
}
static if(sdlSupport >= SDLSupport.sdl201) {
version(Windows) struct IDirect3DDevice9;
}
static if(sdlSupport >= SDLSupport.sdl204) {
version(Windows) {
extern(C) nothrow alias SDL_WindowsMessageHook = void function(void*,void*,uint,ulong,long);
}
}
version(BindSDL_Static) {
extern(C) @nogc nothrow {
version(Android) {
void* SDL_AndroidGetJNIEnv();
void* SDL_AndroidGetActivity();
const(char)* SDL_AndroidGetInternalStoragePath();
int SDL_AndroidGetInternalStorageState();
const(char)* SDL_AndroidGetExternalStoragePath();
static if(sdlSupport >= SDLSupport.sdl208) {
SDL_bool SDL_IsAndroidTV();
}
static if(sdlSupport >= SDLSupport.sdl209) {
SDL_bool SDL_IsChromebook();
SDL_bool SDL_IsDeXMode();
void SDL_AndroidBackButton();
}
}
else version(Windows) {
static if(sdlSupport >= SDLSupport.sdl201) {
int SDL_Direct3D9GetAdapterIndex(int);
IDirect3DDevice9* SDL_RenderGetD3D9Device(SDL_Renderer*);
}
static if(sdlSupport >= SDLSupport.sdl202) {
SDL_bool SDL_DXGIGetOutputInfo(int,int*,int*);
}
static if(sdlSupport >= SDLSupport.sdl204) {
void SDL_SetWindowsMessageHook(SDL_WindowsMessageHook,void*);
}
}
else version(linux) {
static if(sdlSupport >= SDLSupport.sdl209) {
int SDL_LinuxSetThreadPriority(long,int);
}
}
}
}
else {
version(Android) {
extern(C) @nogc nothrow {
alias pSDL_AndroidGetJNIEnv = void* function();
alias pSDL_AndroidGetActivity = void* function();
alias pSDL_AndroidGetInternalStoragePath = const(char)* function();
alias pSDL_AndroidGetInternalStorageState = int function();
alias pSDL_AndroidGetExternalStoragePath = const(char)* function();
}
__gshared {
pSDL_AndroidGetJNIEnv SDL_AndroidGetJNIEnv;
pSDL_AndroidGetActivity SDL_AndroidGetActivity;
pSDL_AndroidGetInternalStoragePath SDL_AndroidGetInternalStoragePath;
pSDL_AndroidGetInternalStorageState SDL_AndroidGetInternalStorageState;
pSDL_AndroidGetExternalStoragePath SDL_AndroidGetExternalStoragePath;
}
static if(sdlSupport >= SDLSupport.sdl208) {
extern(C) @nogc nothrow {
alias pSDL_IsAndroidTV = SDL_bool function();
}
__gshared {
pSDL_IsAndroidTV SDL_IsAndroidTV;
}
}
static if(sdlSupport >= SDLSupport.sdl209) {
extern(C) @nogc nothrow {
alias pSDL_IsChromebook = SDL_bool function();
alias pSDL_IsDeXMode = SDL_bool function();
alias pSDL_AndroidBackButton = void function();
}
__gshared {
pSDL_IsChromebook SDL_IsChromebook;
pSDL_IsDeXMode SDL_IsDeXMode;
pSDL_AndroidBackButton SDL_AndroidBackButton;
}
}
}
else version(Windows) {
static if(sdlSupport >= SDLSupport.sdl201) {
extern(C) @nogc nothrow {
alias pSDL_Direct3D9GetAdapterIndex = int function(int);
alias pSDL_RenderGetD3D9Device = IDirect3DDevice9* function(SDL_Renderer*);
}
__gshared {
pSDL_Direct3D9GetAdapterIndex SDL_Direct3D9GetAdapterIndex ;
pSDL_RenderGetD3D9Device SDL_RenderGetD3D9Device;
}
}
static if(sdlSupport >= SDLSupport.sdl202) {
extern(C) @nogc nothrow {
alias pSDL_DXGIGetOutputInfo = SDL_bool function(int,int*,int*);
}
__gshared {
pSDL_DXGIGetOutputInfo SDL_DXGIGetOutputInfo;
}
}
static if(sdlSupport >= SDLSupport.sdl204) {
extern(C) @nogc nothrow {
alias pSDL_SetWindowsMessageHook = void function(SDL_WindowsMessageHook,void*);
}
__gshared {
pSDL_SetWindowsMessageHook SDL_SetWindowsMessageHook;
}
}
}
else version(linux) {
static if(sdlSupport >= SDLSupport.sdl209) {
extern(C) @nogc nothrow {
alias pSDL_LinuxSetThreadPriority = int function(long,int);
}
__gshared {
pSDL_LinuxSetThreadPriority SDL_LinuxSetThreadPriority;
}
}
}
}