-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,140 @@
// 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.sdlmouse;
import bindbc.sdl.config;
import bindbc.sdl.bind.sdlstdinc : SDL_bool;
import bindbc.sdl.bind.sdlsurface : SDL_Surface;
import bindbc.sdl.bind.sdlvideo : SDL_Window;
struct SDL_Cursor;
enum SDL_SystemCursor {
SDL_SYSTEM_CURSOR_ARROW,
SDL_SYSTEM_CURSOR_IBEAM,
SDL_SYSTEM_CURSOR_WAIT,
SDL_SYSTEM_CURSOR_CROSSHAIR,
SDL_SYSTEM_CURSOR_WAITARROW,
SDL_SYSTEM_CURSOR_SIZENWSE,
SDL_SYSTEM_CURSOR_SIZENESW,
SDL_SYSTEM_CURSOR_SIZEWE,
SDL_SYSTEM_CURSOR_SIZENS,
SDL_SYSTEM_CURSOR_SIZEALL,
SDL_SYSTEM_CURSOR_NO,
SDL_SYSTEM_CURSOR_HAND,
SDL_NUM_SYSTEM_CURSORS
}
alias SDL_SYSTEM_CURSOR_ARROW = SDL_SystemCursor.SDL_SYSTEM_CURSOR_ARROW;
alias SDL_SYSTEM_CURSOR_IBEAM = SDL_SystemCursor.SDL_SYSTEM_CURSOR_IBEAM;
alias SDL_SYSTEM_CURSOR_WAIT = SDL_SystemCursor.SDL_SYSTEM_CURSOR_WAIT;
alias SDL_SYSTEM_CURSOR_CROSSHAIR = SDL_SystemCursor.SDL_SYSTEM_CURSOR_CROSSHAIR;
alias SDL_SYSTEM_CURSOR_WAITARROW = SDL_SystemCursor.SDL_SYSTEM_CURSOR_WAITARROW;
alias SDL_SYSTEM_CURSOR_SIZENWSE = SDL_SystemCursor.SDL_SYSTEM_CURSOR_SIZENWSE;
alias SDL_SYSTEM_CURSOR_SIZENESW = SDL_SystemCursor.SDL_SYSTEM_CURSOR_SIZENESW;
alias SDL_SYSTEM_CURSOR_SIZEWE = SDL_SystemCursor.SDL_SYSTEM_CURSOR_SIZEWE;
alias SDL_SYSTEM_CURSOR_SIZENS = SDL_SystemCursor.SDL_SYSTEM_CURSOR_SIZENS;
alias SDL_SYSTEM_CURSOR_SIZEALL = SDL_SystemCursor.SDL_SYSTEM_CURSOR_SIZEALL;
alias SDL_SYSTEM_CURSOR_NO = SDL_SystemCursor.SDL_SYSTEM_CURSOR_NO;
alias SDL_SYSTEM_CURSOR_HAND = SDL_SystemCursor.SDL_SYSTEM_CURSOR_HAND;
alias SDL_NUM_SYSTEM_CURSORS = SDL_SystemCursor.SDL_NUM_SYSTEM_CURSORS;
enum SDL_BUTTON(ubyte x) = 1 << (x-1);
enum : ubyte {
SDL_BUTTON_LEFT = 1,
SDL_BUTTON_MIDDLE = 2,
SDL_BUTTON_RIGHT = 3,
SDL_BUTTON_X1 = 4,
SDL_BUTTON_X2 = 5,
SDL_BUTTON_LMASK = SDL_BUTTON!(SDL_BUTTON_LEFT),
SDL_BUTTON_MMASK = SDL_BUTTON!(SDL_BUTTON_MIDDLE),
SDL_BUTTON_RMASK = SDL_BUTTON!(SDL_BUTTON_RIGHT),
SDL_BUTTON_X1MASK = SDL_BUTTON!(SDL_BUTTON_X1),
SDL_BUTTON_X2MASK = SDL_BUTTON!(SDL_BUTTON_X2),
}
static if(sdlSupport >= SDLSupport.sdl204) {
enum SDL_MouseWheelDirection {
SDL_MOUSEWHEEL_NORMAL,
SDL_MOUSEWHEEL_FLIPPED,
}
}
version(BindSDL_Static) {
extern(C) @nogc nothrow {
SDL_Window* SDL_GetMouseFocus();
uint SDL_GetMouseState(int*,int*);
uint SDL_GetRelativeMouseState(int*,int*);
void SDL_WarpMouseInWindow(SDL_Window*,int,int);
int SDL_SetRelativeMouseMode(SDL_bool);
SDL_bool SDL_GetRelativeMouseMode();
SDL_Cursor* SDL_CreateCursor(const(ubyte)*,const(ubyte)*,int,int,int,int);
SDL_Cursor* SDL_CreateColorCursor(SDL_Surface*,int,int);
SDL_Cursor* SDL_CreateSystemCursor(SDL_SystemCursor);
void SDL_SetCursor(SDL_Cursor*);
SDL_Cursor* SDL_GetCursor();
SDL_Cursor* SDL_GetDefaultCursor();
void SDL_FreeCursor(SDL_Cursor*);
int SDL_ShowCursor(int);
static if(sdlSupport >= SDLSupport.sdl204) {
int SDL_CaptureMouse(SDL_bool);
uint SDL_GetGlobalMouseState(int*,int*);
void SDL_WarpMouseGlobal(int,int);
}
}
}
else {
extern(C) @nogc nothrow {
alias pSDL_GetMouseFocus = SDL_Window* function();
alias pSDL_GetMouseState = uint function(int*,int*);
alias pSDL_GetRelativeMouseState = uint function(int*,int*);
alias pSDL_WarpMouseInWindow = void function(SDL_Window*,int,int);
alias pSDL_SetRelativeMouseMode = int function(SDL_bool);
alias pSDL_GetRelativeMouseMode = SDL_bool function();
alias pSDL_CreateCursor = SDL_Cursor* function(const(ubyte)*,const(ubyte)*,int,int,int,int);
alias pSDL_CreateColorCursor = SDL_Cursor* function(SDL_Surface*,int,int);
alias pSDL_CreateSystemCursor = SDL_Cursor* function(SDL_SystemCursor);
alias pSDL_SetCursor = void function(SDL_Cursor*);
alias pSDL_GetCursor = SDL_Cursor* function();
alias pSDL_GetDefaultCursor = SDL_Cursor* function();
alias pSDL_FreeCursor = void function(SDL_Cursor*);
alias pSDL_ShowCursor = int function(int);
}
__gshared {
pSDL_GetMouseFocus SDL_GetMouseFocus;
pSDL_GetMouseState SDL_GetMouseState;
pSDL_GetRelativeMouseState SDL_GetRelativeMouseState;
pSDL_WarpMouseInWindow SDL_WarpMouseInWindow;
pSDL_SetRelativeMouseMode SDL_SetRelativeMouseMode;
pSDL_GetRelativeMouseMode SDL_GetRelativeMouseMode;
pSDL_CreateCursor SDL_CreateCursor;
pSDL_CreateColorCursor SDL_CreateColorCursor;
pSDL_CreateSystemCursor SDL_CreateSystemCursor;
pSDL_SetCursor SDL_SetCursor;
pSDL_GetCursor SDL_GetCursor;
pSDL_GetDefaultCursor SDL_GetDefaultCursor;
pSDL_FreeCursor SDL_FreeCursor;
pSDL_ShowCursor SDL_ShowCursor;
}
static if(sdlSupport >= SDLSupport.sdl204) {
extern(C) @nogc nothrow {
alias pSDL_CaptureMouse = int function(SDL_bool);
alias pSDL_GetGlobalMouseState = uint function(int*,int*);
alias pSDL_WarpMouseGlobal = void function(int,int);
}
__gshared {
pSDL_CaptureMouse SDL_CaptureMouse;
pSDL_GetGlobalMouseState SDL_GetGlobalMouseState;
pSDL_WarpMouseGlobal SDL_WarpMouseGlobal;
}
}
}