From 73f2aa6861990187b630890a6d769c5319d1da72 Mon Sep 17 00:00:00 2001 From: Mergul Date: Wed, 6 Nov 2019 20:38:46 +0100 Subject: [PATCH] -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 --- compile_wasm.py | 125 ++- demos/.gitignore | 12 + demos/SDL2.dll | Bin 0 -> 1401344 bytes demos/SDL2_image.dll | Bin 0 -> 125440 bytes demos/assets/textures/buckler.png | Bin 0 -> 575 bytes demos/compile_wasm.py | 93 +++ .../imports/bindbc/sdl/bind/package.d | 46 ++ demos/external/imports/bindbc/sdl/bind/sdl.d | 69 ++ .../imports/bindbc/sdl/bind/sdlassert.d | 70 ++ .../imports/bindbc/sdl/bind/sdlaudio.d | 283 +++++++ .../imports/bindbc/sdl/bind/sdlblendmode.d | 71 ++ .../imports/bindbc/sdl/bind/sdlclipboard.d | 31 + .../imports/bindbc/sdl/bind/sdlcpuinfo.d | 130 ++++ .../imports/bindbc/sdl/bind/sdlerror.d | 28 + .../imports/bindbc/sdl/bind/sdlevents.d | 674 +++++++++++++++++ .../imports/bindbc/sdl/bind/sdlfilesystem.d | 31 + .../bindbc/sdl/bind/sdlgamecontroller.d | 225 ++++++ .../imports/bindbc/sdl/bind/sdlgesture.d | 36 + .../imports/bindbc/sdl/bind/sdlhaptic.d | 240 ++++++ .../imports/bindbc/sdl/bind/sdlhints.d | 186 +++++ .../imports/bindbc/sdl/bind/sdljoystick.d | 231 ++++++ .../imports/bindbc/sdl/bind/sdlkeyboard.d | 80 ++ .../imports/bindbc/sdl/bind/sdlkeycode.d | 288 +++++++ .../imports/bindbc/sdl/bind/sdlloadso.d | 28 + .../external/imports/bindbc/sdl/bind/sdllog.d | 107 +++ .../imports/bindbc/sdl/bind/sdlmessagebox.d | 75 ++ .../imports/bindbc/sdl/bind/sdlmouse.d | 140 ++++ .../imports/bindbc/sdl/bind/sdlpixels.d | 283 +++++++ .../imports/bindbc/sdl/bind/sdlplatform.d | 22 + .../imports/bindbc/sdl/bind/sdlpower.d | 33 + .../imports/bindbc/sdl/bind/sdlrect.d | 80 ++ .../imports/bindbc/sdl/bind/sdlrender.d | 316 ++++++++ .../imports/bindbc/sdl/bind/sdlrwops.d | 208 +++++ .../imports/bindbc/sdl/bind/sdlscancode.d | 542 +++++++++++++ .../imports/bindbc/sdl/bind/sdlshape.d | 63 ++ .../imports/bindbc/sdl/bind/sdlstdinc.d | 42 ++ .../imports/bindbc/sdl/bind/sdlsurface.d | 230 ++++++ .../imports/bindbc/sdl/bind/sdlsystem.d | 152 ++++ .../imports/bindbc/sdl/bind/sdlsyswm.d | 240 ++++++ .../imports/bindbc/sdl/bind/sdltimer.d | 51 ++ .../imports/bindbc/sdl/bind/sdltouch.d | 67 ++ .../imports/bindbc/sdl/bind/sdlversion.d | 83 ++ .../imports/bindbc/sdl/bind/sdlvideo.d | 677 +++++++++++++++++ .../imports/bindbc/sdl/bind/sdlvulkan.d | 45 ++ demos/external/imports/bindbc/sdl/config.d | 44 ++ demos/external/imports/bindbc/sdl/dynload.d | 712 ++++++++++++++++++ demos/external/imports/bindbc/sdl/image.d | 353 +++++++++ demos/external/imports/bindbc/sdl/mixer.d | 569 ++++++++++++++ demos/external/imports/bindbc/sdl/package.d | 18 + demos/external/imports/bindbc/sdl/ttf.d | 368 +++++++++ demos/libpng16-16.dll | Bin 0 -> 210944 bytes demos/simple/dub.json | 50 ++ demos/simple/source/app.d | 216 ++++++ demos/simple/source/utils/texture.d | 49 ++ demos/simple/source/utils/utils.d | 110 +++ demos/utils/dub.json | 50 ++ demos/utils/source/ecs_utils/math/matrix.d | 6 + demos/utils/source/ecs_utils/math/vector.d | 100 +++ demos/zlib1.dll | Bin 0 -> 108544 bytes source/ecs/std.d | 4 +- 60 files changed, 9015 insertions(+), 67 deletions(-) create mode 100644 demos/.gitignore create mode 100644 demos/SDL2.dll create mode 100644 demos/SDL2_image.dll create mode 100644 demos/assets/textures/buckler.png create mode 100644 demos/compile_wasm.py create mode 100644 demos/external/imports/bindbc/sdl/bind/package.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdl.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlassert.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlaudio.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlblendmode.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlclipboard.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlcpuinfo.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlerror.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlevents.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlfilesystem.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlgamecontroller.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlgesture.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlhaptic.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlhints.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdljoystick.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlkeyboard.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlkeycode.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlloadso.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdllog.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlmessagebox.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlmouse.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlpixels.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlplatform.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlpower.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlrect.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlrender.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlrwops.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlscancode.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlshape.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlstdinc.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlsurface.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlsystem.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlsyswm.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdltimer.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdltouch.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlversion.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlvideo.d create mode 100644 demos/external/imports/bindbc/sdl/bind/sdlvulkan.d create mode 100644 demos/external/imports/bindbc/sdl/config.d create mode 100644 demos/external/imports/bindbc/sdl/dynload.d create mode 100644 demos/external/imports/bindbc/sdl/image.d create mode 100644 demos/external/imports/bindbc/sdl/mixer.d create mode 100644 demos/external/imports/bindbc/sdl/package.d create mode 100644 demos/external/imports/bindbc/sdl/ttf.d create mode 100644 demos/libpng16-16.dll create mode 100644 demos/simple/dub.json create mode 100644 demos/simple/source/app.d create mode 100644 demos/simple/source/utils/texture.d create mode 100644 demos/simple/source/utils/utils.d create mode 100644 demos/utils/dub.json create mode 100644 demos/utils/source/ecs_utils/math/matrix.d create mode 100644 demos/utils/source/ecs_utils/math/vector.d create mode 100644 demos/zlib1.dll diff --git a/compile_wasm.py b/compile_wasm.py index 663ef19..da42783 100644 --- a/compile_wasm.py +++ b/compile_wasm.py @@ -2,11 +2,47 @@ import os import ntpath import sys +def compile(sources, output): + files = [] + # r=root, d=directories, f = files + for path in sources: + for r, d, f in os.walk(path): + for file in f: + if ntpath.basename(file) != 'win_dll.d': + filename, file_extension = os.path.splitext(file) + if file_extension == '.d' and filename != 'package': + files.append(os.path.join(r, file)) + + ldc_cmd = 'ldc2 ' + shared_flags + ldc_flags + '-oq -mtriple=wasm32-unknown-unknown-wasm -betterC -L-allow-undefined --output-bc --od=.bc --singleobj --checkaction=C --of=' + output + ' ' + + for path in sources: + ldc_cmd += '-I' + path + ' ' + + for path in import_paths: + ldc_cmd += '-I' + path + ' ' + + for f in files: + ldc_cmd += f + ' ' + + print ldc_cmd + + if os.system(ldc_cmd): + exit(0) + print + shared_flags = '' clean = 0 +emc_flags = '' +ldc_flags = '' +import_paths = ['source','tests'] +build_tests = 0 -for arg in sys.argv: - if(arg == '-O3'): +for arg in sys.argv[1:]: + if(arg == '-release'): + ldc_flags += '-release ' + elif(arg == '-enable-inlining'): + ldc_flags += '-enable-inlining ' + elif(arg == '-O3'): shared_flags += '-O3 ' elif(arg == '-O2'): shared_flags += '-O2 ' @@ -20,71 +56,30 @@ for arg in sys.argv: shared_flags += '-Oz ' elif(arg == '-g'): shared_flags += '-g ' - elif(arg == '--clean'): - clean = 1 - -if clean == 1: - for path in ['bc']: - for r, d, f in os.walk(path): - for file in f: - filename, file_extension = os.path.splitext(file) - if file_extension == '.bc': - print('remove ' + os.path.join(r, file)) - os.remove(os.path.join(r, file)) - exit() - - -paths = ['tests', 'source'] - -files = [] -# r=root, d=directories, f = files -for path in paths: - for r, d, f in os.walk(path): - for file in f: - if ntpath.basename(file) != 'win_dll.d': - filename, file_extension = os.path.splitext(file) - if file_extension == '.d': - files.append(os.path.join(r, file)) - - -print('files:') -for f in files: - print(f) -print - -ldc_cmd = 'ldc2 ' + shared_flags + '-mtriple=wasm32-unknown-unknown-wasm -betterC -L-allow-undefined --output-bc --od=bc --checkaction=C ' - -for path in paths: - ldc_cmd += '-I' + path + ' ' + elif(arg == '--build-tests'): + build_tests = 1 + elif(arg == '--llvm-lto'): + emc_flags += '--llvm-lto 3 ' + elif(arg == '--simd'): + emc_flags += '-s SIMD=1 ' + elif(arg == '-opt'): + shared_flags += '-O3 ' + ldc_flags += '-release -enable-inlining ' + emc_flags += '--llvm-lto 3 -s SIMD=1 ' + else: + print('unknown argument: ' + arg) + exit() -for f in files: - ldc_cmd += f + ' ' - -print ldc_cmd - -os.system(ldc_cmd) - -print - -files = [] -# r=root, d=directories, f = files -for path in ['bc']: - for r, d, f in os.walk(path): - for file in f: - filename, file_extension = os.path.splitext(file) - if file_extension == '.bc': - files.append(os.path.join(r, file)) +compile(['source'], 'ecs.bc') + +if build_tests == 0: + exit(0) + +compile(['tests'], 'tests.bc') - -print('BC files:') -for f in files: - print(f) -print - -emcc_cmd = 'emcc -v ' + shared_flags + '-s ALLOW_MEMORY_GROWTH=1 -s MALLOC=dlmalloc -s WASM=1 -o index.html ' - -for f in files: - emcc_cmd += f + ' ' +emcc_cmd = 'emcc -v ' + shared_flags + emc_flags + '-s ALLOW_MEMORY_GROWTH=1 -s MALLOC=dlmalloc -s WASM=1 -o index.html ' + +emcc_cmd += 'ecs.bc tests.bc' print emcc_cmd diff --git a/demos/.gitignore b/demos/.gitignore new file mode 100644 index 0000000..c799805 --- /dev/null +++ b/demos/.gitignore @@ -0,0 +1,12 @@ +* +!*/ +!**/dub.json +!libs/ +!*.dll +!utils/**/*.d +!simple/**/*.d +!launcher/**/*.d +!assets/** +!external/**/*.d +!.gitignore +!compile_wasm.py \ No newline at end of file diff --git a/demos/SDL2.dll b/demos/SDL2.dll new file mode 100644 index 0000000000000000000000000000000000000000..0edb386ee53cea568b80bf02306c9b256455ba0d GIT binary patch literal 1401344 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

B9_8fdI(TPE{Fb1CVgV-){zJ7y@Dg}nuTv{xn{ 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²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 hDPtF0CTiN7a>^tpU&b_-5txo$EJB>~9^F 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∓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

  • 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

    _cLxV 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 literal 0 HcmV?d00001 diff --git a/demos/SDL2_image.dll b/demos/SDL2_image.dll new file mode 100644 index 0000000000000000000000000000000000000000..d7016555aee06c8480f66c2cb1ad5ed15c8f1856 GIT binary patch literal 125440 zcmd44e|%KM)jz&B*+9Y%Z^T4Xf0SrfO%ySyQnR9MF1Z`-!Um)KkX9;aFrp%&>;kq3 ziFX$=UM`J-K3cW)X?l80;28)NCH$%f+C;~2CRB73m8#DKw&@cGjngUsO|Ig z_5J6Ym$LKY%*>fHXU?2Cb7pSUFB(0W9*@V1|5GWCrwPCGSI+4bI3I?ukks&nNgF*++%}B$vP%Zs))h&JcK0Jc}aq zH&-McpOWFE6!K(ImV&&JzMsC7+zd}O5uq@{6FLRI)ft{LB21U$S(rmm&fkm-&o^%P zdwvVcGdxA#lRoQ58J+^F@1OjQ4BxUajJ#eQ{UsEs?}Sg<-waRnjFB^M3g3jZZc2X& zFx2e^{HFbtduGH(-Xj3(EwY7N-uZd_I(?U=r`}48h~&f059;d_{X>5 zN&t7u?7INSd18iBpYX;ULKb)hra%L`#Yx<_b8#XGFl}VGYpF*`2Y3%I~+Z^kZW37NT@*n$5@|4CA zUqO7D+Nv4nd=jVnN8Nf_hKJ?f%k$S$)!mx>*VD9EJe;%6Lj9>7$xk%nk~Tma0gv9B z5ti2t2blF!plXjoiI8#rdgKO;AwKKwd4z2%6)z7Nm%PN&t31}vd3uYcAIjGJM-~jx zi~$7mS*ksm)Ywt$nR-;v3OR(oV5^r)rqZ~Rpe@U^|Bj5*Ryno_zqe?H_xutBfPNwG z#nfyd@#L@!^pVj2A=NEw{*Azu`k*p$--zX8=x6k zV>t*0DjpshWY&5DKu=TcsjMM~B##(HeN)j5H%|YhGEMpA#=gNTL|^zLb*N}FdNm-m zEiylOmHxF9$+8yR1#-LP4lW@O%D4n@#Yivhr25`PdS9d|J@OD*N?r^W%+kNkjGWh3 z(@Fuv(P5jdJ2*m-jM9V5QZT3~{Bc(0UET;j)j+62uY-O-+2hfVNs$XeO!bwqNxsW9 z7V;HY-E%@(mh~ilH8blG{A`qms~(S-GDcPdQrNcGmhe^VE&UTIJdm}}�b_8R3DeGs0u_ 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 SDLSupport.sdl209) { + enum : uint { + SDL_INIT_TIMER = 0x00000001, + SDL_INIT_AUDIO = 0x00000010, + SDL_INIT_VIDEO = 0x00000020, + SDL_INIT_JOYSTICK = 0x00000200, + SDL_INIT_HAPTIC = 0x00001000, + SDL_INIT_GAMECONTROLLER = 0x00002000, + SDL_INIT_EVENTS = 0x00004000, + SDL_INIT_SENSOR = 0x00008000, + SDL_INIT_NOPARACHUTE = 0x00100000, + SDL_INIT_EVERYTHING = + SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | + SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER | + SDL_INIT_EVENTS | SDL_INIT_SENSOR + } +} else { + enum : uint { + SDL_INIT_TIMER = 0x00000001, + SDL_INIT_AUDIO = 0x00000010, + SDL_INIT_VIDEO = 0x00000020, + SDL_INIT_JOYSTICK = 0x00000200, + SDL_INIT_HAPTIC = 0x00001000, + SDL_INIT_GAMECONTROLLER = 0x00002000, + SDL_INIT_EVENTS = 0x00004000, + SDL_INIT_NOPARACHUTE = 0x00100000, + SDL_INIT_EVERYTHING = + SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | + SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | SDL_INIT_GAMECONTROLLER | + SDL_INIT_EVENTS + } +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int SDL_Init(uint); + int SDL_InitSubSystem(uint); + void SDL_QuitSubSystem(uint); + uint SDL_WasInit(uint); + void SDL_Quit(); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_Init = int function(uint); + alias pSDL_InitSubSystem = int function(uint); + alias pSDL_QuitSubSystem = void function(uint); + alias pSDL_WasInit = uint function(uint); + alias pSDL_Quit = void function(); + } + + __gshared { + pSDL_Init SDL_Init; + pSDL_InitSubSystem SDL_InitSubSystem; + pSDL_QuitSubSystem SDL_QuitSubSystem; + pSDL_WasInit SDL_WasInit; + pSDL_Quit SDL_Quit; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlassert.d b/demos/external/imports/bindbc/sdl/bind/sdlassert.d new file mode 100644 index 0000000..784e0e8 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlassert.d @@ -0,0 +1,70 @@ + +// 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.sdlassert; + +import bindbc.sdl.config; + +enum SDL_assert_state : uint { + SDL_ASSERTION_RETRY = 0, + SDL_ASSERTION_BREAK = 1, + SDL_ASSERTION_ABORT = 2, + SDL_ASSERTION_IGNORE = 3, + SDL_ASSERTION_ALWAYS_IGNORE = 4 +} +alias SDL_AssertState = SDL_assert_state; +mixin(expandEnum!SDL_AssertState); + +struct SDL_assert_data { + int always_ignore; + uint trigger_count; + const(char) *condition; + const(char) *filename; + int linenum; + const(char) *function_; + const(SDL_assert_data) *next; +} +alias SDL_AssertData = SDL_assert_data; + +extern(C) nothrow alias SDL_AssertionHandler = SDL_AssertState function(const(SDL_AssertData)* data, void* userdata); + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + void SDL_SetAssertionHandler(SDL_AssertionHandler,void*); + const(SDL_assert_data)* SDL_GetAssertionReport(); + void SDL_ResetAssertionReport(); + + static if(sdlSupport >= SDLSupport.sdl202) { + SDL_AssertionHandler SDL_GetAssertionHandler(void**); + SDL_AssertionHandler SDL_GetDefaultAssertionHandler(); + } + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_SetAssertionHandler = void function(SDL_AssertionHandler,void*); + alias pSDL_GetAssertionReport = const(SDL_assert_data)* function(); + alias pSDL_ResetAssertionReport = void function(); + } + + __gshared { + pSDL_SetAssertionHandler SDL_SetAssertionHandler; + pSDL_GetAssertionReport SDL_GetAssertionReport; + pSDL_ResetAssertionReport SDL_ResetAssertionReport; + } + + static if(sdlSupport >= SDLSupport.sdl202) { + extern(C) @nogc nothrow { + alias pSDL_GetAssertionHandler = SDL_AssertionHandler function(void**); + alias pSDL_GetDefaultAssertionHandler = SDL_AssertionHandler function(); + } + + __gshared { + pSDL_GetAssertionHandler SDL_GetAssertionHandler; + pSDL_GetDefaultAssertionHandler SDL_GetDefaultAssertionHandler; + } + } +} diff --git a/demos/external/imports/bindbc/sdl/bind/sdlaudio.d b/demos/external/imports/bindbc/sdl/bind/sdlaudio.d new file mode 100644 index 0000000..3cb37d8 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlaudio.d @@ -0,0 +1,283 @@ + +// 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.sdlaudio; + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlrwops; + +enum : ushort { + SDL_AUDIO_MASK_BITSIZE = 0xFF, + SDL_AUDIO_MASK_DATATYPE = 1<<8, + SDL_AUDIO_MASK_ENDIAN = 1<<12, + SDL_AUDIO_MASK_SIGNED = 1<<15, +} + +enum SDL_AudioFormat : ushort { + AUDIO_U8 = 0x0008, + AUDIO_S8 = 0x8008, + AUDIO_U16LSB = 0x0010, + AUDIO_S16LSB = 0x8010, + AUDIO_U16MSB = 0x1010, + AUDIO_S16MSB = 0x9010, + AUDIO_U16 = AUDIO_U16LSB, + AUDIO_S16 = AUDIO_S16LSB, + AUDIO_S32LSB = 0x8020, + AUDIO_S32MSB = 0x9020, + AUDIO_S32 = AUDIO_S32LSB, + AUDIO_F32LSB = 0x8120, + AUDIO_F32MSB = 0x9120, + AUDIO_F32 = AUDIO_F32LSB, +} +mixin(expandEnum!SDL_AudioFormat); + +version(LittleEndian) { + alias AUDIO_U16SYS = AUDIO_U16LSB; + alias AUDIO_S16SYS = AUDIO_S16LSB; + alias AUDIO_S32SYS = AUDIO_S32LSB; + alias AUDIO_F32SYS = AUDIO_F32LSB; +} else { + alias AUDIO_U16SYS = AUDIO_U16MSB; + alias AUDIO_S16SYS = AUDIO_S16MSB; + alias AUDIO_S32SYS = AUDIO_S32MSB; + alias AUDIO_F32SYS = AUDIO_F32MSB; +} + +enum SDL_AUDIO_BITSIZE(SDL_AudioFormat x) = x & SDL_AUDIO_MASK_BITSIZE; +enum SDL_AUDIO_ISFLOAT(SDL_AudioFormat x) = x & SDL_AUDIO_MASK_DATATYPE; +enum SDL_AUDIO_ISBIGENDIAN(SDL_AudioFormat x) = x & SDL_AUDIO_MASK_ENDIAN; +enum SDL_AUDIO_ISSIGNED(SDL_AudioFormat x) = x & SDL_AUDIO_MASK_SIGNED; +enum SDL_AUDIO_ISINT(SDL_AudioFormat x) = !SDL_AUDIO_ISFLOAT!x; +enum SDL_AUDIO_ISLITTLEENDIAN(SDL_AudioFormat x) = !SDL_AUDIO_ISBIGENDIAN!x; +enum SDL_AUDIO_ISUNSIGNED(SDL_AudioFormat x) = !SDL_AUDIO_ISSIGNED!x; + +static if(sdlSupport >= SDLSupport.sdl209) { + enum { + SDL_AUDIO_ALLOW_FREQUENCY_CHANGE = 0x00000001, + SDL_AUDIO_ALLOW_FORMAT_CHANGE = 0x00000002, + SDL_AUDIO_ALLOW_CHANNELS_CHANGE = 0x00000004, + SDL_AUDIO_ALLOW_SAMPLES_CHANGE = 0x00000008, + SDL_AUDIO_ALLOW_ANY_CHANGE = SDL_AUDIO_ALLOW_FREQUENCY_CHANGE | + SDL_AUDIO_ALLOW_FORMAT_CHANGE | + SDL_AUDIO_ALLOW_CHANNELS_CHANGE | + SDL_AUDIO_ALLOW_SAMPLES_CHANGE, + } +} +else { + enum { + SDL_AUDIO_ALLOW_FREQUENCY_CHANGE = 0x00000001, + SDL_AUDIO_ALLOW_FORMAT_CHANGE = 0x00000002, + SDL_AUDIO_ALLOW_CHANNELS_CHANGE = 0x00000004, + SDL_AUDIO_ALLOW_ANY_CHANGE = SDL_AUDIO_ALLOW_FREQUENCY_CHANGE | + SDL_AUDIO_ALLOW_FORMAT_CHANGE | + SDL_AUDIO_ALLOW_CHANNELS_CHANGE, + } +} + +extern(C) nothrow alias SDL_AudioCallback = void function(void* userdata, ubyte* stream, int len); +struct SDL_AudioSpec { + int freq; + SDL_AudioFormat format; + ubyte channels; + ubyte silence; + ushort samples; + ushort padding; + uint size; + SDL_AudioCallback callback; + void* userdata; +} + +// Declared in 2.0.6, but doesn't hurt to use here +enum SDL_AUDIOCVT_MAX_FILTERS = 9; + +extern(C) nothrow alias SDL_AudioFilter = void function(SDL_AudioCVT* cvt, SDL_AudioFormat format); +struct SDL_AudioCVT { + int needed; + SDL_AudioFormat src_format; + SDL_AudioFormat dst_format; + double rate_incr; + ubyte* buf; + int len; + int len_cvt; + int len_mult; + double len_ratio; + SDL_AudioFilter[SDL_AUDIOCVT_MAX_FILTERS + 1] filters; + int filter_index; +} + +alias SDL_AudioDeviceID = uint; + +enum SDL_AudioStatus { + SDL_AUDIO_STOPPED = 0, + SDL_AUDIO_PLAYING, + SDL_AUDIO_PAUSED, +} +mixin(expandEnum!SDL_AudioStatus); + +enum SDL_MIX_MAXVOLUME = 128; + +static if(sdlSupport >= SDLSupport.sdl207) { + struct SDL_AudioStream; +} + +@nogc nothrow +SDL_AudioSpec* SDL_LoadWAV(const(char)* file, SDL_AudioSpec* spec, ubyte** audio_buf, uint* len) { + pragma(inline, true); + return SDL_LoadWAV_RW(SDL_RWFromFile(file,"rb"),1,spec,audio_buf,len); +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int SDL_GetNumAudioDrivers(); + const(char)* SDL_GetAudioDriver(int); + int SDL_AudioInit(const(char)*); + void SDL_AudioQuit(); + const(char)* SDL_GetCurrentAudioDriver(); + int SDL_OpenAudio(SDL_AudioSpec*,SDL_AudioSpec*); + int SDL_GetNumAudioDevices(int); + const(char)* SDL_GetAudioDeviceName(int,int); + SDL_AudioDeviceID SDL_OpenAudioDevice(const(char)*,int,const(SDL_AudioSpec)*,SDL_AudioSpec*,int); + SDL_AudioStatus SDL_GetAudioStatus(); + SDL_AudioStatus SDL_GetAudioDeviceStatus(SDL_AudioDeviceID); + void SDL_PauseAudio(int); + void SDL_PauseAudioDevice(SDL_AudioDeviceID,int); + SDL_AudioSpec* SDL_LoadWAV_RW(SDL_RWops*,int,SDL_AudioSpec*,ubyte**,uint*); + void SDL_FreeWAV(ubyte*); + int SDL_BuildAudioCVT(SDL_AudioCVT*,SDL_AudioFormat,ubyte,int,SDL_AudioFormat,ubyte,int); + int SDL_ConvertAudio(SDL_AudioCVT*); + void SDL_MixAudio(ubyte*,const(ubyte)*,uint,int); + void SDL_MixAudioFormat(ubyte*,const(ubyte)*,SDL_AudioFormat,uint,int); + void SDL_LockAudio(); + void SDL_LockAudioDevice(SDL_AudioDeviceID); + void SDL_UnlockAudio(); + void SDL_UnlockAudioDevice(SDL_AudioDeviceID); + void SDL_CloseAudio(); + void SDL_CloseAudioDevice(SDL_AudioDeviceID); + + static if(sdlSupport >= SDLSupport.sdl204) { + int SDL_ClearQueuedAudio(SDL_AudioDeviceID); + int SDL_GetQueuedAudioSize(SDL_AudioDeviceID); + int SDL_QueueAudio(SDL_AudioDeviceID,const (void)*,uint); + } + + static if(sdlSupport >= SDLSupport.sdl205) { + uint SDL_DequeueAudio(SDL_AudioDeviceID,void*,uint); + } + + static if(sdlSupport >= SDLSupport.sdl207) { + SDL_AudioStream* SDL_NewAudioStream(const(SDL_AudioFormat),const(ubyte),const(int),const(SDL_AudioFormat),const(ubyte),const(int)); + int SDL_AudioStreamPut(SDL_AudioStream*,const(void)*,int); + int SDL_AudioStreamGet(SDL_AudioStream*,void*,int); + int SDL_AudioStreamAvailable(SDL_AudioStream*); + int SDL_AudioStreamFlush(SDL_AudioStream*); + void SDL_AudioStreamClear(SDL_AudioStream*); + void SDL_FreeAudioStream(SDL_AudioStream*); + } + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GetNumAudioDrivers = int function(); + alias pSDL_GetAudioDriver = const(char)* function(int); + alias pSDL_AudioInit = int function(const(char)*); + alias pSDL_AudioQuit = void function(); + alias pSDL_GetCurrentAudioDriver = const(char)* function(); + alias pSDL_OpenAudio = int function(SDL_AudioSpec*,SDL_AudioSpec*); + alias pSDL_GetNumAudioDevices = int function(int); + alias pSDL_GetAudioDeviceName = const(char)* function(int,int); + alias pSDL_OpenAudioDevice = SDL_AudioDeviceID function(const(char)*,int,const(SDL_AudioSpec)*,SDL_AudioSpec*,int); + alias pSDL_GetAudioStatus = SDL_AudioStatus function(); + alias pSDL_GetAudioDeviceStatus = SDL_AudioStatus function(SDL_AudioDeviceID); + alias pSDL_PauseAudio = void function(int); + alias pSDL_PauseAudioDevice = void function(SDL_AudioDeviceID,int); + alias pSDL_LoadWAV_RW = SDL_AudioSpec* function(SDL_RWops*,int,SDL_AudioSpec*,ubyte**,uint*); + alias pSDL_FreeWAV = void function(ubyte*); + alias pSDL_BuildAudioCVT = int function(SDL_AudioCVT*,SDL_AudioFormat,ubyte,int,SDL_AudioFormat,ubyte,int); + alias pSDL_ConvertAudio = int function(SDL_AudioCVT*); + alias pSDL_MixAudio = void function(ubyte*,const(ubyte)*,uint,int); + alias pSDL_MixAudioFormat = void function(ubyte*,const(ubyte)*,SDL_AudioFormat,uint,int); + alias pSDL_LockAudio = void function(); + alias pSDL_LockAudioDevice = void function(SDL_AudioDeviceID); + alias pSDL_UnlockAudio = void function(); + alias pSDL_UnlockAudioDevice = void function(SDL_AudioDeviceID); + alias pSDL_CloseAudio = void function(); + alias pSDL_CloseAudioDevice = void function(SDL_AudioDeviceID); + } + + __gshared { + pSDL_GetNumAudioDrivers SDL_GetNumAudioDrivers; + pSDL_GetAudioDriver SDL_GetAudioDriver; + pSDL_AudioInit SDL_AudioInit; + pSDL_AudioQuit SDL_AudioQuit; + pSDL_GetCurrentAudioDriver SDL_GetCurrentAudioDriver; + pSDL_OpenAudio SDL_OpenAudio; + pSDL_GetNumAudioDevices SDL_GetNumAudioDevices; + pSDL_GetAudioDeviceName SDL_GetAudioDeviceName; + pSDL_OpenAudioDevice SDL_OpenAudioDevice; + pSDL_GetAudioStatus SDL_GetAudioStatus; + pSDL_GetAudioDeviceStatus SDL_GetAudioDeviceStatus; + pSDL_PauseAudio SDL_PauseAudio; + pSDL_PauseAudioDevice SDL_PauseAudioDevice; + pSDL_LoadWAV_RW SDL_LoadWAV_RW; + pSDL_FreeWAV SDL_FreeWAV; + pSDL_BuildAudioCVT SDL_BuildAudioCVT; + pSDL_ConvertAudio SDL_ConvertAudio; + pSDL_MixAudio SDL_MixAudio; + pSDL_MixAudioFormat SDL_MixAudioFormat; + pSDL_LockAudio SDL_LockAudio; + pSDL_LockAudioDevice SDL_LockAudioDevice; + pSDL_UnlockAudio SDL_UnlockAudio; + pSDL_UnlockAudioDevice SDL_UnlockAudioDevice; + pSDL_CloseAudio SDL_CloseAudio; + pSDL_CloseAudioDevice SDL_CloseAudioDevice; + } + + static if(sdlSupport >= SDLSupport.sdl204) { + extern(C) @nogc nothrow { + alias pSDL_ClearQueuedAudio = int function(SDL_AudioDeviceID); + alias pSDL_GetQueuedAudioSize = int function(SDL_AudioDeviceID); + alias pSDL_QueueAudio = int function(SDL_AudioDeviceID,const (void)*,uint); + } + + __gshared { + pSDL_ClearQueuedAudio SDL_ClearQueuedAudio; + pSDL_GetQueuedAudioSize SDL_GetQueuedAudioSize; + pSDL_QueueAudio SDL_QueueAudio; + } + } + + static if(sdlSupport >= SDLSupport.sdl205) { + extern(C) @nogc nothrow { + alias pSDL_DequeueAudio = uint function(SDL_AudioDeviceID,void*,uint); + } + + __gshared { + pSDL_DequeueAudio SDL_DequeueAudio; + } + } + + static if(sdlSupport >= SDLSupport.sdl207) { + extern(C) @nogc nothrow { + alias pSDL_NewAudioStream = SDL_AudioStream* function(const(SDL_AudioFormat),const(ubyte),const(int),const(SDL_AudioFormat),const(ubyte),const(int)); + alias pSDL_AudioStreamPut = int function(SDL_AudioStream*,const(void)*,int); + alias pSDL_AudioStreamGet = int function(SDL_AudioStream*,void*,int); + alias pSDL_AudioStreamAvailable = int function(SDL_AudioStream*); + alias pSDL_AudioStreamFlush = int function(SDL_AudioStream*); + alias pSDL_AudioStreamClear = void function(SDL_AudioStream*); + alias pSDL_FreeAudioStream = void function(SDL_AudioStream*); + } + + __gshared { + pSDL_NewAudioStream SDL_NewAudioStream; + pSDL_AudioStreamPut SDL_AudioStreamPut; + pSDL_AudioStreamGet SDL_AudioStreamGet; + pSDL_AudioStreamAvailable SDL_AudioStreamAvailable; + pSDL_AudioStreamFlush SDL_AudioStreamFlush; + pSDL_AudioStreamClear SDL_AudioStreamClear; + pSDL_FreeAudioStream SDL_FreeAudioStream; + } + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlblendmode.d b/demos/external/imports/bindbc/sdl/bind/sdlblendmode.d new file mode 100644 index 0000000..a3360c2 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlblendmode.d @@ -0,0 +1,71 @@ + +// 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.sdlblendmode; + +import bindbc.sdl.config; + +static if(sdlSupport >= SDLSupport.sdl206) { + enum SDL_BlendMode { + SDL_BLENDMODE_NONE = 0x00000000, + SDL_BLENDMODE_BLEND = 0x00000001, + SDL_BLENDMODE_ADD = 0x00000002, + SDL_BLENDMODE_MOD = 0x00000004, + SDL_BLENDMODE_INVALID = 0x7FFFFFFF, + } + mixin(expandEnum!SDL_BlendMode); + + enum SDL_BlendOperation { + SDL_BLENDOPERATION_ADD = 0x1, + SDL_BLENDOPERATION_SUBTRACT = 0x2, + SDL_BLENDOPERATION_REV_SUBTRACT = 0x3, + SDL_BLENDOPERATION_MINIMUM = 0x4, + SDL_BLENDOPERATION_MAXIMUM = 0x5, + } + mixin(expandEnum!SDL_BlendOperation); + + enum SDL_BlendFactor { + SDL_BLENDFACTOR_ZERO = 0x1, + SDL_BLENDFACTOR_ONE = 0x2, + SDL_BLENDFACTOR_SRC_COLOR = 0x3, + SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 0x4, + SDL_BLENDFACTOR_SRC_ALPHA = 0x5, + SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 0x6, + SDL_BLENDFACTOR_DST_COLOR = 0x7, + SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8, + SDL_BLENDFACTOR_DST_ALPHA = 0x9, + SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA, + } + mixin(expandEnum!SDL_BlendFactor); +} +else { + enum SDL_BlendMode { + SDL_BLENDMODE_NONE = 0x00000000, + SDL_BLENDMODE_BLEND = 0x00000001, + SDL_BLENDMODE_ADD = 0x00000002, + SDL_BLENDMODE_MOD = 0x00000004, + } + mixin(expandEnum!SDL_BlendMode); +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + static if(sdlSupport >= SDLSupport.sdl206) { + SDL_BlendMode SDL_ComposeCustomBlendMode(SDL_BlendFactor,SDL_BlendFactor,SDL_BlendOperation,SDL_BlendFactor,SDL_BlendFactor,SDL_BlendOperation); + } + } +} +else { + static if(sdlSupport >= SDLSupport.sdl206) { + extern(C) @nogc nothrow { + alias pSDL_ComposeCustomBlendMode = SDL_BlendMode function(SDL_BlendFactor,SDL_BlendFactor,SDL_BlendOperation,SDL_BlendFactor,SDL_BlendFactor,SDL_BlendOperation); + } + + __gshared { + pSDL_ComposeCustomBlendMode SDL_ComposeCustomBlendMode; + } + } +} diff --git a/demos/external/imports/bindbc/sdl/bind/sdlclipboard.d b/demos/external/imports/bindbc/sdl/bind/sdlclipboard.d new file mode 100644 index 0000000..345c1ac --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlclipboard.d @@ -0,0 +1,31 @@ + +// 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.sdlclipboard; + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int SDL_SetClipboardText(const(char)*); + char* SDL_GetClipboardText(); + SDL_bool SDL_HasClipboardText(); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_SetClipboardText = int function(const(char)*); + alias pSDL_GetClipboardText = char* function(); + alias pSDL_HasClipboardText = SDL_bool function(); + } + + __gshared { + pSDL_SetClipboardText SDL_SetClipboardText; + pSDL_GetClipboardText SDL_GetClipboardText; + pSDL_HasClipboardText SDL_HasClipboardText; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlcpuinfo.d b/demos/external/imports/bindbc/sdl/bind/sdlcpuinfo.d new file mode 100644 index 0000000..433ade0 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlcpuinfo.d @@ -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; + } + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlerror.d b/demos/external/imports/bindbc/sdl/bind/sdlerror.d new file mode 100644 index 0000000..09b61e3 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlerror.d @@ -0,0 +1,28 @@ + +// 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.sdlerror; + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + void SDL_SetError(const(char)*,...); + const(char)* SDL_GetError(); + void SDL_ClearError(); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_SetError = void function(const(char)*,...); + alias pSDL_GetError = const(char)* function(); + alias pSDL_ClearError = void function(); + } + + __gshared { + pSDL_SetError SDL_SetError; + pSDL_GetError SDL_GetError; + pSDL_ClearError SDL_ClearError; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlevents.d b/demos/external/imports/bindbc/sdl/bind/sdlevents.d new file mode 100644 index 0000000..0fb7ce2 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlevents.d @@ -0,0 +1,674 @@ + +// 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.sdlevents; + +import bindbc.sdl.config; + +import bindbc.sdl.bind.sdlgesture, + bindbc.sdl.bind.sdljoystick, + bindbc.sdl.bind.sdlkeyboard, + bindbc.sdl.bind.sdlkeycode, + bindbc.sdl.bind.sdlstdinc, + bindbc.sdl.bind.sdlsyswm, + bindbc.sdl.bind.sdltouch, + bindbc.sdl.bind.sdlvideo; + +enum { + SDL_RELEASED = 0, + SDL_PRESSED = 1, +} + +static if(sdlSupport >= SDLSupport.sdl209) { + enum SDL_EventType { + SDL_FIRSTEVENT = 0, + SDL_QUIT = 0x100, + SDL_APP_TERMINATING, + SDL_APP_LOWMEMORY, + SDL_APP_WILLENTERBACKGROUND, + SDL_APP_DIDENTERBACKGROUND, + SDL_APP_WILLENTERFOREGROUND, + SDL_APP_DIDENTERFOREGROUND, + SDL_DISPLAYEVENT = 0x150, + SDL_WINDOWEVENT = 0x200, + SDL_SYSWMEVENT, + SDL_KEYDOWN = 0x300, + SDL_KEYUP, + SDL_TEXTEDITING, + SDL_TEXTINPUT, + SDL_KEYMAPCHANGED, + SDL_MOUSEMOTION = 0x400, + SDL_MOUSEBUTTONDOWN, + SDL_MOUSEBUTTONUP, + SDL_MOUSEWHEEL, + SDL_JOYAXISMOTION = 0x600, + SDL_JOYBALLMOTION, + SDL_JOYHATMOTION, + SDL_JOYBUTTONDOWN, + SDL_JOYBUTTONUP, + SDL_JOYDEVICEADDED, + SDL_JOYDEVICEREMOVED, + SDL_CONTROLLERAXISMOTION = 0x650, + SDL_CONTROLLERBUTTONDOWN, + SDL_CONTROLLERBUTTONUP, + SDL_CONTROLLERDEVICEADDED, + SDL_CONTROLLERDEVICEREMOVED, + SDL_CONTROLLERDEVICEREMAPPED, + SDL_FINGERDOWN = 0x700, + SDL_FINGERUP, + SDL_FINGERMOTION, + SDL_DOLLARGESTURE = 0x800, + SDL_DOLLARRECORD, + SDL_MULTIGESTURE, + SDL_CLIPBOARDUPDATE = 0x900, + SDL_DROPFILE = 0x1000, + SDL_DROPTEXT, + SDL_DROPBEGIN, + SDL_DROPCOMPLETE, + SDL_AUDIODEVICEADDED = 0x1100, + SDL_AUDIODEVICEREMOVED, + SDL_SENSORUPDATE = 0x1200, + SDL_RENDER_TARGETS_RESET = 0x2000, + SDL_RENDER_DEVICE_RESET, + SDL_USEREVENT = 0x8000, + SDL_LASTEVENT = 0xFFFF + } +} +else static if(sdlSupport >= SDLSupport.sdl205) { + enum SDL_EventType { + SDL_FIRSTEVENT = 0, + SDL_QUIT = 0x100, + SDL_APP_TERMINATING, + SDL_APP_LOWMEMORY, + SDL_APP_WILLENTERBACKGROUND, + SDL_APP_DIDENTERBACKGROUND, + SDL_APP_WILLENTERFOREGROUND, + SDL_APP_DIDENTERFOREGROUND, + SDL_WINDOWEVENT = 0x200, + SDL_SYSWMEVENT, + SDL_KEYDOWN = 0x300, + SDL_KEYUP, + SDL_TEXTEDITING, + SDL_TEXTINPUT, + SDL_KEYMAPCHANGED, + SDL_MOUSEMOTION = 0x400, + SDL_MOUSEBUTTONDOWN, + SDL_MOUSEBUTTONUP, + SDL_MOUSEWHEEL, + SDL_JOYAXISMOTION = 0x600, + SDL_JOYBALLMOTION, + SDL_JOYHATMOTION, + SDL_JOYBUTTONDOWN, + SDL_JOYBUTTONUP, + SDL_JOYDEVICEADDED, + SDL_JOYDEVICEREMOVED, + SDL_CONTROLLERAXISMOTION = 0x650, + SDL_CONTROLLERBUTTONDOWN, + SDL_CONTROLLERBUTTONUP, + SDL_CONTROLLERDEVICEADDED, + SDL_CONTROLLERDEVICEREMOVED, + SDL_CONTROLLERDEVICEREMAPPED, + SDL_FINGERDOWN = 0x700, + SDL_FINGERUP, + SDL_FINGERMOTION, + SDL_DOLLARGESTURE = 0x800, + SDL_DOLLARRECORD, + SDL_MULTIGESTURE, + SDL_CLIPBOARDUPDATE = 0x900, + SDL_DROPFILE = 0x1000, + SDL_DROPTEXT, + SDL_DROPBEGIN, + SDL_DROPCOMPLETE, + SDL_AUDIODEVICEADDED = 0x1100, + SDL_AUDIODEVICEREMOVED, + SDL_RENDER_TARGETS_RESET = 0x2000, + SDL_RENDER_DEVICE_RESET, + SDL_USEREVENT = 0x8000, + SDL_LASTEVENT = 0xFFFF + } +} +else static if(sdlSupport >= SDLSupport.sdl204) { + enum SDL_EventType { + SDL_FIRSTEVENT = 0, + SDL_QUIT = 0x100, + SDL_APP_TERMINATING, + SDL_APP_LOWMEMORY, + SDL_APP_WILLENTERBACKGROUND, + SDL_APP_DIDENTERBACKGROUND, + SDL_APP_WILLENTERFOREGROUND, + SDL_APP_DIDENTERFOREGROUND, + SDL_WINDOWEVENT = 0x200, + SDL_SYSWMEVENT, + SDL_KEYDOWN = 0x300, + SDL_KEYUP, + SDL_TEXTEDITING, + SDL_TEXTINPUT, + SDL_KEYMAPCHANGED, + SDL_MOUSEMOTION = 0x400, + SDL_MOUSEBUTTONDOWN, + SDL_MOUSEBUTTONUP, + SDL_MOUSEWHEEL, + SDL_JOYAXISMOTION = 0x600, + SDL_JOYBALLMOTION, + SDL_JOYHATMOTION, + SDL_JOYBUTTONDOWN, + SDL_JOYBUTTONUP, + SDL_JOYDEVICEADDED, + SDL_JOYDEVICEREMOVED, + SDL_CONTROLLERAXISMOTION = 0x650, + SDL_CONTROLLERBUTTONDOWN, + SDL_CONTROLLERBUTTONUP, + SDL_CONTROLLERDEVICEADDED, + SDL_CONTROLLERDEVICEREMOVED, + SDL_CONTROLLERDEVICEREMAPPED, + SDL_FINGERDOWN = 0x700, + SDL_FINGERUP, + SDL_FINGERMOTION, + SDL_DOLLARGESTURE = 0x800, + SDL_DOLLARRECORD, + SDL_MULTIGESTURE, + SDL_CLIPBOARDUPDATE = 0x900, + SDL_DROPFILE = 0x1000, + SDL_AUDIODEVICEADDED = 0x1100, + SDL_AUDIODEVICEREMOVED, + SDL_RENDER_TARGETS_RESET = 0x2000, + SDL_RENDER_DEVICE_RESET, + SDL_USEREVENT = 0x8000, + SDL_LASTEVENT = 0xFFFF + } +} +else static if(sdlSupport >= SDLSupport.sdl201) { + enum SDL_EventType { + SDL_FIRSTEVENT = 0, + SDL_QUIT = 0x100, + SDL_APP_TERMINATING, + SDL_APP_LOWMEMORY, + SDL_APP_WILLENTERBACKGROUND, + SDL_APP_DIDENTERBACKGROUND, + SDL_APP_WILLENTERFOREGROUND, + SDL_APP_DIDENTERFOREGROUND, + SDL_WINDOWEVENT = 0x200, + SDL_SYSWMEVENT, + SDL_KEYDOWN = 0x300, + SDL_KEYUP, + SDL_TEXTEDITING, + SDL_TEXTINPUT, + SDL_MOUSEMOTION = 0x400, + SDL_MOUSEBUTTONDOWN, + SDL_MOUSEBUTTONUP, + SDL_MOUSEWHEEL, + SDL_JOYAXISMOTION = 0x600, + SDL_JOYBALLMOTION, + SDL_JOYHATMOTION, + SDL_JOYBUTTONDOWN, + SDL_JOYBUTTONUP, + SDL_JOYDEVICEADDED, + SDL_JOYDEVICEREMOVED, + SDL_CONTROLLERAXISMOTION = 0x650, + SDL_CONTROLLERBUTTONDOWN, + SDL_CONTROLLERBUTTONUP, + SDL_CONTROLLERDEVICEADDED, + SDL_CONTROLLERDEVICEREMOVED, + SDL_CONTROLLERDEVICEREMAPPED, + SDL_FINGERDOWN = 0x700, + SDL_FINGERUP, + SDL_FINGERMOTION, + SDL_DOLLARGESTURE = 0x800, + SDL_DOLLARRECORD, + SDL_MULTIGESTURE, + SDL_CLIPBOARDUPDATE = 0x900, + SDL_DROPFILE = 0x1000, + SDL_RENDER_TARGETS_RESET = 0x2000, + SDL_USEREVENT = 0x8000, + SDL_LASTEVENT = 0xFFFF + } +} +else { + enum SDL_EventType { + SDL_FIRSTEVENT = 0, + SDL_QUIT = 0x100, + SDL_APP_TERMINATING, + SDL_APP_LOWMEMORY, + SDL_APP_WILLENTERBACKGROUND, + SDL_APP_DIDENTERBACKGROUND, + SDL_APP_WILLENTERFOREGROUND, + SDL_APP_DIDENTERFOREGROUND, + SDL_WINDOWEVENT = 0x200, + SDL_SYSWMEVENT, + SDL_KEYDOWN = 0x300, + SDL_KEYUP, + SDL_TEXTEDITING, + SDL_TEXTINPUT, + SDL_MOUSEMOTION = 0x400, + SDL_MOUSEBUTTONDOWN, + SDL_MOUSEBUTTONUP, + SDL_MOUSEWHEEL, + SDL_JOYAXISMOTION = 0x600, + SDL_JOYBALLMOTION, + SDL_JOYHATMOTION, + SDL_JOYBUTTONDOWN, + SDL_JOYBUTTONUP, + SDL_JOYDEVICEADDED, + SDL_JOYDEVICEREMOVED, + SDL_CONTROLLERAXISMOTION = 0x650, + SDL_CONTROLLERBUTTONDOWN, + SDL_CONTROLLERBUTTONUP, + SDL_CONTROLLERDEVICEADDED, + SDL_CONTROLLERDEVICEREMOVED, + SDL_CONTROLLERDEVICEREMAPPED, + SDL_FINGERDOWN = 0x700, + SDL_FINGERUP, + SDL_FINGERMOTION, + SDL_DOLLARGESTURE = 0x800, + SDL_DOLLARRECORD, + SDL_MULTIGESTURE, + SDL_CLIPBOARDUPDATE = 0x900, + SDL_DROPFILE = 0x1000, + SDL_USEREVENT = 0x8000, + SDL_LASTEVENT = 0xFFFF + } +} +mixin(expandEnum!SDL_EventType); + +struct SDL_CommonEvent { + SDL_EventType type; + uint timestamp; +} + +static if(sdlSupport >= SDLSupport.sdl209) { + struct SDL_DisplayEvent { + SDL_EventType type; + uint timestamp; + uint display; + ubyte event; + ubyte padding1; + ubyte padding2; + ubyte padding3; + int data1; + } +} + +struct SDL_WindowEvent { + SDL_EventType type; + uint timestamp; + uint windowID; + SDL_WindowEventID event; + ubyte padding1; + ubyte padding2; + ubyte padding3; + int data1; + int data2; +} + +struct SDL_KeyboardEvent { + SDL_EventType type; + uint timestamp; + uint windowID; + ubyte state; + ubyte repeat; + ubyte padding2; + ubyte padding3; + SDL_Keysym keysym; +} + +enum SDL_TEXTEDITINGEVENT_TEXT_SIZE = 32; +struct SDL_TextEditingEvent { + SDL_EventType type; + uint timestamp; + uint windowID; + char[SDL_TEXTEDITINGEVENT_TEXT_SIZE] text; + int start; + int length; +} + +enum SDL_TEXTINPUTEVENT_TEXT_SIZE = 32; +struct SDL_TextInputEvent { + SDL_EventType type; + uint timestamp; + uint windowID; + char[SDL_TEXTINPUTEVENT_TEXT_SIZE] text; +} + +struct SDL_MouseMotionEvent { + SDL_EventType type; + uint timestamp; + uint windowID; + uint which; + uint state; + int x; + int y; + int xrel; + int yrel; +} + +struct SDL_MouseButtonEvent { + SDL_EventType type; + uint timestamp; + uint windowID; + uint which; + ubyte button; + ubyte state; + static if(sdlSupport == SDLSupport.sdl200) { + ubyte padding1; + ubyte padding2; + } + else { + ubyte clicks; + ubyte padding1; + } + int x; + int y; +} + +struct SDL_MouseWheelEvent { + SDL_EventType type; + uint timestamp; + uint windowID; + uint which; + int x; + int y; + static if(sdlSupport >= SDLSupport.sdl204) { + uint direction; + } +} + +struct SDL_JoyAxisEvent { + SDL_EventType type; + uint timestamp; + SDL_JoystickID which; + ubyte axis; + ubyte padding1; + ubyte padding2; + ubyte padding3; + short value; + ushort padding4; +} + +struct SDL_JoyBallEvent { + SDL_EventType type; + uint timestamp; + SDL_JoystickID which; + ubyte ball; + ubyte padding1; + ubyte padding2; + ubyte padding3; + short xrel; + short yrel; +} + +struct SDL_JoyHatEvent { + SDL_EventType type; + uint timestamp; + SDL_JoystickID which; + ubyte hat; + ubyte value; + ubyte padding1; + ubyte padding2; +} + +struct SDL_JoyButtonEvent { + SDL_EventType type; + uint timestamp; + SDL_JoystickID which; + ubyte button; + ubyte state; + ubyte padding1; + ubyte padding2; +} + +struct SDL_JoyDeviceEvent { + SDL_EventType type; + uint timestamp; + int which; +} + +struct SDL_ControllerAxisEvent { + SDL_EventType type; + uint timestamp; + SDL_JoystickID which; + ubyte axis; + ubyte padding1; + ubyte padding2; + ubyte padding3; + short value; + ushort padding4; +} + +struct SDL_ControllerButtonEvent { + SDL_EventType type; + uint timestamp; + SDL_JoystickID which; + ubyte button; + ubyte state; + ubyte padding1; + ubyte padding2; +} + +struct SDL_ControllerDeviceEvent { + SDL_EventType type; + uint timestamp; + int which; +} + +static if(sdlSupport >= SDLSupport.sdl204) { + struct SDL_AudioDeviceEvent { + uint type; + uint timestamp; + uint which; + ubyte iscapture; + ubyte padding1; + ubyte padding2; + ubyte padding3; + } +} + +struct SDL_TouchFingerEvent { + SDL_EventType type; + uint timestamp; + SDL_TouchID touchId; + SDL_FingerID fingerId; + float x; + float y; + float dx; + float dy; + float pressure; +} + +struct SDL_MultiGestureEvent { + SDL_EventType type; + uint timestamp; + SDL_TouchID touchId; + float dTheta; + float dDist; + float x; + float y; + ushort numFingers; + ushort padding; +} + +struct SDL_DollarGestureEvent { + SDL_EventType type; + uint timestamp; + SDL_TouchID touchId; + SDL_GestureID gestureId; + uint numFingers; + float error; + float x; + float y; +} + +struct SDL_DropEvent { + SDL_EventType type; + uint timestamp; + char* file; + static if(sdlSupport >= SDLSupport.sdl205) { + uint windowID; + } +} + +struct SDL_SensorEvent { + SDL_EventType type; + uint timestamp; + int which; + float[6] data; +} + +struct SDL_QuitEvent { + SDL_EventType type; + uint timestamp; +} + +struct SDL_OSEvent { + SDL_EventType type; + uint timestamp; +} + +struct SDL_UserEvent { + SDL_EventType type; + uint timestamp; + uint windowID; + int code; + void* data1; + void* data2; +} + +struct SDL_SysWMEvent { + SDL_EventType type; + uint timestamp; + SDL_SysWMmsg* msg; +} + +union SDL_Event { + SDL_EventType type; + SDL_CommonEvent common; + static if(sdlSupport >= SDLSupport.sdl209) { + SDL_DisplayEvent display; + } + SDL_WindowEvent window; + SDL_KeyboardEvent key; + SDL_TextEditingEvent edit; + SDL_TextInputEvent text; + SDL_MouseMotionEvent motion; + SDL_MouseButtonEvent button; + SDL_MouseWheelEvent wheel; + SDL_JoyAxisEvent jaxis; + SDL_JoyBallEvent jball; + SDL_JoyHatEvent jhat; + SDL_JoyButtonEvent jbutton; + SDL_JoyDeviceEvent jdevice; + SDL_ControllerAxisEvent caxis; + SDL_ControllerButtonEvent cbutton; + SDL_ControllerDeviceEvent cdevice; + static if(sdlSupport >= SDLSupport.sdl204) { + SDL_AudioDeviceEvent adevice; + } + static if(sdlSupport >= SDLSupport.sdl209) { + SDL_SensorEvent sensor; + } + SDL_QuitEvent quit; + SDL_UserEvent user; + SDL_SysWMEvent syswm; + SDL_TouchFingerEvent tfinger; + SDL_MultiGestureEvent mgesture; + SDL_DollarGestureEvent dgesture; + SDL_DropEvent drop; + + ubyte[56] padding; +} + +enum SDL_eventaction { + SDL_ADDEVENT, + SDL_PEEKEVENT, + SDL_GETEVENT +} +alias SDL_EventAction = SDL_eventaction; +mixin(expandEnum!SDL_EventAction); + +extern(C) nothrow alias SDL_EventFilter = int function(void* userdata, SDL_Event* event); + +enum { + SDL_QUERY = -1, + SDL_IGNORE = 0, + SDL_DISABLE = 0, + SDL_ENABLE = 1, +} + +@nogc nothrow { + int SDL_GetEventState(SDL_EventType type) { + pragma(inline, true); + return SDL_EventState(type, SDL_QUERY); + } + + // This is implemented in SDL_quit.h, but works better here. + bool SDL_QuitRequested() { + pragma(inline, true); + SDL_PumpEvents(); + return SDL_PeepEvents(null,0,SDL_PEEKEVENT,SDL_QUIT,SDL_QUIT) > 0; + } +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + void SDL_PumpEvents(); + int SDL_PeepEvents(SDL_Event*,int,SDL_eventaction,uint,uint); + SDL_bool SDL_HasEvent(uint); + SDL_bool SDL_HasEvents(uint,uint); + void SDL_FlushEvent(uint); + void SDL_FlushEvents(uint,uint); + int SDL_PollEvent(SDL_Event*); + int SDL_WaitEvent(SDL_Event*); + int SDL_WaitEventTimeout(SDL_Event*,int); + int SDL_PushEvent(SDL_Event*); + void SDL_SetEventFilter(SDL_EventFilter,void*); + SDL_bool SDL_GetEventFilter(SDL_EventFilter*,void**); + void SDL_AddEventWatch(SDL_EventFilter,void*); + void SDL_DelEventWatch(SDL_EventFilter,void*); + void SDL_FilterEvents(SDL_EventFilter,void*); + ubyte SDL_EventState(uint,int); + uint SDL_RegisterEvents(int); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_PumpEvents = void function(); + alias pSDL_PeepEvents = int function(SDL_Event*,int,SDL_eventaction,uint,uint); + alias pSDL_HasEvent = SDL_bool function(uint); + alias pSDL_HasEvents = SDL_bool function(uint,uint); + alias pSDL_FlushEvent = void function(uint); + alias pSDL_FlushEvents = void function(uint,uint); + alias pSDL_PollEvent = int function(SDL_Event*); + alias pSDL_WaitEvent = int function(SDL_Event*); + alias pSDL_WaitEventTimeout = int function(SDL_Event*,int); + alias pSDL_PushEvent = int function(SDL_Event*); + alias pSDL_SetEventFilter = void function(SDL_EventFilter,void*); + alias pSDL_GetEventFilter = SDL_bool function(SDL_EventFilter*,void**); + alias pSDL_AddEventWatch = void function(SDL_EventFilter,void*); + alias pSDL_DelEventWatch = void function(SDL_EventFilter,void*); + alias pSDL_FilterEvents = void function(SDL_EventFilter,void*); + alias pSDL_EventState = ubyte function(uint,int); + alias pSDL_RegisterEvents = uint function(int); + } + + __gshared { + pSDL_PumpEvents SDL_PumpEvents; + pSDL_PeepEvents SDL_PeepEvents; + pSDL_HasEvent SDL_HasEvent; + pSDL_HasEvents SDL_HasEvents; + pSDL_FlushEvent SDL_FlushEvent; + pSDL_FlushEvents SDL_FlushEvents; + pSDL_PollEvent SDL_PollEvent; + pSDL_WaitEvent SDL_WaitEvent; + pSDL_WaitEventTimeout SDL_WaitEventTimeout; + pSDL_PushEvent SDL_PushEvent; + pSDL_SetEventFilter SDL_SetEventFilter; + pSDL_GetEventFilter SDL_GetEventFilter; + pSDL_AddEventWatch SDL_AddEventWatch; + pSDL_DelEventWatch SDL_DelEventWatch; + pSDL_FilterEvents SDL_FilterEvents; + pSDL_EventState SDL_EventState; + pSDL_RegisterEvents SDL_RegisterEvents; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlfilesystem.d b/demos/external/imports/bindbc/sdl/bind/sdlfilesystem.d new file mode 100644 index 0000000..a3edcdc --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlfilesystem.d @@ -0,0 +1,31 @@ + +// 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.sdlfilesystem; + +import bindbc.sdl.config; + +version(BindSDL_Static){ + extern(C) @nogc nothrow { + static if(sdlSupport >= SDLSupport.sdl201) { + char* SDL_GetBasePath(); + char* SDL_GetPrefPath(const(char)* org,const(char)* app); + } + } +} +else { + static if(sdlSupport >= SDLSupport.sdl201) { + extern(C) @nogc nothrow { + alias pSDL_GetBasePath = char* function(); + alias pSDL_GetPrefPath = char* function(const(char)* org,const(char)* app); + } + + __gshared { + pSDL_GetBasePath SDL_GetBasePath; + pSDL_GetPrefPath SDL_GetPrefPath; + } + } +} diff --git a/demos/external/imports/bindbc/sdl/bind/sdlgamecontroller.d b/demos/external/imports/bindbc/sdl/bind/sdlgamecontroller.d new file mode 100644 index 0000000..295d117 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlgamecontroller.d @@ -0,0 +1,225 @@ + +// 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.sdlgamecontroller; + +import bindbc.sdl.config; + +import bindbc.sdl.bind.sdljoystick, + bindbc.sdl.bind.sdlrwops; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; + +struct SDL_GameController; + +enum SDL_GameControllerBindType { + SDL_CONTROLLER_BINDTYPE_NONE = 0, + SDL_CONTROLLER_BINDTYPE_BUTTON, + SDL_CONTROLLER_BINDTYPE_AXIS, + SDL_CONTROLLER_BINDTYPE_HAT, +} +mixin(expandEnum!SDL_GameControllerBindType); + +struct SDL_GameControllerButtonBind { + SDL_GameControllerBindType bindType; + union value { + int button; + int axis; + struct hat { + int hat; + int hat_mask; + } + } + alias button = value.button; + alias axis = value.axis; + alias hat = value.hat; +} + +enum SDL_GameControllerAxis { + SDL_CONTROLLER_AXIS_INVALID = -1, + SDL_CONTROLLER_AXIS_LEFTX, + SDL_CONTROLLER_AXIS_LEFTY, + SDL_CONTROLLER_AXIS_RIGHTX, + SDL_CONTROLLER_AXIS_RIGHTY, + SDL_CONTROLLER_AXIS_TRIGGERLEFT, + SDL_CONTROLLER_AXIS_TRIGGERRIGHT, + SDL_CONTROLLER_AXIS_MAX +} +mixin(expandEnum!SDL_GameControllerAxis); + +enum SDL_GameControllerButton { + SDL_CONTROLLER_BUTTON_INVALID = -1, + SDL_CONTROLLER_BUTTON_A, + SDL_CONTROLLER_BUTTON_B, + SDL_CONTROLLER_BUTTON_X, + SDL_CONTROLLER_BUTTON_Y, + SDL_CONTROLLER_BUTTON_BACK, + SDL_CONTROLLER_BUTTON_GUIDE, + SDL_CONTROLLER_BUTTON_START, + SDL_CONTROLLER_BUTTON_LEFTSTICK, + SDL_CONTROLLER_BUTTON_RIGHTSTICK, + SDL_CONTROLLER_BUTTON_LEFTSHOULDER, + SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, + SDL_CONTROLLER_BUTTON_DPAD_UP, + SDL_CONTROLLER_BUTTON_DPAD_DOWN, + SDL_CONTROLLER_BUTTON_DPAD_LEFT, + SDL_CONTROLLER_BUTTON_DPAD_RIGHT, + SDL_CONTROLLER_BUTTON_MAX +} +mixin(expandEnum!SDL_GameControllerButton); + +static if(sdlSupport >= SDLSupport.sdl202) { + @nogc nothrow + int SDL_GameControllerAddMappingsFromFile(const(char)* file) { + pragma(inline, true); + return SDL_GameControllerAddMappingsFromRW(SDL_RWFromFile(file,"rb"),1); + } +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int SDL_GameControllerAddMapping(const(char)*); + char* SDL_GameControllerMappingForGUID(SDL_JoystickGUID); + char* SDL_GameControllerMapping(SDL_GameController*); + SDL_bool SDL_IsGameController(int); + const(char)* SDL_GameControllerNameForIndex(int); + SDL_GameController* SDL_GameControllerOpen(int); + const(char)* SDL_GameControllerName(SDL_GameController*); + SDL_bool SDL_GameControllerGetAttached(SDL_GameController*); + SDL_Joystick* SDL_GameControllerGetJoystick(SDL_GameController*); + int SDL_GameControllerEventState(int); + void SDL_GameControllerUpdate(); + SDL_GameControllerAxis SDL_GameControllerGetAxisFromString(const(char)*); + const(char)* SDL_GameControllerGetStringForAxis(SDL_GameControllerAxis); + SDL_GameControllerButtonBind SDL_GameControllerGetBindForAxis(SDL_GameController*,SDL_GameControllerAxis); + short SDL_GameControllerGetAxis(SDL_GameController*,SDL_GameControllerAxis); + SDL_GameControllerButton SDL_GameControllerGetButtonFromString(const(char*)); + const(char)* SDL_GameControllerGetStringForButton(SDL_GameControllerButton); + SDL_GameControllerButtonBind SDL_GameControllerGetBindForButton(SDL_GameController*,SDL_GameControllerButton); + ubyte SDL_GameControllerGetButton(SDL_GameController*,SDL_GameControllerButton); + void SDL_GameControllerClose(SDL_GameController*); + + static if(sdlSupport >= SDLSupport.sdl202) { + int SDL_GameControllerAddMappingsFromRW(SDL_RWops*,int); + } + static if(sdlSupport >= SDLSupport.sdl204) { + SDL_GameController* SDL_GameControllerFromInstanceID(SDL_JoystickID); + } + static if(sdlSupport >= SDLSupport.sdl206) { + ushort SDL_GameControllerGetProduct(SDL_GameController*); + ushort SDL_GameControllerGetProductVersion(SDL_GameController*); + ushort SDL_GameControllerGetVendor(SDL_GameController*); + char* SDL_GameControllerMappingForIndex(int); + int SDL_GameControllerNumMappings(); + } + static if(sdlSupport >= SDLSupport.sdl209) { + char* SDL_GameControllerMappingForDeviceIndex(int); + int SDL_GameControllerRumble(SDL_GameController*,ushort,ushort,uint); + } + static if(sdlSupport >= SDLSupport.sdl2010) { + int SDL_GameControllerGetPlayerIndex(SDL_GameController*); + } + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GameControllerAddMapping = int function(const(char)*); + alias pSDL_GameControllerMappingForGUID = char* function(SDL_JoystickGUID); + alias pSDL_GameControllerMapping = char* function(SDL_GameController*); + alias pSDL_IsGameController = SDL_bool function(int); + alias pSDL_GameControllerNameForIndex = const(char)* function(int); + alias pSDL_GameControllerOpen = SDL_GameController* function(int); + alias pSDL_GameControllerName = const(char)* function(SDL_GameController*); + alias pSDL_GameControllerGetAttached = SDL_bool function(SDL_GameController*); + alias pSDL_GameControllerGetJoystick = SDL_Joystick* function(SDL_GameController*); + alias pSDL_GameControllerEventState = int function(int); + alias pSDL_GameControllerUpdate = void function(); + alias pSDL_GameControllerGetAxisFromString = SDL_GameControllerAxis function(const(char)*); + alias pSDL_GameControllerGetStringForAxis = const(char)* function(SDL_GameControllerAxis); + alias pSDL_GameControllerGetBindForAxis = SDL_GameControllerButtonBind function(SDL_GameController*,SDL_GameControllerAxis); + alias pSDL_GameControllerGetAxis = short function(SDL_GameController*,SDL_GameControllerAxis); + alias pSDL_GameControllerGetButtonFromString = SDL_GameControllerButton function(const(char*)); + alias pSDL_GameControllerGetStringForButton = const(char)* function(SDL_GameControllerButton); + alias pSDL_GameControllerGetBindForButton = SDL_GameControllerButtonBind function(SDL_GameController*,SDL_GameControllerButton); + alias pSDL_GameControllerGetButton = ubyte function(SDL_GameController*,SDL_GameControllerButton); + alias pSDL_GameControllerClose = void function(SDL_GameController*); + } + __gshared { + pSDL_GameControllerAddMapping SDL_GameControllerAddMapping; + pSDL_GameControllerMappingForGUID SDL_GameControllerMappingForGUID; + pSDL_GameControllerMapping SDL_GameControllerMapping; + pSDL_IsGameController SDL_IsGameController; + pSDL_GameControllerNameForIndex SDL_GameControllerNameForIndex; + pSDL_GameControllerOpen SDL_GameControllerOpen; + pSDL_GameControllerName SDL_GameControllerName; + pSDL_GameControllerGetAttached SDL_GameControllerGetAttached; + pSDL_GameControllerGetJoystick SDL_GameControllerGetJoystick; + pSDL_GameControllerEventState SDL_GameControllerEventState; + pSDL_GameControllerUpdate SDL_GameControllerUpdate; + pSDL_GameControllerGetAxisFromString SDL_GameControllerGetAxisFromString; + pSDL_GameControllerGetStringForAxis SDL_GameControllerGetStringForAxis; + pSDL_GameControllerGetBindForAxis SDL_GameControllerGetBindForAxis; + pSDL_GameControllerGetAxis SDL_GameControllerGetAxis; + pSDL_GameControllerGetButtonFromString SDL_GameControllerGetButtonFromString; + pSDL_GameControllerGetStringForButton SDL_GameControllerGetStringForButton; + pSDL_GameControllerGetBindForButton SDL_GameControllerGetBindForButton; + pSDL_GameControllerGetButton SDL_GameControllerGetButton; + pSDL_GameControllerClose SDL_GameControllerClose; + } + static if(sdlSupport >= SDLSupport.sdl202) { + extern(C) @nogc nothrow { + alias pSDL_GameControllerAddMappingsFromRW = int function(SDL_RWops*,int); + } + + __gshared { + pSDL_GameControllerAddMappingsFromRW SDL_GameControllerAddMappingsFromRW; + } + } + static if(sdlSupport >= SDLSupport.sdl204) { + extern(C) @nogc nothrow { + alias pSDL_GameControllerFromInstanceID = SDL_GameController* function(SDL_JoystickID); + } + + __gshared { + pSDL_GameControllerFromInstanceID SDL_GameControllerFromInstanceID; + } + } + static if(sdlSupport >= SDLSupport.sdl206) { + extern(C) @nogc nothrow { + alias pSDL_GameControllerGetProduct = ushort function(SDL_GameController*); + alias pSDL_GameControllerGetProductVersion = ushort function(SDL_GameController*); + alias pSDL_GameControllerGetVendor = ushort function(SDL_GameController*); + alias pSDL_GameControllerMappingForIndex = char* function(int); + alias pSDL_GameControllerNumMappings = int function(); + } + + __gshared { + pSDL_GameControllerGetProduct SDL_GameControllerGetProduct; + pSDL_GameControllerGetProductVersion SDL_GameControllerGetProductVersion; + pSDL_GameControllerGetVendor SDL_GameControllerGetVendor; + pSDL_GameControllerMappingForIndex SDL_GameControllerMappingForIndex; + pSDL_GameControllerNumMappings SDL_GameControllerNumMappings; + } + } + static if(sdlSupport >= SDLSupport.sdl209) { + extern(C) @nogc nothrow { + alias pSDL_GameControllerMappingForDeviceIndex = char* function(int); + alias pSDL_GameControllerRumble = int function(SDL_GameController*,ushort,ushort,uint); + } + + __gshared { + pSDL_GameControllerMappingForDeviceIndex SDL_GameControllerMappingForDeviceIndex; + pSDL_GameControllerRumble SDL_GameControllerRumble; + } + } + static if(sdlSupport >= SDLSupport.sdl2010) { + extern(C) @nogc nothrow { + alias pSDL_GameControllerGetPlayerIndex = int function(SDL_GameController*); + } + __gshared { + pSDL_GameControllerGetPlayerIndex SDL_GameControllerGetPlayerIndex; + } + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlgesture.d b/demos/external/imports/bindbc/sdl/bind/sdlgesture.d new file mode 100644 index 0000000..62ea0e5 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlgesture.d @@ -0,0 +1,36 @@ + +// 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.sdlgesture; + +import bindbc.sdl.bind.sdltouch : SDL_TouchID; +import bindbc.sdl.bind.sdlrwops : SDL_RWops; + +alias SDL_GestureID = long; + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int SDL_RecordGesture(SDL_TouchID); + int SDL_SaveAllDollarTemplates(SDL_RWops*); + int SDL_SaveDollarTemplate(SDL_GestureID,SDL_RWops*); + int SDL_LoadDollarTemplates(SDL_TouchID,SDL_RWops*); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_RecordGesture = int function(SDL_TouchID); + alias pSDL_SaveAllDollarTemplates = int function(SDL_RWops*); + alias pSDL_SaveDollarTemplate = int function(SDL_GestureID,SDL_RWops*); + alias pSDL_LoadDollarTemplates = int function(SDL_TouchID,SDL_RWops*); + } + + __gshared { + pSDL_RecordGesture SDL_RecordGesture; + pSDL_SaveAllDollarTemplates SDL_SaveAllDollarTemplates; + pSDL_SaveDollarTemplate SDL_SaveDollarTemplate; + pSDL_LoadDollarTemplates SDL_LoadDollarTemplates; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlhaptic.d b/demos/external/imports/bindbc/sdl/bind/sdlhaptic.d new file mode 100644 index 0000000..f706080 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlhaptic.d @@ -0,0 +1,240 @@ + +// 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.sdlhaptic; + +import bindbc.sdl.bind.sdljoystick : SDL_Joystick; + +struct SDL_Haptic; + +enum : ushort { + SDL_HAPTIC_CONSTANT = 1u<<0, + SDL_HAPTIC_SINE = 1u<<1, + SDL_HAPTIC_LEFTRIGHT = 1u<<2, + SDL_HAPTIC_TRIANGLE = 1u<<3, + SDL_HAPTIC_SAWTOOTHUP = 1u<<4, + SDL_HAPTIC_SAWTOOTHDOWN = 1u<<5, + SDL_HAPTIC_RAMP = 1u<<6, + SDL_HAPTIC_SPRING = 1u<<7, + SDL_HAPTIC_DAMPER = 1u<<8, + SDL_HAPTIC_INERTIA = 1u<<9, + SDL_HAPTIC_FRICTION = 1u<<10, + SDL_HAPTIC_CUSTOM = 1u<<11, + SDL_HAPTIC_GAIN = 1u<<12, + SDL_HAPTIC_AUTOCENTER = 1u<<13, + SDL_HAPTIC_STATUS = 1u<<14, + SDL_HAPTIC_PAUSE = 1u<<15, +} + +enum { + SDL_HAPTIC_POLAR = 0, + SDL_HAPTIC_CARTESIAN = 1, + SDL_HAPTIC_SPHERICAL = 2, +} + +enum SDL_HAPTIC_INFINITY = 4294967295U; + +struct SDL_HapticDirection { + ubyte type; + int[3] dir; +} + +struct SDL_HapticConstant { + ushort type; + SDL_HapticDirection direction; + uint length; + ushort delay; + ushort button; + ushort interval; + short level; + ushort attack_length; + ushort attack_level; + ushort fade_length; + ushort fade_level; +} + +struct SDL_HapticPeriodic { + ushort type; + SDL_HapticDirection direction; + uint length; + uint delay; + ushort button; + ushort interval; + ushort period; + short magnitude; + short offset; + ushort phase; + ushort attack_length; + ushort attack_level; + ushort fade_length; + ushort fade_level; +} + +struct SDL_HapticCondition { + ushort type; + SDL_HapticDirection direciton; + uint length; + ushort delay; + ushort button; + ushort interval; + ushort[3] right_sat; + ushort[3] left_sat; + short[3] right_coeff; + short[3] left_coeff; + ushort[3] deadband; + ushort[3] center; +} + +struct SDL_HapticRamp { + ushort type; + SDL_HapticDirection direction; + uint length; + ushort delay; + ushort button; + ushort interval; + short start; + short end; + ushort attack_length; + ushort attack_level; + ushort fade_length; + ushort fade_level; +} + +struct SDL_HapticLeftRight { + ushort type; + uint length; + ushort large_magnitude; + ushort small_magnitude; +} + +struct SDL_HapticCustom { + ushort type; + SDL_HapticDirection direction; + uint length; + ushort delay; + ushort button; + ushort interval; + ubyte channels; + ushort period; + ushort samples; + ushort* data; + ushort attack_length; + ushort attack_level; + ushort fade_length; + ushort fade_level; +} + +union SDL_HapticEffect { + ushort type; + SDL_HapticConstant constant; + SDL_HapticPeriodic periodic; + SDL_HapticCondition condition; + SDL_HapticRamp ramp; + SDL_HapticLeftRight leftright; + SDL_HapticCustom custom; +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int SDL_NumHaptics(); + const(char)* SDL_HapticName(int); + SDL_Haptic* SDL_HapticOpen(int); + int SDL_HapticOpened(int); + int SDL_HapticIndex(SDL_Haptic*); + int SDL_MouseIsHaptic(); + SDL_Haptic* SDL_HapticOpenFromMouse(); + int SDL_JoystickIsHaptic(SDL_Joystick*); + SDL_Haptic* SDL_HapticOpenFromJoystick(SDL_Joystick*); + int SDL_HapticClose(SDL_Haptic*); + int SDL_HapticNumEffects(SDL_Haptic*); + int SDL_HapticNumEffectsPlaying(SDL_Haptic*); + uint SDL_HapticQuery(SDL_Haptic*); + int SDL_HapticNumAxes(SDL_Haptic*); + int SDL_HapticEffectSupported(SDL_Haptic*,SDL_HapticEffect*); + int SDL_HapticNewEffect(SDL_Haptic*,SDL_HapticEffect*); + int SDL_HapticUpdateEffect(SDL_Haptic*,int,SDL_HapticEffect*); + int SDL_HapticRunEffect(SDL_Haptic*,int,uint); + int SDL_HapticStopEffect(SDL_Haptic*,int); + int SDL_HapticDestroyEffect(SDL_Haptic*,int); + int SDL_HapticGetEffectStatus(SDL_Haptic*,int); + int SDL_HapticSetGain(SDL_Haptic*,int); + int SDL_HapticSetAutocenter(SDL_Haptic*,int); + int SDL_HapticPause(SDL_Haptic*); + int SDL_HapticUnpause(SDL_Haptic*); + int SDL_HapticStopAll(SDL_Haptic*); + int SDL_HapticRumbleSupported(SDL_Haptic*); + int SDL_HapticRumbleInit(SDL_Haptic*); + int SDL_HapticRumblePlay(SDL_Haptic*,float,uint); + int SDL_HapticRumbleStop(SDL_Haptic*); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_NumHaptics = int function(); + alias pSDL_HapticName = const(char)* function(int); + alias pSDL_HapticOpen = SDL_Haptic* function(int); + alias pSDL_HapticOpened = int function(int); + alias pSDL_HapticIndex = int function(SDL_Haptic*); + alias pSDL_MouseIsHaptic = int function(); + alias pSDL_HapticOpenFromMouse = SDL_Haptic* function(); + alias pSDL_JoystickIsHaptic = int function(SDL_Joystick*); + alias pSDL_HapticOpenFromJoystick = SDL_Haptic* function(SDL_Joystick*); + alias pSDL_HapticClose = int function(SDL_Haptic*); + alias pSDL_HapticNumEffects = int function(SDL_Haptic*); + alias pSDL_HapticNumEffectsPlaying = int function(SDL_Haptic*); + alias pSDL_HapticQuery = uint function(SDL_Haptic*); + alias pSDL_HapticNumAxes = int function(SDL_Haptic*); + alias pSDL_HapticEffectSupported = int function(SDL_Haptic*,SDL_HapticEffect*); + alias pSDL_HapticNewEffect = int function(SDL_Haptic*,SDL_HapticEffect*); + alias pSDL_HapticUpdateEffect = int function(SDL_Haptic*,int,SDL_HapticEffect*); + alias pSDL_HapticRunEffect = int function(SDL_Haptic*,int,uint); + alias pSDL_HapticStopEffect = int function(SDL_Haptic*,int); + alias pSDL_HapticDestroyEffect = int function(SDL_Haptic*,int); + alias pSDL_HapticGetEffectStatus = int function(SDL_Haptic*,int); + alias pSDL_HapticSetGain = int function(SDL_Haptic*,int); + alias pSDL_HapticSetAutocenter = int function(SDL_Haptic*,int); + alias pSDL_HapticPause = int function(SDL_Haptic*); + alias pSDL_HapticUnpause = int function(SDL_Haptic*); + alias pSDL_HapticStopAll = int function(SDL_Haptic*); + alias pSDL_HapticRumbleSupported = int function(SDL_Haptic*); + alias pSDL_HapticRumbleInit = int function(SDL_Haptic*); + alias pSDL_HapticRumblePlay = int function(SDL_Haptic*,float,uint); + alias pSDL_HapticRumbleStop = int function(SDL_Haptic*); + } + + __gshared { + pSDL_NumHaptics SDL_NumHaptics; + pSDL_HapticName SDL_HapticName; + pSDL_HapticOpen SDL_HapticOpen; + pSDL_HapticOpened SDL_HapticOpened; + pSDL_HapticIndex SDL_HapticIndex; + pSDL_MouseIsHaptic SDL_MouseIsHaptic; + pSDL_HapticOpenFromMouse SDL_HapticOpenFromMouse; + pSDL_JoystickIsHaptic SDL_JoystickIsHaptic; + pSDL_HapticOpenFromJoystick SDL_HapticOpenFromJoystick; + pSDL_HapticClose SDL_HapticClose; + pSDL_HapticNumEffects SDL_HapticNumEffects; + pSDL_HapticNumEffectsPlaying SDL_HapticNumEffectsPlaying; + pSDL_HapticQuery SDL_HapticQuery; + pSDL_HapticNumAxes SDL_HapticNumAxes; + pSDL_HapticEffectSupported SDL_HapticEffectSupported; + pSDL_HapticNewEffect SDL_HapticNewEffect; + pSDL_HapticUpdateEffect SDL_HapticUpdateEffect; + pSDL_HapticRunEffect SDL_HapticRunEffect; + pSDL_HapticStopEffect SDL_HapticStopEffect; + pSDL_HapticDestroyEffect SDL_HapticDestroyEffect; + pSDL_HapticGetEffectStatus SDL_HapticGetEffectStatus; + pSDL_HapticSetGain SDL_HapticSetGain; + pSDL_HapticSetAutocenter SDL_HapticSetAutocenter; + pSDL_HapticPause SDL_HapticPause; + pSDL_HapticUnpause SDL_HapticUnpause; + pSDL_HapticStopAll SDL_HapticStopAll; + pSDL_HapticRumbleSupported SDL_HapticRumbleSupported; + pSDL_HapticRumbleInit SDL_HapticRumbleInit; + pSDL_HapticRumblePlay SDL_HapticRumblePlay; + pSDL_HapticRumbleStop SDL_HapticRumbleStop; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlhints.d b/demos/external/imports/bindbc/sdl/bind/sdlhints.d new file mode 100644 index 0000000..e5aad86 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlhints.d @@ -0,0 +1,186 @@ + +// 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.sdlhints; + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; + +enum SDL_HINT_FRAMEBUFFER_ACCELERATION = "SDL_FRAMEBUFFER_ACCELERATION"; +enum SDL_HINT_RENDER_DRIVER = "SDL_RENDER_DRIVER"; +enum SDL_HINT_RENDER_OPENGL_SHADERS = "SDL_RENDER_OPENGL_SHADERS"; +enum SDL_HINT_RENDER_SCALE_QUALITY = "SDL_RENDER_SCALE_QUALITY"; +enum SDL_HINT_RENDER_VSYNC = "SDL_RENDER_VSYNC"; +enum SDL_HINT_VIDEO_X11_XVIDMODE = "SDL_VIDEO_X11_XVIDMODE"; +enum SDL_HINT_VIDEO_X11_XINERAMA = "SDL_VIDEO_X11_XINERAMA"; +enum SDL_HINT_VIDEO_X11_XRANDR = "SDL_VIDEO_X11_XRANDR"; +enum SDL_HINT_GRAB_KEYBOARD = "SDL_GRAB_KEYBOARD"; +enum SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS = "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"; +enum SDL_HINT_IDLE_TIMER_DISABLED = "SDL_IOS_IDLE_TIMER_DISABLED"; +enum SDL_HINT_ORIENTATIONS = "SDL_IOS_ORIENTATIONS"; +enum SDL_HINT_XINPUT_ENABLED = "SDL_XINPUT_ENABLED"; +enum SDL_HINT_GAMECONTROLLERCONFIG = "SDL_GAMECONTROLLERCONFIG"; +enum SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS = "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS"; +enum SDL_HINT_ALLOW_TOPMOST = "SDL_ALLOW_TOPMOST"; +enum SDL_HINT_TIMER_RESOLUTION = "SDL_TIMER_RESOLUTION"; + +static if(sdlSupport >= SDLSupport.sdl201) { + enum SDL_HINT_RENDER_DIRECT3D_THREADSAFE = "SDL_RENDER_DIRECT3D_THREADSAFE"; + enum SDL_HINT_VIDEO_HIGHDPI_DISABLED = "SDL_VIDEO_HIGHDPI_DISABLED"; +} + +static if(sdlSupport >= SDLSupport.sdl202) { + enum SDL_HINT_VIDEO_ALLOW_SCREENSAVER = "SDL_VIDEO_ALLOW_SCREENSAVER"; + enum SDL_HINT_MOUSE_RELATIVE_MODE_WARP = "SDL_MOUSE_RELATIVE_MODE_WARP"; + enum SDL_HINT_ACCELEROMETER_AS_JOYSTICK = "SDL_ACCELEROMETER_AS_JOYSTICK"; + enum SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK = "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"; + enum SDL_HINT_VIDEO_WIN_D3DCOMPILER = "SDL_VIDEO_WIN_D3DCOMPILER"; + enum SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT = "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT"; + enum SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES = "SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES"; +} + +// This is *intended* to be == and not >=. The values for all of these changed in 2.0.4. +static if(sdlSupport == SDLSupport.sdl203) { + enum SDL_HINT_RENDER_DIRECT3D11_DEBUG = "SDL_HINT_RENDER_DIRECT3D11_DEBUG"; + enum SDL_HINT_WINRT_PRIVACY_POLICY_URL = "SDL_HINT_WINRT_PRIVACY_POLICY_URL"; + enum SDL_HINT_WINRT_PRIVACY_POLICY_LABEL = "SDL_HINT_WINRT_PRIVACY_POLICY_LABEL"; + enum SDL_HINT_WINRT_HANDLE_BACK_BUTTON = "SDL_HINT_WINRT_HANDLE_BACK_BUTTON"; +} + +static if(sdlSupport >= SDLSupport.sdl204) { + enum SDL_HINT_VIDEO_X11_NET_WM_PING = "SDL_VIDEO_X11_NET_WM_PING"; + enum SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN = "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"; + enum SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP = "SDL_WINDOWS_ENABLE_MESSAGELOOP"; + enum SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING = "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING"; + enum SDL_HINT_THREAD_STACK_SIZE = "SDL_THREAD_STACK_SIZE"; + enum SDL_HINT_MAC_BACKGROUND_APP = "SDL_MAC_BACKGROUND_APP"; + enum SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION = "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION"; + enum SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION = "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION"; + enum SDL_HINT_IME_INTERNAL_EDITING = "SDL_IME_INTERNAL_EDITING"; + enum SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT = "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"; + enum SDL_HINT_NO_SIGNAL_HANDLERS = "SDL_NO_SIGNAL_HANDLERS"; + enum SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 = "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4"; + + // Changed values from those introduced in 2.0.3 + enum SDL_HINT_RENDER_DIRECT3D11_DEBUG = "SDL_RENDER_DIRECT3D11_DEBUG"; + enum SDL_HINT_WINRT_PRIVACY_POLICY_URL = "SDL_WINRT_PRIVACY_POLICY_URL"; + enum SDL_HINT_WINRT_PRIVACY_POLICY_LABEL = "SDL_WINRT_PRIVACY_POLICY_LABEL"; + enum SDL_HINT_WINRT_HANDLE_BACK_BUTTON = "SDL_WINRT_HANDLE_BACK_BUTTON"; +} + +static if(sdlSupport >= SDLSupport.sdl205) { + enum SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH = "SDL_MOUSE_FOCUS_CLICKTHROUGH"; + enum SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS = "SDL_APPLE_TV_CONTROLLER_UI_EVENTS"; + enum SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION = "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION"; + enum SDL_HINT_BMP_SAVE_LEGACY_FORMAT = "SDL_BMP_SAVE_LEGACY_FORMAT"; + enum SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING = "SDL_WINDOWS_DISABLE_THREAD_NAMING"; + enum SDL_HINT_RPI_VIDEO_LAYER = "SDL_RPI_VIDEO_LAYER"; +} + +static if(sdlSupport >= SDLSupport.sdl206) { + enum SDL_HINT_RENDER_LOGICAL_SIZE_MODE = "SDL_RENDER_LOGICAL_SIZE_MODE"; + enum SDL_HINT_WINDOWS_INTRESOURCE_ICON = "SDL_WINDOWS_INTRESOURCE_ICON"; + enum SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL = "SDL_WINDOWS_INTRESOURCE_ICON_SMALL"; + enum SDL_HINT_MOUSE_NORMAL_SPEED_SCALE = "SDL_MOUSE_NORMAL_SPEED_SCALE"; + enum SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE = "SDL_MOUSE_RELATIVE_SPEED_SCALE"; + enum SDL_HINT_TOUCH_MOUSE_EVENTS = "SDL_TOUCH_MOUSE_EVENTS"; + enum SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES = "SDL_GAMECONTROLLER_IGNORE_DEVICES"; + enum SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT = "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT"; + enum SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION = "SDL_QTWAYLAND_CONTENT_ORIENTATION"; + enum SDL_HINT_QTWAYLAND_WINDOW_FLAGS = "SDL_QTWAYLAND_WINDOW_FLAGS"; + enum SDL_HINT_OPENGL_ES_DRIVER = "SDL_OPENGL_ES_DRIVER"; + enum SDL_HINT_AUDIO_RESAMPLING_MODE = "SDL_AUDIO_RESAMPLING_MODE"; + enum SDL_HINT_AUDIO_CATEGORY = "SDL_AUDIO_CATEGORY"; +} + +static if(sdlSupport >= SDLSupport.sdl208) { + enum SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR = "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"; + enum SDL_HINT_IOS_HIDE_HOME_INDICATOR = "SDL_IOS_HIDE_HOME_INDICATOR"; + enum SDL_HINT_TV_REMOTE_AS_JOYSTICK = "SDL_TV_REMOTE_AS_JOYSTICK"; + enum SDL_HINT_RETURN_KEY_HIDES_IME = "SDL_RETURN_KEY_HIDES_IME"; + enum SDL_HINT_VIDEO_DOUBLE_BUFFER = "SDL_VIDEO_DOUBLE_BUFFER"; +} + +static if(sdlSupport >= SDLSupport.sdl209) { + enum SDL_HINT_MOUSE_DOUBLE_CLICK_TIME = "SDL_MOUSE_DOUBLE_CLICK_TIME"; + enum SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS = "SDL_MOUSE_DOUBLE_CLICK_RADIUS"; + enum SDL_HINT_JOYSTICK_HIDAPI = "SDL_JOYSTICK_HIDAPI"; + enum SDL_HINT_JOYSTICK_HIDAPI_PS4 = "SDL_JOYSTICK_HIDAPI_PS4"; + enum SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE = "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE"; + enum SDL_HINT_JOYSTICK_HIDAPI_STEAM = "SDL_JOYSTICK_HIDAPI_STEAM"; + enum SDL_HINT_JOYSTICK_HIDAPI_SWITCH = "SDL_JOYSTICK_HIDAPI_SWITCH"; + enum SDL_HINT_JOYSTICK_HIDAPI_XBOX = "SDL_JOYSTICK_HIDAPI_XBOX"; + enum SDL_HINT_ENABLE_STEAM_CONTROLLERS = "SDL_ENABLE_STEAM_CONTROLLERS"; + enum SDL_HINT_ANDROID_TRAP_BACK_BUTTON = "SDL_ANDROID_TRAP_BACK_BUTTON"; +} + +static if(sdlSupport >= SDLSupport.sdl2010) { + enum SDL_HINT_MOUSE_TOUCH_EVENTS = "SDL_MOUSE_TOUCH_EVENTS"; + enum SDL_HINT_GAMECONTROLLERCONFIG_FILE = "SDL_GAMECONTROLLERCONFIG_FILE"; + enum SDL_HINT_ANDROID_BLOCK_ON_PAUSE = "SDL_ANDROID_BLOCK_ON_PAUSE"; + enum SDL_HINT_RENDER_BATCHING = "SDL_RENDER_BATCHING"; + enum SDL_HINT_EVENT_LOGGING = "SDL_EVENT_LOGGING"; + enum SDL_HINT_WAVE_RIFF_CHUNK_SIZE = "SDL_WAVE_RIFF_CHUNK_SIZE"; + enum SDL_HINT_WAVE_TRUNCATION = "SDL_WAVE_TRUNCATION"; + enum SDL_HINT_WAVE_FACT_CHUNK = "SDL_WAVE_FACT_CHUNK"; +} +else static if(sdlSupport >= SDLSupport.sdl204) { + // Added in 2.0.4, removed in 2.0.10. + enum SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH = "SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH"; +} + +enum SDL_HintPriority { + SDL_HINT_DEFAULT, + SDL_HINT_NORMAL, + SDL_HINT_OVERRIDE, +} +mixin(expandEnum!SDL_HintPriority); + +extern(C) nothrow alias SDL_HintCallback = void function(void*, const(char)*, const(char)*); + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + SDL_bool SDL_SetHintWithPriority(const(char)*,const(char)*,SDL_HintPriority); + SDL_bool SDL_SetHint(const(char)*,const(char)*); + const(char)* SDL_GetHint(const(char)*); + void SDL_AddHintCallback(const(char)*,SDL_HintCallback,void*); + void SDL_DelHintCallback(const(char)*,SDL_HintCallback,void*); + void SDL_ClearHints(); + + static if(sdlSupport >= SDLSupport.sdl205) { + SDL_bool SDL_GetHintBoolean(const(char)*,SDL_bool); + } + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_SetHintWithPriority = SDL_bool function(const(char)*,const(char)*,SDL_HintPriority); + alias pSDL_SetHint = SDL_bool function(const(char)*,const(char)*); + alias pSDL_GetHint = const(char)* function(const(char)*); + alias pSDL_AddHintCallback = void function(const(char)*,SDL_HintCallback,void*); + alias pSDL_DelHintCallback = void function(const(char)*,SDL_HintCallback,void*); + alias pSDL_ClearHints = void function(); + } + + __gshared { + pSDL_SetHintWithPriority SDL_SetHintWithPriority; + pSDL_SetHint SDL_SetHint; + pSDL_GetHint SDL_GetHint; + pSDL_AddHintCallback SDL_AddHintCallback; + pSDL_DelHintCallback SDL_DelHintCallback; + pSDL_ClearHints SDL_ClearHints; + } + + static if(sdlSupport >= SDLSupport.sdl205) { + extern(C) @nogc nothrow { + alias pSDL_GetHintBoolean = SDL_bool function(const(char)*,SDL_bool); + } + + __gshared { + pSDL_GetHintBoolean SDL_GetHintBoolean; + } + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdljoystick.d b/demos/external/imports/bindbc/sdl/bind/sdljoystick.d new file mode 100644 index 0000000..32f54ec --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdljoystick.d @@ -0,0 +1,231 @@ + +// 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.sdljoystick; + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; + +struct SDL_Joystick; + +struct SDL_JoystickGUID { + ubyte[16] data; +} + +alias SDL_JoystickID = int; + +enum : ubyte { + SDL_HAT_CENTERED = 0x00, + SDL_HAT_UP = 0x01, + SDL_HAT_RIGHT = 0x02, + SDL_HAT_DOWN = 0x04, + SDL_HAT_LEFT = 0x08, + SDL_HAT_RIGHTUP = (SDL_HAT_RIGHT|SDL_HAT_UP), + SDL_HAT_RIGHTDOWN = (SDL_HAT_RIGHT|SDL_HAT_DOWN), + SDL_HAT_LEFTUP = (SDL_HAT_LEFT|SDL_HAT_UP), + SDL_HAT_LEFTDOWN = (SDL_HAT_LEFT|SDL_HAT_DOWN), +} + +static if(sdlSupport >= SDLSupport.sdl204) { + enum SDL_JoystickPowerLevel { + SDL_JOYSTICK_POWER_UNKNOWN = -1, + SDL_JOYSTICK_POWER_EMPTY, + SDL_JOYSTICK_POWER_LOW, + SDL_JOYSTICK_POWER_MEDIUM, + SDL_JOYSTICK_POWER_FULL, + SDL_JOYSTICK_POWER_WIRED, + SDL_JOYSTICK_POWER_MAX + } + mixin(expandEnum!SDL_JoystickPowerLevel); +} + +static if(sdlSupport >= SDLSupport.sdl206) { + enum SDL_JoystickType { + SDL_JOYSTICK_TYPE_UNKNOWN, + SDL_JOYSTICK_TYPE_GAMECONTROLLER, + SDL_JOYSTICK_TYPE_WHEEL, + SDL_JOYSTICK_TYPE_ARCADE_STICK, + SDL_JOYSTICK_TYPE_FLIGHT_STICK, + SDL_JOYSTICK_TYPE_DANCE_PAD, + SDL_JOYSTICK_TYPE_GUITAR, + SDL_JOYSTICK_TYPE_DRUM_KIT, + SDL_JOYSTICK_TYPE_ARCADE_PAD, + SDL_JOYSTICK_TYPE_THROTTLE, + } + mixin(expandEnum!SDL_JoystickType); + + enum { + SDL_JOYSTICK_AXIS_MAX = 32767, + SDL_JOYSTICK_AXIS_MIN = -32768, + } +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int SDL_NumJoysticks(); + const(char)* SDL_JoystickNameForIndex(int); + SDL_JoystickGUID SDL_JoystickGetDeviceGUID(int); + SDL_Joystick* SDL_JoystickOpen(int); + const(char)* SDL_JoystickName(SDL_Joystick*); + SDL_JoystickGUID SDL_JoystickGetGUID(SDL_Joystick*); + char* SDL_JoystickGetGUIDString(SDL_JoystickGUID); + SDL_JoystickGUID SDL_JoystickGetGUIDFromString(const(char)*); + SDL_bool SDL_JoystickGetAttached(SDL_Joystick*); + SDL_JoystickID SDL_JoystickInstanceID(SDL_Joystick*); + int SDL_JoystickNumAxes(SDL_Joystick*); + int SDL_JoystickNumBalls(SDL_Joystick*); + int SDL_JoystickNumHats(SDL_Joystick*); + int SDL_JoystickNumButtons(SDL_Joystick*); + void SDL_JoystickUpdate(); + int SDL_JoystickEventState(int); + short SDL_JoystickGetAxis(SDL_Joystick*,int); + ubyte SDL_JoystickGetHat(SDL_Joystick*,int); + int SDL_JoystickGetBall(SDL_Joystick*,int,int*,int*); + ubyte SDL_JoystickGetButton(SDL_Joystick*,int); + void SDL_JoystickClose(SDL_Joystick*); + + static if(sdlSupport >= SDLSupport.sdl204) { + SDL_JoystickPowerLevel SDL_JoystickCurrentPowerLevel(SDL_Joystick*); + SDL_Joystick* SDL_JoystickFromInstanceID(SDL_JoystickID); + } + static if(sdlSupport >= SDLSupport.sdl206) { + SDL_bool SDL_JoystickGetAxisInitialState(SDL_Joystick*,int,short*); + SDL_JoystickType SDL_JoystickGetDeviceInstanceID(int); + ushort SDL_JoystickGetDeviceProduct(int); + ushort SDL_JoystickGetDeviceProductVersion(int); + SDL_JoystickType SDL_JoystickGetDeviceType(int); + ushort SDL_JoystickGetDeviceVendor(int); + ushort SDL_JoystickGetProduct(SDL_Joystick*); + ushort SDL_JoystickGetProductVersion(SDL_Joystick*); + SDL_JoystickType SDL_JoystickGetType(SDL_Joystick*); + ushort SDL_JoystickGetVendor(SDL_Joystick*); + } + static if(sdlSupport >= SDLSupport.sdl207) { + void SDL_LockJoysticks(); + void SDL_UnlockJoysticks(); + } + static if(sdlSupport >= SDLSupport.sdl209) { + int SDL_JoystickRumble(SDL_Joystick*,ushort,ushort,uint); + } + static if(sdlSupport >= SDLSupport.sdl2010) { + int SDL_JoystickGetDevicePlayerIndex(int); + int SDL_JoystickGetPlayerIndex(SDL_Joystick*); + } + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_NumJoysticks = int function(); + alias pSDL_JoystickNameForIndex = const(char)* function(int); + alias pSDL_JoystickGetDeviceGUID = SDL_JoystickGUID function(int); + alias pSDL_JoystickOpen = SDL_Joystick* function(int); + alias pSDL_JoystickName = const(char)* function(SDL_Joystick*); + alias pSDL_JoystickGetGUID = SDL_JoystickGUID function(SDL_Joystick*); + alias pSDL_JoystickGetGUIDString = char* function(SDL_JoystickGUID); + alias pSDL_JoystickGetGUIDFromString = SDL_JoystickGUID function(const(char)*); + alias pSDL_JoystickGetAttached = SDL_bool function(SDL_Joystick*); + alias pSDL_JoystickInstanceID = SDL_JoystickID function(SDL_Joystick*); + alias pSDL_JoystickNumAxes = int function(SDL_Joystick*); + alias pSDL_JoystickNumBalls = int function(SDL_Joystick*); + alias pSDL_JoystickNumHats = int function(SDL_Joystick*); + alias pSDL_JoystickNumButtons = int function(SDL_Joystick*); + alias pSDL_JoystickUpdate = void function(); + alias pSDL_JoystickEventState = int function(int); + alias pSDL_JoystickGetAxis = short function(SDL_Joystick*,int); + alias pSDL_JoystickGetHat = ubyte function(SDL_Joystick*,int); + alias pSDL_JoystickGetBall = int function(SDL_Joystick*,int,int*,int*); + alias pSDL_JoystickGetButton = ubyte function(SDL_Joystick*,int); + alias pSDL_JoystickClose = void function(SDL_Joystick*); + } + __gshared { + pSDL_NumJoysticks SDL_NumJoysticks; + pSDL_JoystickNameForIndex SDL_JoystickNameForIndex; + pSDL_JoystickGetDeviceGUID SDL_JoystickGetDeviceGUID; + pSDL_JoystickOpen SDL_JoystickOpen; + pSDL_JoystickName SDL_JoystickName; + pSDL_JoystickGetGUID SDL_JoystickGetGUID; + pSDL_JoystickGetGUIDString SDL_JoystickGetGUIDString; + pSDL_JoystickGetGUIDFromString SDL_JoystickGetGUIDFromString; + pSDL_JoystickGetAttached SDL_JoystickGetAttached; + pSDL_JoystickInstanceID SDL_JoystickInstanceID; + pSDL_JoystickNumAxes SDL_JoystickNumAxes; + pSDL_JoystickNumBalls SDL_JoystickNumBalls; + pSDL_JoystickNumHats SDL_JoystickNumHats; + pSDL_JoystickNumButtons SDL_JoystickNumButtons; + pSDL_JoystickUpdate SDL_JoystickUpdate; + pSDL_JoystickEventState SDL_JoystickEventState; + pSDL_JoystickGetAxis SDL_JoystickGetAxis; + pSDL_JoystickGetHat SDL_JoystickGetHat; + pSDL_JoystickGetBall SDL_JoystickGetBall; + pSDL_JoystickGetButton SDL_JoystickGetButton; + pSDL_JoystickClose SDL_JoystickClose; + } + static if(sdlSupport >= SDLSupport.sdl204) { + extern(C) @nogc nothrow { + alias pSDL_JoystickCurrentPowerLevel = SDL_JoystickPowerLevel function(SDL_Joystick*); + alias pSDL_JoystickFromInstanceID = SDL_Joystick* function(SDL_JoystickID); + } + __gshared { + pSDL_JoystickCurrentPowerLevel SDL_JoystickCurrentPowerLevel; + pSDL_JoystickFromInstanceID SDL_JoystickFromInstanceID; + } + } + static if(sdlSupport >= SDLSupport.sdl206) { + extern(C) @nogc nothrow { + alias pSDL_JoystickGetAxisInitialState = SDL_bool function(SDL_Joystick*,int,short*); + alias pSDL_JoystickGetDeviceInstanceID = SDL_JoystickType function(int); + alias pSDL_JoystickGetDeviceProduct = ushort function(int); + alias pSDL_JoystickGetDeviceProductVersion = ushort function(int); + alias pSDL_JoystickGetDeviceType = SDL_JoystickType function(int); + alias pSDL_JoystickGetDeviceVendor = ushort function(int); + alias pSDL_JoystickGetProduct = ushort function(SDL_Joystick*); + alias pSDL_JoystickGetProductVersion = ushort function(SDL_Joystick*); + alias pSDL_JoystickGetType = SDL_JoystickType function(SDL_Joystick*); + alias pSDL_JoystickGetVendor = ushort function(SDL_Joystick*); + } + __gshared { + pSDL_JoystickGetAxisInitialState SDL_JoystickGetAxisInitialState; + pSDL_JoystickGetDeviceInstanceID SDL_JoystickGetDeviceInstanceID; + pSDL_JoystickGetDeviceProduct SDL_JoystickGetDeviceProduct; + pSDL_JoystickGetDeviceProductVersion SDL_JoystickGetDeviceProductVersion; + pSDL_JoystickGetDeviceType SDL_JoystickGetDeviceType; + pSDL_JoystickGetDeviceVendor SDL_JoystickGetDeviceVendor; + pSDL_JoystickGetProduct SDL_JoystickGetProduct; + pSDL_JoystickGetProductVersion SDL_JoystickGetProductVersion; + pSDL_JoystickGetType SDL_JoystickGetType; + pSDL_JoystickGetVendor SDL_JoystickGetVendor; + } + } + static if(sdlSupport >= SDLSupport.sdl207) { + extern(C) @nogc nothrow { + alias pSDL_LockJoysticks = void function(); + alias pSDL_UnlockJoysticks = void function(); + } + __gshared { + pSDL_LockJoysticks SDL_LockJoysticks; + pSDL_UnlockJoysticks SDL_UnlockJoysticks; + } + } + static if(sdlSupport >= SDLSupport.sdl209) { + extern(C) @nogc nothrow { + alias pSDL_JoystickRumble = int function(SDL_Joystick*,ushort,ushort,uint); + } + __gshared { + pSDL_JoystickRumble SDL_JoystickRumble; + } + } + + static if(sdlSupport >= SDLSupport.sdl2010) { + extern(C) @nogc nothrow { + alias pSDL_JoystickGetDevicePlayerIndex = int function(int); + alias pSDL_JoystickGetPlayerIndex = int function(SDL_Joystick*); + } + __gshared { + pSDL_JoystickGetDevicePlayerIndex SDL_JoystickGetDevicePlayerIndex; + pSDL_JoystickGetPlayerIndex SDL_JoystickGetPlayerIndex; + } + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlkeyboard.d b/demos/external/imports/bindbc/sdl/bind/sdlkeyboard.d new file mode 100644 index 0000000..4f4fabe --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlkeyboard.d @@ -0,0 +1,80 @@ + +// 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.sdlkeyboard; + +import bindbc.sdl.bind.sdlkeycode : SDL_Keycode, SDL_Keymod; +import bindbc.sdl.bind.sdlrect : SDL_Rect; +import bindbc.sdl.bind.sdlscancode : SDL_Scancode; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; +import bindbc.sdl.bind.sdlvideo : SDL_Window; + +struct SDL_Keysym { + SDL_Scancode scancode; + SDL_Keycode sym; + ushort mod; + uint unused; +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + SDL_Window* SDL_GetKeyboardFocus(); + ubyte* SDL_GetKeyboardState(int*); + SDL_Keymod SDL_GetModState(); + void SDL_SetModState(SDL_Keymod); + SDL_Keycode SDL_GetKeyFromScancode(SDL_Scancode); + SDL_Scancode SDL_GetScancodeFromKey(SDL_Keycode); + const(char)* SDL_GetScancodeName(SDL_Scancode); + SDL_Scancode SDL_GetScancodeFromName(const(char)*); + const(char)* SDL_GetKeyName(SDL_Keycode); + SDL_Keycode SDL_GetKeyFromName(const(char)*); + void SDL_StartTextInput(); + SDL_bool SDL_IsTextInputActive(); + void SDL_StopTextInput(); + void SDL_SetTextInputRect(SDL_Rect*); + SDL_bool SDL_HasScreenKeyboardSupport(); + SDL_bool SDL_IsScreenKeyboardShown(SDL_Window*); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GetKeyboardFocus = SDL_Window* function(); + alias pSDL_GetKeyboardState = ubyte* function(int*); + alias pSDL_GetModState = SDL_Keymod function(); + alias pSDL_SetModState = void function(SDL_Keymod); + alias pSDL_GetKeyFromScancode = SDL_Keycode function(SDL_Scancode); + alias pSDL_GetScancodeFromKey = SDL_Scancode function(SDL_Keycode); + alias pSDL_GetScancodeName = const(char)* function(SDL_Scancode); + alias pSDL_GetScancodeFromName = SDL_Scancode function(const(char)*); + alias pSDL_GetKeyName = const(char)* function(SDL_Keycode); + alias pSDL_GetKeyFromName = SDL_Keycode function(const(char)*); + alias pSDL_StartTextInput = void function(); + alias pSDL_IsTextInputActive = SDL_bool function(); + alias pSDL_StopTextInput = void function(); + alias pSDL_SetTextInputRect = void function(SDL_Rect*); + alias pSDL_HasScreenKeyboardSupport = SDL_bool function(); + alias pSDL_IsScreenKeyboardShown = SDL_bool function(SDL_Window*); + } + + __gshared { + pSDL_GetKeyboardFocus SDL_GetKeyboardFocus; + pSDL_GetKeyboardState SDL_GetKeyboardState; + pSDL_GetModState SDL_GetModState; + pSDL_SetModState SDL_SetModState; + pSDL_GetKeyFromScancode SDL_GetKeyFromScancode; + pSDL_GetScancodeFromKey SDL_GetScancodeFromKey; + pSDL_GetScancodeName SDL_GetScancodeName; + pSDL_GetScancodeFromName SDL_GetScancodeFromName; + pSDL_GetKeyName SDL_GetKeyName; + pSDL_GetKeyFromName SDL_GetKeyFromName; + pSDL_StartTextInput SDL_StartTextInput; + pSDL_IsTextInputActive SDL_IsTextInputActive; + pSDL_StopTextInput SDL_StopTextInput; + pSDL_SetTextInputRect SDL_SetTextInputRect; + pSDL_HasScreenKeyboardSupport SDL_HasScreenKeyboardSupport; + pSDL_IsScreenKeyboardShown SDL_IsScreenKeyboardShown; + } +} diff --git a/demos/external/imports/bindbc/sdl/bind/sdlkeycode.d b/demos/external/imports/bindbc/sdl/bind/sdlkeycode.d new file mode 100644 index 0000000..127067e --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlkeycode.d @@ -0,0 +1,288 @@ + +// 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.sdlkeycode; + +import bindbc.sdl.config, + bindbc.sdl.bind.sdlscancode; + +enum SDLK_SCANCODE_MASK = 1<<30; + +enum SDL_SCANCODE_TO_KEYCODE(SDL_Scancode x) = x | SDLK_SCANCODE_MASK; + +enum SDL_Keycode { + SDLK_UNKNOWN = 0, + SDLK_RETURN = '\r', + SDLK_ESCAPE = '\033', + SDLK_BACKSPACE = '\b', + SDLK_TAB = '\t', + SDLK_SPACE = ' ', + SDLK_EXCLAIM = '!', + SDLK_QUOTEDBL = '"', + SDLK_HASH = '#', + SDLK_PERCENT = '%', + SDLK_DOLLAR = '$', + SDLK_AMPERSAND = '&', + SDLK_QUOTE = '\'', + SDLK_LEFTPAREN = '(', + SDLK_RIGHTPAREN = ')', + SDLK_ASTERISK = '*', + SDLK_PLUS = '+', + SDLK_COMMA = ',', + SDLK_MINUS = '-', + SDLK_PERIOD = '.', + SDLK_SLASH = '/', + SDLK_0 = '0', + SDLK_1 = '1', + SDLK_2 = '2', + SDLK_3 = '3', + SDLK_4 = '4', + SDLK_5 = '5', + SDLK_6 = '6', + SDLK_7 = '7', + SDLK_8 = '8', + SDLK_9 = '9', + SDLK_COLON = ':', + SDLK_SEMICOLON = ';', + SDLK_LESS = '<', + SDLK_EQUALS = '=', + SDLK_GREATER = '>', + SDLK_QUESTION = '?', + SDLK_AT = '@', + + SDLK_LEFTBRACKET = '[', + SDLK_BACKSLASH = '\\', + SDLK_RIGHTBRACKET = ']', + SDLK_CARET = '^', + SDLK_UNDERSCORE = '_', + SDLK_BACKQUOTE = '`', + SDLK_a = 'a', + SDLK_b = 'b', + SDLK_c = 'c', + SDLK_d = 'd', + SDLK_e = 'e', + SDLK_f = 'f', + SDLK_g = 'g', + SDLK_h = 'h', + SDLK_i = 'i', + SDLK_j = 'j', + SDLK_k = 'k', + SDLK_l = 'l', + SDLK_m = 'm', + SDLK_n = 'n', + SDLK_o = 'o', + SDLK_p = 'p', + SDLK_q = 'q', + SDLK_r = 'r', + SDLK_s = 's', + SDLK_t = 't', + SDLK_u = 'u', + SDLK_v = 'v', + SDLK_w = 'w', + SDLK_x = 'x', + SDLK_y = 'y', + SDLK_z = 'z', + + SDLK_CAPSLOCK = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_CAPSLOCK), + + SDLK_F1 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F1), + SDLK_F2 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F2), + SDLK_F3 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F3), + SDLK_F4 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F4), + SDLK_F5 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F5), + SDLK_F6 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F6), + SDLK_F7 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F7), + SDLK_F8 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F8), + SDLK_F9 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F9), + SDLK_F10 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F10), + SDLK_F11 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F11), + SDLK_F12 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F12), + + SDLK_PRINTSCREEN = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_PRINTSCREEN), + SDLK_SCROLLLOCK = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_SCROLLLOCK), + SDLK_PAUSE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_PAUSE), + SDLK_INSERT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_INSERT), + SDLK_HOME = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_HOME), + SDLK_PAGEUP = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_PAGEUP), + SDLK_DELETE = '\177', + SDLK_END = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_END), + SDLK_PAGEDOWN = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_PAGEDOWN), + SDLK_RIGHT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_RIGHT), + SDLK_LEFT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_LEFT), + SDLK_DOWN = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_DOWN), + SDLK_UP = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_UP), + + SDLK_NUMLOCKCLEAR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_NUMLOCKCLEAR), + SDLK_KP_DIVIDE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_DIVIDE), + SDLK_KP_MULTIPLY = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_MULTIPLY), + SDLK_KP_MINUS = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_MINUS), + SDLK_KP_PLUS = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_PLUS), + SDLK_KP_ENTER = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_ENTER), + SDLK_KP_1 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_1), + SDLK_KP_2 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_2), + SDLK_KP_3 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_3), + SDLK_KP_4 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_4), + SDLK_KP_5 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_5), + SDLK_KP_6 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_6), + SDLK_KP_7 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_7), + SDLK_KP_8 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_8), + SDLK_KP_9 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_9), + SDLK_KP_0 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_0), + SDLK_KP_PERIOD = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_PERIOD), + + SDLK_APPLICATION = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_APPLICATION), + SDLK_POWER = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_POWER), + SDLK_KP_EQUALS = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_EQUALS), + SDLK_F13 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F13), + SDLK_F14 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F14), + SDLK_F15 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F15), + SDLK_F16 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F16), + SDLK_F17 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F17), + SDLK_F18 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F18), + SDLK_F19 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F19), + SDLK_F20 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F20), + SDLK_F21 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F21), + SDLK_F22 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F22), + SDLK_F23 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F23), + SDLK_F24 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_F24), + SDLK_EXECUTE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_EXECUTE), + SDLK_HELP = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_HELP), + SDLK_MENU = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_MENU), + SDLK_SELECT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_SELECT), + SDLK_STOP = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_STOP), + SDLK_AGAIN = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AGAIN), + SDLK_UNDO = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_UNDO), + SDLK_CUT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_CUT), + SDLK_COPY = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_COPY), + SDLK_PASTE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_PASTE), + SDLK_FIND = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_FIND), + SDLK_MUTE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_MUTE), + SDLK_VOLUMEUP = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_VOLUMEUP), + SDLK_VOLUMEDOWN = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_VOLUMEDOWN), + SDLK_KP_COMMA = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_COMMA), + SDLK_KP_EQUALSAS400 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_EQUALSAS400), + + SDLK_ALTERASE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_ALTERASE), + SDLK_SYSREQ = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_SYSREQ), + SDLK_CANCEL = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_CANCEL), + SDLK_CLEAR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_CLEAR), + SDLK_PRIOR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_PRIOR), + SDLK_RETURN2 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_RETURN2), + SDLK_SEPARATOR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_SEPARATOR), + SDLK_OUT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_OUT), + SDLK_OPER = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_OPER), + SDLK_CLEARAGAIN = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_CLEARAGAIN), + SDLK_CRSEL = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_CRSEL), + SDLK_EXSEL = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_EXSEL), + + SDLK_KP_00 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_00), + SDLK_KP_000 = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_000), + SDLK_THOUSANDSSEPARATOR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_THOUSANDSSEPARATOR), + SDLK_DECIMALSEPARATOR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_DECIMALSEPARATOR), + SDLK_CURRENCYUNIT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_CURRENCYUNIT), + SDLK_CURRENCYSUBUNIT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_CURRENCYSUBUNIT), + SDLK_KP_LEFTPAREN = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_LEFTPAREN), + SDLK_KP_RIGHTPAREN = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_RIGHTPAREN), + SDLK_KP_LEFTBRACE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_LEFTBRACE), + SDLK_KP_RIGHTBRACE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_RIGHTBRACE), + SDLK_KP_TAB = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_TAB), + SDLK_KP_BACKSPACE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_BACKSPACE), + SDLK_KP_A = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_A), + SDLK_KP_B = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_B), + SDLK_KP_C = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_C), + SDLK_KP_D = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_D), + SDLK_KP_E = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_E), + SDLK_KP_F = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_F), + SDLK_KP_XOR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_XOR), + SDLK_KP_POWER = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_POWER), + SDLK_KP_PERCENT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_PERCENT), + SDLK_KP_LESS = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_LESS), + SDLK_KP_GREATER = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_GREATER), + SDLK_KP_AMPERSAND = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_AMPERSAND), + SDLK_KP_DBLAMPERSAND = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_DBLAMPERSAND), + SDLK_KP_VERTICALBAR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_VERTICALBAR), + SDLK_KP_DBLVERTICALBAR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_DBLVERTICALBAR), + SDLK_KP_COLON = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_COLON), + SDLK_KP_HASH = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_HASH), + SDLK_KP_SPACE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_SPACE), + SDLK_KP_AT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_AT), + SDLK_KP_EXCLAM = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_EXCLAM), + SDLK_KP_MEMSTORE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_MEMSTORE), + SDLK_KP_MEMRECALL = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_MEMRECALL), + SDLK_KP_MEMCLEAR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_MEMCLEAR), + SDLK_KP_MEMADD = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_MEMADD), + SDLK_KP_MEMSUBTRACT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_MEMSUBTRACT), + SDLK_KP_MEMMULTIPLY = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_MEMMULTIPLY), + SDLK_KP_MEMDIVIDE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_MEMDIVIDE), + SDLK_KP_PLUSMINUS = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_PLUSMINUS), + SDLK_KP_CLEAR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_CLEAR), + SDLK_KP_CLEARENTRY = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_CLEARENTRY), + SDLK_KP_BINARY = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_BINARY), + SDLK_KP_OCTAL = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_OCTAL), + SDLK_KP_DECIMAL = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_DECIMAL), + SDLK_KP_HEXADECIMAL = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KP_HEXADECIMAL), + + SDLK_LCTRL = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_LCTRL), + SDLK_LSHIFT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_LSHIFT), + SDLK_LALT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_LALT), + SDLK_LGUI = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_LGUI), + SDLK_RCTRL = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_RCTRL), + SDLK_RSHIFT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_RSHIFT), + SDLK_RALT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_RALT), + SDLK_RGUI = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_RGUI), + + SDLK_MODE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_MODE), + + SDLK_AUDIONEXT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AUDIONEXT), + SDLK_AUDIOPREV = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AUDIOPREV), + SDLK_AUDIOSTOP = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AUDIOSTOP), + SDLK_AUDIOPLAY = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AUDIOPLAY), + SDLK_AUDIOMUTE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AUDIOMUTE), + SDLK_MEDIASELECT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_MEDIASELECT), + SDLK_WWW = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_WWW), + SDLK_MAIL = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_MAIL), + SDLK_CALCULATOR = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_CALCULATOR), + SDLK_COMPUTER = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_COMPUTER), + SDLK_AC_SEARCH = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AC_SEARCH), + SDLK_AC_HOME = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AC_HOME), + SDLK_AC_BACK = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AC_BACK), + SDLK_AC_FORWARD = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AC_FORWARD), + SDLK_AC_STOP = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AC_STOP), + SDLK_AC_REFRESH = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AC_REFRESH), + SDLK_AC_BOOKMARKS = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_AC_BOOKMARKS), + + SDLK_BRIGHTNESSDOWN = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_BRIGHTNESSDOWN), + SDLK_BRIGHTNESSUP = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_BRIGHTNESSUP), + SDLK_DISPLAYSWITCH = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_DISPLAYSWITCH), + SDLK_KBDILLUMTOGGLE = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KBDILLUMTOGGLE), + SDLK_KBDILLUMDOWN = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KBDILLUMDOWN), + SDLK_KBDILLUMUP = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_KBDILLUMUP), + SDLK_EJECT = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_EJECT), + SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE!(SDL_Scancode.SDL_SCANCODE_SLEEP), +} +mixin(expandEnum!SDL_Keycode); + +enum SDL_Keymod { + KMOD_NONE = 0x0000, + KMOD_LSHIFT = 0x0001, + KMOD_RSHIFT = 0x0002, + KMOD_LCTRL = 0x0040, + KMOD_RCTRL = 0x0080, + KMOD_LALT = 0x0100, + KMOD_RALT = 0x0200, + KMOD_LGUI = 0x0400, + KMOD_RGUI = 0x0800, + KMOD_NUM = 0x1000, + KMOD_CAPS = 0x2000, + KMOD_MODE = 0x4000, + KMOD_RESERVED = 0x8000, + + KMOD_CTRL = (KMOD_LCTRL|KMOD_RCTRL), + KMOD_SHIFT = (KMOD_LSHIFT|KMOD_RSHIFT), + KMOD_ALT = (KMOD_LALT|KMOD_RALT), + KMOD_GUI = (KMOD_LGUI|KMOD_RGUI), +} +mixin(expandEnum!SDL_Keymod); \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlloadso.d b/demos/external/imports/bindbc/sdl/bind/sdlloadso.d new file mode 100644 index 0000000..02f9b62 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlloadso.d @@ -0,0 +1,28 @@ + +// 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.sdlloadso; + +version(BindSDL_Static){ + extern(C) @nogc nothrow { + void* SDL_LoadObject(const(char)*); + void* SDL_LoadFunction(void*,const(char*)); + void SDL_UnloadObject(void*); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_LoadObject = void* function(const(char)*); + alias pSDL_LoadFunction = void* function(void*,const(char*)); + alias pSDL_UnloadObject = void function(void*); + } + + __gshared { + pSDL_LoadObject SDL_LoadObject; + pSDL_LoadFunction SDL_LoadFunction; + pSDL_UnloadObject SDL_UnloadObject; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdllog.d b/demos/external/imports/bindbc/sdl/bind/sdllog.d new file mode 100644 index 0000000..3ff5b4c --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdllog.d @@ -0,0 +1,107 @@ + +// 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.sdllog; + +import core.stdc.stdarg : va_list; +import bindbc.sdl.config; + +enum SDL_MAX_LOG_MESSAGE = 4096; + +enum { + SDL_LOG_CATEGORY_APPLICATION, + SDL_LOG_CATEGORY_ERROR, + SDL_LOG_CATEGORY_ASSERT, + SDL_LOG_CATEGORY_SYSTEM, + SDL_LOG_CATEGORY_AUDIO, + SDL_LOG_CATEGORY_VIDEO, + SDL_LOG_CATEGORY_RENDER, + SDL_LOG_CATEGORY_INPUT, + SDL_LOG_CATEGORY_TEST, + + SDL_LOG_CATEGORY_RESERVED1, + SDL_LOG_CATEGORY_RESERVED2, + SDL_LOG_CATEGORY_RESERVED3, + SDL_LOG_CATEGORY_RESERVED4, + SDL_LOG_CATEGORY_RESERVED5, + SDL_LOG_CATEGORY_RESERVED6, + SDL_LOG_CATEGORY_RESERVED7, + SDL_LOG_CATEGORY_RESERVED8, + SDL_LOG_CATEGORY_RESERVED9, + SDL_LOG_CATEGORY_RESERVED10, + + SDL_LOG_CATEGORY_CUSTOM +} + +enum SDL_LogPriority { + SDL_LOG_PRIORITY_VERBOSE = 1, + SDL_LOG_PRIORITY_DEBUG, + SDL_LOG_PRIORITY_INFO, + SDL_LOG_PRIORITY_WARN, + SDL_LOG_PRIORITY_ERROR, + SDL_LOG_PRIORITY_CRITICAL, + SDL_NUM_LOG_PRIORITIES +} +mixin(expandEnum!SDL_LogPriority); + +extern(C) nothrow alias SDL_LogOutputFunction = void function(void*, int, SDL_LogPriority, const(char)*); + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + void SDL_LogSetAllPriority(SDL_LogPriority); + void SDL_LogSetPriority(int,SDL_LogPriority); + SDL_LogPriority SDL_LogGetPriority(int); + void SDL_LogResetPriorities(); + void SDL_Log(const(char)*,...); + void SDL_LogVerbose(int,const(char)*,...); + void SDL_LogDebug(int,const(char)*,...); + void SDL_LogInfo(int,const(char)*,...); + void SDL_LogWarn(int,const(char)*,...); + void SDL_LogError(int,const(char)*,...); + void SDL_LogCritical(int,const(char)*,...); + void SDL_LogMessage(int,SDL_LogPriority,const(char)*,...); + void SDL_LogMessageV(int,SDL_LogPriority,const(char)*,va_list); + void SDL_LogGetOutputFunction(SDL_LogOutputFunction,void**); + void SDL_LogSetOutputFunction(SDL_LogOutputFunction,void*); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_LogSetAllPriority = void function(SDL_LogPriority); + alias pSDL_LogSetPriority = void function(int,SDL_LogPriority); + alias pSDL_LogGetPriority = SDL_LogPriority function(int); + alias pSDL_LogResetPriorities = void function(); + alias pSDL_Log = void function(const(char)*,...); + alias pSDL_LogVerbose = void function(int,const(char)*,...); + alias pSDL_LogDebug = void function(int,const(char)*,...); + alias pSDL_LogInfo = void function(int,const(char)*,...); + alias pSDL_LogWarn = void function(int,const(char)*,...); + alias pSDL_LogError = void function(int,const(char)*,...); + alias pSDL_LogCritical = void function(int,const(char)*,...); + alias pSDL_LogMessage = void function(int,SDL_LogPriority,const(char)*,...); + alias pSDL_LogMessageV = void function(int,SDL_LogPriority,const(char)*,va_list); + alias pSDL_LogGetOutputFunction = void function(SDL_LogOutputFunction,void**); + alias pSDL_LogSetOutputFunction = void function(SDL_LogOutputFunction,void*); + } + + __gshared { + pSDL_LogSetAllPriority SDL_LogSetAllPriority; + pSDL_LogSetPriority SDL_LogSetPriority; + pSDL_LogGetPriority SDL_LogGetPriority; + pSDL_LogResetPriorities SDL_LogResetPriorities; + pSDL_Log SDL_Log; + pSDL_LogVerbose SDL_LogVerbose; + pSDL_LogDebug SDL_LogDebug; + pSDL_LogInfo SDL_LogInfo; + pSDL_LogWarn SDL_LogWarn; + pSDL_LogError SDL_LogError; + pSDL_LogCritical SDL_LogCritical; + pSDL_LogMessage SDL_LogMessage; + pSDL_LogMessageV SDL_LogMessageV; + pSDL_LogGetOutputFunction SDL_LogGetOutputFunction; + pSDL_LogSetOutputFunction SDL_LogSetOutputFunction; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlmessagebox.d b/demos/external/imports/bindbc/sdl/bind/sdlmessagebox.d new file mode 100644 index 0000000..89636f5 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlmessagebox.d @@ -0,0 +1,75 @@ + +// 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.sdlmessagebox; + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlvideo : SDL_Window; + +enum SDL_MessageBoxFlags { + SDL_MESSAGEBOX_ERROR = 0x00000010, + SDL_MESSAGEBOX_WARNING = 0x00000020, + SDL_MESSAGEBOX_INFORMATION = 0x00000040, +} +mixin(expandEnum!SDL_MessageBoxFlags); + +enum SDL_MessageBoxButtonFlags { + SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001, + SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002, +} +mixin(expandEnum!SDL_MessageBoxButtonFlags); + +struct SDL_MessageBoxButtonData { + uint flags; + int buttonid; + const(char)* text; +} + +struct SDL_MessageBoxColor { + ubyte r, g, b; +} + +enum SDL_MessageBoxColorType { + SDL_MESSAGEBOX_COLOR_BACKGROUND, + SDL_MESSAGEBOX_COLOR_TEXT, + SDL_MESSAGEBOX_COLOR_BUTTON_BORDER, + SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND, + SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED, + SDL_MESSAGEBOX_COLOR_MAX, +} +mixin(expandEnum!SDL_MessageBoxColorType); + +struct SDL_MessageBoxColorScheme { + SDL_MessageBoxColor[SDL_MESSAGEBOX_COLOR_MAX] colors; +} + +struct SDL_MessageBoxData { + uint flags; + SDL_Window* window; + const(char)* title; + const(char)* message; + int numbuttons; + const(SDL_MessageBoxButtonData)* buttons; + const(SDL_MessageBoxColorScheme)* colorScheme; +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int SDL_ShowMessageBox(const(SDL_MessageBoxData)*,int*); + int SDL_ShowSimpleMessageBox(uint,const(char)*,const(char)*,SDL_Window*); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_ShowMessageBox = int function(const(SDL_MessageBoxData)*,int*); + alias pSDL_ShowSimpleMessageBox = int function(uint,const(char)*,const(char)*,SDL_Window*); + } + + __gshared { + pSDL_ShowMessageBox SDL_ShowMessageBox; + pSDL_ShowSimpleMessageBox SDL_ShowSimpleMessageBox; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlmouse.d b/demos/external/imports/bindbc/sdl/bind/sdlmouse.d new file mode 100644 index 0000000..f9fc492 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlmouse.d @@ -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; + } + } +} diff --git a/demos/external/imports/bindbc/sdl/bind/sdlpixels.d b/demos/external/imports/bindbc/sdl/bind/sdlpixels.d new file mode 100644 index 0000000..7d65753 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlpixels.d @@ -0,0 +1,283 @@ + +// 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.sdlpixels; + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlstdinc : SDL_FOURCC, SDL_bool; + +enum SDL_ALPHA_OPAQUE = 255; +enum SDL_ALPHA_TRANSPARENT = 0; + +enum { + SDL_PIXELTYPE_UNKNOWN, + SDL_PIXELTYPE_INDEX1, + SDL_PIXELTYPE_INDEX4, + SDL_PIXELTYPE_INDEX8, + SDL_PIXELTYPE_PACKED8, + SDL_PIXELTYPE_PACKED16, + SDL_PIXELTYPE_PACKED32, + SDL_PIXELTYPE_ARRAYU8, + SDL_PIXELTYPE_ARRAYU16, + SDL_PIXELTYPE_ARRAYU32, + SDL_PIXELTYPE_ARRAYF16, + SDL_PIXELTYPE_ARRAYF32 +} + +enum { + SDL_BITMAPORDER_NONE, + SDL_BITMAPORDER_4321, + SDL_BITMAPORDER_1234 +} + +enum { + SDL_PACKEDORDER_NONE, + SDL_PACKEDORDER_XRGB, + SDL_PACKEDORDER_RGBX, + SDL_PACKEDORDER_ARGB, + SDL_PACKEDORDER_RGBA, + SDL_PACKEDORDER_XBGR, + SDL_PACKEDORDER_BGRX, + SDL_PACKEDORDER_ABGR, + SDL_PACKEDORDER_BGRA +} + +enum { + SDL_ARRAYORDER_NONE, + SDL_ARRAYORDER_RGB, + SDL_ARRAYORDER_RGBA, + SDL_ARRAYORDER_ARGB, + SDL_ARRAYORDER_BGR, + SDL_ARRAYORDER_BGRA, + SDL_ARRAYORDER_ABGR +} + +enum { + SDL_PACKEDLAYOUT_NONE, + SDL_PACKEDLAYOUT_332, + SDL_PACKEDLAYOUT_4444, + SDL_PACKEDLAYOUT_1555, + SDL_PACKEDLAYOUT_5551, + SDL_PACKEDLAYOUT_565, + SDL_PACKEDLAYOUT_8888, + SDL_PACKEDLAYOUT_2101010, + SDL_PACKEDLAYOUT_1010102 +} + +alias SDL_DEFINE_PIXELFOURCC = SDL_FOURCC; + +enum uint SDL_DEFINE_PIXELFORMAT(int type, int order, int layout, int bits, int bytes) = + (1 << 28) | (type << 24) | (order << 20) | (layout << 16) | (bits << 8) | (bytes << 0); + +enum uint SDL_PIXELFLAG(uint x) = (x >> 28) & 0x0F; +enum uint SDL_PIXELTYPE(uint x) = (x >> 24) & 0x0F; +enum uint SDL_PIXELORDER(uint x) = (x >> 20) & 0x0F; +enum uint SDL_PIXELLAYOUT(uint x) = (x >> 16) & 0x0F; +enum uint SDL_BITSPERPIXEL(uint x) = (x >> 8) & 0xFF; + +template SDL_BYTESPERPIXEL(uint x) { + static if(SDL_ISPIXELFORMAT_FOURCC!x) { + static if(x == SDL_PIXELFORMAT_YUY2 || x == SDL_PIXELFORMAT_UYVY || x == SDL_PIXELFORMAT_YVYU) + enum SDL_BYTESPERPIXEL = 2; + else enum SDL_BYTESPERPIXEL = 1; + } + else enum SDL_BYTESPERPIXEL = (x >> 0) & 0xFF; +} + +template SDL_ISPIXELFORMAT_INDEXED(uint format) { + static if(SDL_ISPIXELFORMAT_FOURCC!format) { + enum SDL_ISPIXELFORMAT_INDEXED = SDL_PIXELTYPE!format == SDL_PIXELTYPE_INDEX1 || SDL_PIXELTYPE!format == SDL_PIXELTYPE_INDEX4 || + SDL_PIXELTYPE!format == SDL_PIXELTYPE_INDEX8; + } + else enum SDL_ISPIXELFORMAT_INDEXED = false; +} + +template SDL_ISPIXELFORMAT_PACKED(uint format) { + static if(SDL_ISPIXELFORMAT_FOURCC!format) { + enum SDL_ISPIXELFORMAT_PACKED = SDL_PIXELTYPE!format == SDL_PIXELTYPE_PACKED8 || SDL_PIXELTYPE!format == SDL_PIXELTYPE_PACKED16 || + SDL_PIXELTYPE!format == SDL_PIXELTYPE_PACKED32; + } + else enum SDL_ISPIXELFORMAT_PACKED = false; +} + +static if(sdlSupport >= SDLSupport.sdl204) { + template SDL_ISPIXELFORMAT_ARRAY(uint format) { + static if(SDL_ISPIXELFORMAT_FOURCC!format) { + enum SDL_ISPIXELFORMAT_ARRAY = SDL_PIXELTYPE!format == SDL_PIXELTYPE_ARRAYU8 || SDL_PIXELTYPE!format == SDL_PIXELTYPE_ARRAYU16 || + SDL_PIXELTYPE!format == SDL_PIXELTYPE_ARRAYU32 || SDL_PIXELTYPE!format == SDL_PIXELTYPE_ARRAYF16 || + SDL_PIXELTYPE!format == SDL_PIXELTYPE_ARRAYF32; + } + else enum SDL_ISPIXELFORMAT_ARRAY = false; + } +} + +template SDL_ISPIXELFORMAT_ALPHA(uint format) { + static if(SDL_ISPIXELFORMAT_PACKED!format) { + enum SDL_ISPIXELFORMAT_ALPHA = (SDL_PIXELORDER!format == SDL_PACKEDORDER_ARGB || SDL_PIXELORDER!format == SDL_PACKEDORDER_RGBA || + SDL_PIXELORDER!format == SDL_PACKEDORDER_ABGR || SDL_PIXELORDER!format == SDL_PACKEDORDER_BGRA); + } + else static if(sdlSupport >= SDLSupport.sdl204 && SDL_ISPIXELFORMAT_ARRAY!format) { + enum SDL_ISPIXELFORMAT_ALPHA = (SDL_PIXELORDER!format == SDL_ARRAYORDER_ARGB || SDL_PIXELORDER!format == SDL_ARRAYORDER_RGBA || + SDL_PIXELORDER!format == SDL_ARRAYORDER_ABGR || SDL_PIXELORDER!format == SDL_ARRAYORDER_BGRA); + } + else enum SDL_ISPIXELFORMAT_ALPHA = false; +} + +enum SDL_ISPIXELFORMAT_FOURCC(uint format) = format && !(format & 0x80000000); + +enum SDL_PIXELFORMAT_UNKNOWN = 0; +enum SDL_PIXELFORMAT_INDEX1LSB = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_4321, 0, 1, 0); +enum SDL_PIXELFORMAT_INDEX1MSB = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_1234, 0, 1, 0); +enum SDL_PIXELFORMAT_INDEX4LSB = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_4321, 0, 4, 0); +enum SDL_PIXELFORMAT_INDEX4MSB = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_1234, 0, 4, 0); +enum SDL_PIXELFORMAT_INDEX8 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_INDEX8, 0, 0, 8, 1); +enum SDL_PIXELFORMAT_RGB332 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED8, SDL_PACKEDORDER_XRGB, SDL_PACKEDLAYOUT_332, 8, 1); +enum SDL_PIXELFORMAT_RGB444 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, SDL_PACKEDLAYOUT_4444, 12, 2); +enum SDL_PIXELFORMAT_RGB555 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, SDL_PACKEDLAYOUT_1555, 15, 2); +enum SDL_PIXELFORMAT_BGR555 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, SDL_PACKEDLAYOUT_1555, 15, 2); +enum SDL_PIXELFORMAT_ARGB4444 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_4444, 16, 2); +enum SDL_PIXELFORMAT_RGBA4444 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, SDL_PACKEDLAYOUT_4444, 16, 2); +enum SDL_PIXELFORMAT_ABGR4444 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, SDL_PACKEDLAYOUT_4444, 16, 2); +enum SDL_PIXELFORMAT_BGRA4444 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, SDL_PACKEDLAYOUT_4444, 16, 2); +enum SDL_PIXELFORMAT_ARGB1555 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_1555, 16, 2); +enum SDL_PIXELFORMAT_RGBA5551 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, SDL_PACKEDLAYOUT_5551, 16, 2); +enum SDL_PIXELFORMAT_ABGR1555 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, SDL_PACKEDLAYOUT_1555, 16, 2); +enum SDL_PIXELFORMAT_BGRA5551 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, SDL_PACKEDLAYOUT_5551, 16, 2); +enum SDL_PIXELFORMAT_RGB565 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, SDL_PACKEDLAYOUT_565, 16, 2); +enum SDL_PIXELFORMAT_BGR565 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, SDL_PACKEDLAYOUT_565, 16, 2); +enum SDL_PIXELFORMAT_RGB24 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGB, 0, 24, 3); +enum SDL_PIXELFORMAT_BGR24 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_BGR, 0, 24, 3); +enum SDL_PIXELFORMAT_RGB888 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XRGB, SDL_PACKEDLAYOUT_8888, 24, 4); +enum SDL_PIXELFORMAT_RGBX8888 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBX, SDL_PACKEDLAYOUT_8888, 24, 4); +enum SDL_PIXELFORMAT_BGR888 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XBGR, SDL_PACKEDLAYOUT_8888, 24, 4); +enum SDL_PIXELFORMAT_BGRX8888 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRX, SDL_PACKEDLAYOUT_8888, 24, 4); +enum SDL_PIXELFORMAT_ARGB8888 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_8888, 32, 4); +enum SDL_PIXELFORMAT_RGBA8888 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA, SDL_PACKEDLAYOUT_8888, 32, 4); +enum SDL_PIXELFORMAT_ABGR8888 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ABGR, SDL_PACKEDLAYOUT_8888, 32, 4); +enum SDL_PIXELFORMAT_BGRA8888 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRA, SDL_PACKEDLAYOUT_8888, 32, 4); +enum SDL_PIXELFORMAT_ARGB2101010 = SDL_DEFINE_PIXELFORMAT!(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_2101010, 32, 4); + +enum SDL_PIXELFORMAT_YV12 = SDL_DEFINE_PIXELFOURCC!('Y', 'V', '1', '2'); +enum SDL_PIXELFORMAT_IYUV = SDL_DEFINE_PIXELFOURCC!('I', 'Y', 'U', 'V'); +enum SDL_PIXELFORMAT_YUY2 = SDL_DEFINE_PIXELFOURCC!('Y', 'U', 'Y', '2'); +enum SDL_PIXELFORMAT_UYVY = SDL_DEFINE_PIXELFOURCC!('U', 'Y', 'V', 'Y'); +enum SDL_PIXELFORMAT_YVYU = SDL_DEFINE_PIXELFOURCC!('Y', 'V', 'Y', 'U'); + +static if(sdlSupport >= SDLSupport.sdl204) { + enum SDL_PIXELFORMAT_NV12 = SDL_DEFINE_PIXELFOURCC!('N', 'V', '1', '2'); + enum SDL_PIXELFORMAT_NV21 = SDL_DEFINE_PIXELFOURCC!('N', 'V', '2', '1'); +} + +static if(sdlSupport >= SDLSupport.sdl208) { + enum SDL_PIXELFORMAT_EXTERNAL_OES = SDL_DEFINE_PIXELFOURCC!('O', 'E', 'S', ' '); +} + +static assert(SDL_PIXELFORMAT_BGRX8888 == 0x16661804); + +// Added in SDL 2.0.5, but doesn't hurt to make available for every version. +version(BigEndian) { + alias SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_RGBA8888; + alias SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_ARGB8888; + alias SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_BGRA8888; + alias SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_ABGR8888; +} +else { + alias SDL_PIXELFORMAT_RGBA32 = SDL_PIXELFORMAT_ABGR8888; + alias SDL_PIXELFORMAT_ARGB32 = SDL_PIXELFORMAT_BGRA8888; + alias SDL_PIXELFORMAT_BGRA32 = SDL_PIXELFORMAT_ARGB8888; + alias SDL_PIXELFORMAT_ABGR32 = SDL_PIXELFORMAT_RGBA8888; +} + +struct SDL_Color { + ubyte r; + ubyte g; + ubyte b; + ubyte a; +} +alias SDL_Colour = SDL_Color; + +struct SDL_Palette { + int ncolors; + SDL_Color* colors; + uint version_; // NOTE: original was named 'version' + int refcount; +} + +struct SDL_PixelFormat { + uint format; + SDL_Palette *palette; + ubyte BitsPerPixel; + ubyte BytesPerPixel; + ubyte[2] padding; + uint Rmask; + uint Gmask; + uint Bmask; + uint Amask; + ubyte Rloss; + ubyte Gloss; + ubyte Bloss; + ubyte Aloss; + ubyte Rshift; + ubyte Gshift; + ubyte Bshift; + ubyte Ashift; + int refcount; + SDL_PixelFormat* next; +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + const(char)* SDL_GetPixelFormatName(uint); + SDL_bool SDL_PixelFormatEnumToMasks(uint,int*,uint*,uint*,uint*,uint*); + uint SDL_MasksToPixelFormatEnum(int,uint,uint,uint,uint); + SDL_PixelFormat* SDL_AllocFormat(uint); + void SDL_FreeFormat(SDL_PixelFormat*); + SDL_Palette* SDL_AllocPalette(int); + int SDL_SetPixelFormatPalette(SDL_PixelFormat*,SDL_Palette*); + int SDL_SetPaletteColors(SDL_Palette*,const(SDL_Color)*,int,int); + void SDL_FreePalette(SDL_Palette*); + uint SDL_MapRGB(const(SDL_PixelFormat)*,ubyte,ubyte,ubyte); + uint SDL_MapRGBA(const(SDL_PixelFormat)*,ubyte,ubyte,ubyte,ubyte); + void SDL_GetRGB(uint,const(SDL_PixelFormat)*,ubyte*,ubyte*,ubyte*); + void SDL_GetRGBA(uint,const(SDL_PixelFormat)*,ubyte*,ubyte*,ubyte*,ubyte*); + void SDL_CalculateGammaRamp(float,ushort*); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GetPixelFormatName = const(char)* function(uint); + alias pSDL_PixelFormatEnumToMasks = SDL_bool function(uint,int*,uint*,uint*,uint*,uint*); + alias pSDL_MasksToPixelFormatEnum = uint function(int,uint,uint,uint,uint); + alias pSDL_AllocFormat = SDL_PixelFormat* function(uint); + alias pSDL_FreeFormat = void function(SDL_PixelFormat*); + alias pSDL_AllocPalette = SDL_Palette* function(int); + alias pSDL_SetPixelFormatPalette = int function(SDL_PixelFormat*,SDL_Palette*); + alias pSDL_SetPaletteColors = int function(SDL_Palette*,const(SDL_Color)*,int,int); + alias pSDL_FreePalette = void function(SDL_Palette*); + alias pSDL_MapRGB = uint function(const(SDL_PixelFormat)*,ubyte,ubyte,ubyte); + alias pSDL_MapRGBA = uint function(const(SDL_PixelFormat)*,ubyte,ubyte,ubyte,ubyte); + alias pSDL_GetRGB = void function(uint,const(SDL_PixelFormat)*,ubyte*,ubyte*,ubyte*); + alias pSDL_GetRGBA = void function(uint,const(SDL_PixelFormat)*,ubyte*,ubyte*,ubyte*,ubyte*); + alias pSDL_CalculateGammaRamp = void function(float,ushort*); + } + + __gshared { + pSDL_GetPixelFormatName SDL_GetPixelFormatName; + pSDL_PixelFormatEnumToMasks SDL_PixelFormatEnumToMasks; + pSDL_MasksToPixelFormatEnum SDL_MasksToPixelFormatEnum; + pSDL_AllocFormat SDL_AllocFormat; + pSDL_FreeFormat SDL_FreeFormat; + pSDL_AllocPalette SDL_AllocPalette; + pSDL_SetPixelFormatPalette SDL_SetPixelFormatPalette; + pSDL_SetPaletteColors SDL_SetPaletteColors; + pSDL_FreePalette SDL_FreePalette; + pSDL_MapRGB SDL_MapRGB; + pSDL_MapRGBA SDL_MapRGBA; + pSDL_GetRGB SDL_GetRGB; + pSDL_GetRGBA SDL_GetRGBA; + pSDL_CalculateGammaRamp SDL_CalculateGammaRamp; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlplatform.d b/demos/external/imports/bindbc/sdl/bind/sdlplatform.d new file mode 100644 index 0000000..da23ff7 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlplatform.d @@ -0,0 +1,22 @@ + +// 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.sdlplatform; + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + const(char)* SDL_GetPlatform(); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GetPlatform = const(char)* function(); + } + + __gshared { + pSDL_GetPlatform SDL_GetPlatform; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlpower.d b/demos/external/imports/bindbc/sdl/bind/sdlpower.d new file mode 100644 index 0000000..b6eac3b --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlpower.d @@ -0,0 +1,33 @@ + +// 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.sdlpower; + +import bindbc.sdl.config; + +enum SDL_PowerState { + SDL_POWERSTATE_UNKNOWN, + SDL_POWERSTATE_ON_BATTERY, + SDL_POWERSTATE_NO_BATTERY, + SDL_POWERSTATE_CHARGING, + SDL_POWERSTATE_CHARGED +} +mixin(expandEnum!SDL_PowerState); + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + SDL_PowerState SDL_GetPowerInfo(int*,int*); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GetPowerInfo = SDL_PowerState function(int*,int*); + } + + __gshared { + pSDL_GetPowerInfo SDL_GetPowerInfo; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlrect.d b/demos/external/imports/bindbc/sdl/bind/sdlrect.d new file mode 100644 index 0000000..5122fa6 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlrect.d @@ -0,0 +1,80 @@ + +// 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.sdlrect; + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; + +struct SDL_Point { + int x; + int y; +} + +struct SDL_Rect { + int x, y; + int w, h; +} + +static if(sdlSupport >= SDLSupport.sdl2010) { + struct SDL_FPoint { + float x, y; + } + + struct SDL_FRect { + float x, y; + float w, h; + } +} + +@nogc nothrow pure { + // This macro was added to SDL_rect.h in 2.0.4, but hurts nothing to implement for + // all versions. + bool SDL_PointInRect(const SDL_Point *p, const SDL_Rect *r) { + pragma(inline, true); + return ((p.x >= r.x) && (p.x < (r.x + r.w)) && + (p.y >= r.y) && (p.y < (r.y + r.h))); + } + + bool SDL_RectEmpty(const(SDL_Rect)* X) { + pragma(inline, true); + return !X || (X.w <= 0) || (X.h <= 0); + } + + bool SDL_RectEquals(const(SDL_Rect)* A, const(SDL_Rect)* B) { + pragma(inline, true); + return A && B && + (A.x == B.x) && (A.y == B.y) && + (A.w == B.w) && (A.h == B.h); + } +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + SDL_bool SDL_HasIntersection(const(SDL_Rect)*,const(SDL_Rect)*); + SDL_bool SDL_IntersectRect(const(SDL_Rect)*,const(SDL_Rect)*,SDL_Rect*); + void SDL_UnionRect(const(SDL_Rect)*,const(SDL_Rect)*,SDL_Rect*); + SDL_bool SDL_EnclosePoints(const(SDL_Point)*,int,const(SDL_Rect)*,SDL_Rect*); + SDL_bool SDL_IntersectRectAndLine(const(SDL_Rect)*,int*,int*,int*,int*); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_HasIntersection = SDL_bool function(const(SDL_Rect)*,const(SDL_Rect)*); + alias pSDL_IntersectRect = SDL_bool function(const(SDL_Rect)*,const(SDL_Rect)*,SDL_Rect*); + alias pSDL_UnionRect = void function(const(SDL_Rect)*,const(SDL_Rect)*,SDL_Rect*); + alias pSDL_EnclosePoints = SDL_bool function(const(SDL_Point)*,int,const(SDL_Rect)*,SDL_Rect*); + alias pSDL_IntersectRectAndLine = SDL_bool function(const(SDL_Rect)*,int*,int*,int*,int*); + } + + __gshared { + pSDL_HasIntersection SDL_HasIntersection; + pSDL_IntersectRect SDL_IntersectRect; + pSDL_UnionRect SDL_UnionRect; + pSDL_EnclosePoints SDL_EnclosePoints; + pSDL_IntersectRectAndLine SDL_IntersectRectAndLine; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlrender.d b/demos/external/imports/bindbc/sdl/bind/sdlrender.d new file mode 100644 index 0000000..b6b4d65 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlrender.d @@ -0,0 +1,316 @@ + +// 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.sdlrender; + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlblendmode : SDL_BlendMode; +import bindbc.sdl.bind.sdlrect; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; +import bindbc.sdl.bind.sdlsurface : SDL_Surface; +import bindbc.sdl.bind.sdlvideo : SDL_Window; + +enum SDL_RendererFlags : uint { + SDL_RENDERER_SOFTWARE = 0x00000001, + SDL_RENDERER_ACCELERATED = 0x00000002, + SDL_RENDERER_PRESENTVSYNC = 0x00000004, + SDL_RENDERER_TARGETTEXTURE = 0x00000008, +} + +mixin(expandEnum!SDL_RendererFlags); + +struct SDL_RendererInfo { + const(char)* name; + SDL_RendererFlags flags; + uint num_texture_formats; + uint[16] texture_formats; + int max_texture_width; + int max_texture_height; +} + +enum SDL_TextureAccess { + SDL_TEXTUREACCESS_STATIC, + SDL_TEXTUREACCESS_STREAMING, + SDL_TEXTUREACCESS_TARGET, +} +mixin(expandEnum!SDL_TextureAccess); + +enum SDL_TextureModulate { + SDL_TEXTUREMODULATE_NONE = 0x00000000, + SDL_TEXTUREMODULATE_COLOR = 0x00000001, + SDL_TEXTUREMODULATE_ALPHA = 0x00000002 +} +mixin(expandEnum!SDL_TextureModulate); + +enum SDL_RendererFlip { + SDL_FLIP_NONE = 0x00000000, + SDL_FLIP_HORIZONTAL = 0x00000001, + SDL_FLIP_VERTICAL = 0x00000002, +} +mixin(expandEnum!SDL_RendererFlip); + +struct SDL_Renderer; +struct SDL_Texture; + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int SDL_GetNumRenderDrivers(); + int SDL_GetRenderDriverInfo(int,SDL_RendererInfo*); + int SDL_CreateWindowAndRenderer(int,int,uint,SDL_Window**,SDL_Renderer**); + SDL_Renderer* SDL_CreateRenderer(SDL_Window*,int,SDL_RendererFlags); + SDL_Renderer* SDL_CreateSoftwareRenderer(SDL_Surface*); + SDL_Renderer* SDL_GetRenderer(SDL_Window*); + int SDL_GetRendererInfo(SDL_Renderer*,SDL_RendererInfo*); + int SDL_GetRendererOutputSize(SDL_Renderer*,int*,int*); + SDL_Texture* SDL_CreateTexture(SDL_Renderer*,uint,SDL_TextureAccess,int,int); + SDL_Texture* SDL_CreateTextureFromSurface(SDL_Renderer*,SDL_Surface*); + int SDL_QueryTexture(SDL_Texture*,uint*,int*,int*,int*); + int SDL_SetTextureColorMod(SDL_Texture*,ubyte,ubyte,ubyte); + int SDL_GetTextureColorMod(SDL_Texture*,ubyte*,ubyte*,ubyte*); + int SDL_SetTextureAlphaMod(SDL_Texture*,ubyte); + int SDL_GetTextureAlphaMod(SDL_Texture*,ubyte*); + int SDL_SetTextureBlendMode(SDL_Texture*,SDL_BlendMode); + int SDL_GetTextureBlendMode(SDL_Texture*,SDL_BlendMode*); + int SDL_UpdateTexture(SDL_Texture*,const(SDL_Rect)*,const(void)*,int); + int SDL_LockTexture(SDL_Texture*,const(SDL_Rect)*,void**,int*); + void SDL_UnlockTexture(SDL_Texture*); + SDL_bool SDL_RenderTargetSupported(SDL_Renderer*); + int SDL_SetRenderTarget(SDL_Renderer*,SDL_Texture*); + SDL_Texture* SDL_GetRenderTarget(SDL_Renderer*); + int SDL_RenderSetClipRect(SDL_Renderer*,const(SDL_Rect)*); + void SDL_RenderGetClipRect(SDL_Renderer* renderer,SDL_Rect*); + int SDL_RenderSetLogicalSize(SDL_Renderer*,int,int); + void SDL_RenderGetLogicalSize(SDL_Renderer*,int*,int*); + int SDL_RenderSetViewport(SDL_Renderer*,const(SDL_Rect)*); + void SDL_RenderGetViewport(SDL_Renderer*,SDL_Rect*); + int SDL_RenderSetScale(SDL_Renderer*,float,float); + int SDL_RenderGetScale(SDL_Renderer*,float*,float*); + int SDL_SetRenderDrawColor(SDL_Renderer*,ubyte,ubyte,ubyte,ubyte); + int SDL_GetRenderDrawColor(SDL_Renderer*,ubyte*,ubyte*,ubyte*,ubyte*); + int SDL_SetRenderDrawBlendMode(SDL_Renderer*,SDL_BlendMode); + int SDL_GetRenderDrawBlendMode(SDL_Renderer*,SDL_BlendMode*); + int SDL_RenderClear(SDL_Renderer*); + int SDL_RenderDrawPoint(SDL_Renderer*,int,int); + int SDL_RenderDrawPoints(SDL_Renderer*,const(SDL_Point)*,int); + int SDL_RenderDrawLine(SDL_Renderer*,int,int,int,int); + int SDL_RenderDrawLines(SDL_Renderer*,const(SDL_Point)*,int); + int SDL_RenderDrawRect(SDL_Renderer*,const(SDL_Rect)*); + int SDL_RenderDrawRects(SDL_Renderer*,const(SDL_Rect)*,int); + int SDL_RenderFillRect(SDL_Renderer*,const(SDL_Rect)*); + int SDL_RenderFillRects(SDL_Renderer*,const(SDL_Rect)*,int); + int SDL_RenderCopy(SDL_Renderer*,SDL_Texture*,const(SDL_Rect)*,const(SDL_Rect*)); + int SDL_RenderCopyEx(SDL_Renderer*,SDL_Texture*,const(SDL_Rect)*,const(SDL_Rect)*,const(double),const(SDL_Point)*,const(SDL_RendererFlip)); + int SDL_RenderReadPixels(SDL_Renderer*,const(SDL_Rect)*,uint,void*,int); + void SDL_RenderPresent(SDL_Renderer*); + void SDL_DestroyTexture(SDL_Texture*); + void SDL_DestroyRenderer(SDL_Renderer*); + int SDL_GL_BindTexture(SDL_Texture*,float*,float*); + int SDL_GL_UnbindTexture(SDL_Texture*); + + static if(sdlSupport >= SDLSupport.sdl201) { + int SDL_UpdateYUVTexture(SDL_Texture*,const(SDL_Rect)*,const(ubyte)*,int,const(ubyte)*,int,const(ubyte)*,int); + } + static if(sdlSupport >= SDLSupport.sdl204) { + SDL_bool SDL_RenderIsClipEnabled(SDL_Renderer*); + } + static if(sdlSupport >= SDLSupport.sdl205) { + SDL_bool SDL_RenderGetIntegerScale(SDL_Renderer*); + int SDL_RenderSetIntegerScale(SDL_Renderer*,SDL_bool); + } + static if(sdlSupport >= SDLSupport.sdl208) { + void* SDL_RenderGetMetalLayer(SDL_Renderer*); + void* SDL_RenderGetMetalCommandEncoder(SDL_Renderer*); + } + static if(sdlSupport >= SDLSupport.sdl2010) { + int SDL_RenderDrawPointF(SDL_Renderer*,float,float); + int SDL_RenderDrawPointsF(SDL_Renderer*,const(SDL_FPoint)*,int); + int SDL_RenderDrawLineF(SDL_Renderer*,float,float,float,float); + int SDL_RenderDrawLinesF(SDL_Renderer*,const(SDL_FPoint)*,int); + int SDL_RenderDrawRectF(SDL_Renderer*,const(SDL_FRect)*); + int SDL_RenderDrawRectsF(SDL_Renderer*,const(SDL_FRect)*,int); + int SDL_RenderFillRectF(SDL_Renderer*,const(SDL_FRect)*); + int SDL_RenderFillRectsF(SDL_Renderer*,const(SDL_FRect)*,int); + int SDL_RenderCopyF(SDL_Renderer*,SDL_Texture*,const(SDL_FRect)*,const(SDL_FRect)*); + int SDL_RenderCopyExF(SDL_Renderer*,SDL_Texture*,const(SDL_FRect)*,const(SDL_FRect)*,const(double),const(SDL_FPoint)*,const(SDL_RendererFlip)); + int SDL_RenderFlush(SDL_Renderer*); + } + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GetNumRenderDrivers = int function(); + alias pSDL_GetRenderDriverInfo = int function(int,SDL_RendererInfo*); + alias pSDL_CreateWindowAndRenderer = int function(int,int,uint,SDL_Window**,SDL_Renderer**); + alias pSDL_CreateRenderer = SDL_Renderer* function(SDL_Window*,int,SDL_RendererFlags); + alias pSDL_CreateSoftwareRenderer = SDL_Renderer* function(SDL_Surface*); + alias pSDL_GetRenderer = SDL_Renderer* function(SDL_Window*); + alias pSDL_GetRendererInfo = int function(SDL_Renderer*,SDL_RendererInfo*); + alias pSDL_GetRendererOutputSize = int function(SDL_Renderer*,int*,int*); + alias pSDL_CreateTexture = SDL_Texture* function(SDL_Renderer*,uint,SDL_TextureAccess,int,int); + alias pSDL_CreateTextureFromSurface = SDL_Texture* function(SDL_Renderer*,SDL_Surface*); + alias pSDL_QueryTexture = int function(SDL_Texture*,uint*,int*,int*,int*); + alias pSDL_SetTextureColorMod = int function(SDL_Texture*,ubyte,ubyte,ubyte); + alias pSDL_GetTextureColorMod = int function(SDL_Texture*,ubyte*,ubyte*,ubyte*); + alias pSDL_SetTextureAlphaMod = int function(SDL_Texture*,ubyte); + alias pSDL_GetTextureAlphaMod = int function(SDL_Texture*,ubyte*); + alias pSDL_SetTextureBlendMode = int function(SDL_Texture*,SDL_BlendMode); + alias pSDL_GetTextureBlendMode = int function(SDL_Texture*,SDL_BlendMode*); + alias pSDL_UpdateTexture = int function(SDL_Texture*,const(SDL_Rect)*,const(void)*,int); + alias pSDL_LockTexture = int function(SDL_Texture*,const(SDL_Rect)*,void**,int*); + alias pSDL_UnlockTexture = void function(SDL_Texture*); + alias pSDL_RenderTargetSupported = SDL_bool function(SDL_Renderer*); + alias pSDL_SetRenderTarget = int function(SDL_Renderer*,SDL_Texture*); + alias pSDL_GetRenderTarget = SDL_Texture* function(SDL_Renderer*); + alias pSDL_RenderSetClipRect = int function(SDL_Renderer*,const(SDL_Rect)*); + alias pSDL_RenderGetClipRect = void function(SDL_Renderer* renderer,SDL_Rect*); + alias pSDL_RenderSetLogicalSize = int function(SDL_Renderer*,int,int); + alias pSDL_RenderGetLogicalSize = void function(SDL_Renderer*,int*,int*); + alias pSDL_RenderSetViewport = int function(SDL_Renderer*,const(SDL_Rect)*); + alias pSDL_RenderGetViewport = void function(SDL_Renderer*,SDL_Rect*); + alias pSDL_RenderSetScale = int function(SDL_Renderer*,float,float); + alias pSDL_RenderGetScale = int function(SDL_Renderer*,float*,float*); + alias pSDL_SetRenderDrawColor = int function(SDL_Renderer*,ubyte,ubyte,ubyte,ubyte); + alias pSDL_GetRenderDrawColor = int function(SDL_Renderer*,ubyte*,ubyte*,ubyte*,ubyte*); + alias pSDL_SetRenderDrawBlendMode = int function(SDL_Renderer*,SDL_BlendMode); + alias pSDL_GetRenderDrawBlendMode = int function(SDL_Renderer*,SDL_BlendMode*); + alias pSDL_RenderClear = int function(SDL_Renderer*); + alias pSDL_RenderDrawPoint = int function(SDL_Renderer*,int,int); + alias pSDL_RenderDrawPoints = int function(SDL_Renderer*,const(SDL_Point)*,int); + alias pSDL_RenderDrawLine = int function(SDL_Renderer*,int,int,int,int); + alias pSDL_RenderDrawLines = int function(SDL_Renderer*,const(SDL_Point)*,int); + alias pSDL_RenderDrawRect = int function(SDL_Renderer*,const(SDL_Rect)*); + alias pSDL_RenderDrawRects = int function(SDL_Renderer*,const(SDL_Rect)*,int); + alias pSDL_RenderFillRect = int function(SDL_Renderer*,const(SDL_Rect)*); + alias pSDL_RenderFillRects = int function(SDL_Renderer*,const(SDL_Rect)*,int); + alias pSDL_RenderCopy = int function(SDL_Renderer*,SDL_Texture*,const(SDL_Rect)*,const(SDL_Rect*)); + alias pSDL_RenderCopyEx = int function(SDL_Renderer*,SDL_Texture*,const(SDL_Rect)*,const(SDL_Rect)*,const(double),const(SDL_Point)*,const(SDL_RendererFlip)); + alias pSDL_RenderReadPixels = int function(SDL_Renderer*,const(SDL_Rect)*,uint,void*,int); + alias pSDL_RenderPresent = void function(SDL_Renderer*); + alias pSDL_DestroyTexture = void function(SDL_Texture*); + alias pSDL_DestroyRenderer = void function(SDL_Renderer*); + alias pSDL_GL_BindTexture = int function(SDL_Texture*,float*,float*); + alias pSDL_GL_UnbindTexture = int function(SDL_Texture*); + } + + __gshared { + pSDL_GetNumRenderDrivers SDL_GetNumRenderDrivers; + pSDL_GetRenderDriverInfo SDL_GetRenderDriverInfo; + pSDL_CreateWindowAndRenderer SDL_CreateWindowAndRenderer; + pSDL_CreateRenderer SDL_CreateRenderer; + pSDL_CreateSoftwareRenderer SDL_CreateSoftwareRenderer; + pSDL_GetRenderer SDL_GetRenderer; + pSDL_GetRendererInfo SDL_GetRendererInfo; + pSDL_GetRendererOutputSize SDL_GetRendererOutputSize; + pSDL_CreateTexture SDL_CreateTexture; + pSDL_CreateTextureFromSurface SDL_CreateTextureFromSurface; + pSDL_QueryTexture SDL_QueryTexture; + pSDL_SetTextureColorMod SDL_SetTextureColorMod; + pSDL_GetTextureColorMod SDL_GetTextureColorMod; + pSDL_SetTextureAlphaMod SDL_SetTextureAlphaMod; + pSDL_GetTextureAlphaMod SDL_GetTextureAlphaMod; + pSDL_SetTextureBlendMode SDL_SetTextureBlendMode; + pSDL_GetTextureBlendMode SDL_GetTextureBlendMode; + pSDL_UpdateTexture SDL_UpdateTexture; + pSDL_LockTexture SDL_LockTexture; + pSDL_UnlockTexture SDL_UnlockTexture; + pSDL_RenderTargetSupported SDL_RenderTargetSupported; + pSDL_SetRenderTarget SDL_SetRenderTarget; + pSDL_GetRenderTarget SDL_GetRenderTarget; + pSDL_RenderSetClipRect SDL_RenderSetClipRect; + pSDL_RenderGetClipRect SDL_RenderGetClipRect; + pSDL_RenderSetLogicalSize SDL_RenderSetLogicalSize; + pSDL_RenderGetLogicalSize SDL_RenderGetLogicalSize; + pSDL_RenderSetViewport SDL_RenderSetViewport; + pSDL_RenderGetViewport SDL_RenderGetViewport; + pSDL_RenderSetScale SDL_RenderSetScale; + pSDL_RenderGetScale SDL_RenderGetScale; + pSDL_SetRenderDrawColor SDL_SetRenderDrawColor; + pSDL_GetRenderDrawColor SDL_GetRenderDrawColor; + pSDL_SetRenderDrawBlendMode SDL_SetRenderDrawBlendMode; + pSDL_GetRenderDrawBlendMode SDL_GetRenderDrawBlendMode; + pSDL_RenderClear SDL_RenderClear; + pSDL_RenderDrawPoint SDL_RenderDrawPoint; + pSDL_RenderDrawPoints SDL_RenderDrawPoints; + pSDL_RenderDrawLine SDL_RenderDrawLine; + pSDL_RenderDrawLines SDL_RenderDrawLines; + pSDL_RenderDrawRect SDL_RenderDrawRect; + pSDL_RenderDrawRects SDL_RenderDrawRects; + pSDL_RenderFillRect SDL_RenderFillRect; + pSDL_RenderFillRects SDL_RenderFillRects; + pSDL_RenderCopy SDL_RenderCopy; + pSDL_RenderCopyEx SDL_RenderCopyEx; + pSDL_RenderReadPixels SDL_RenderReadPixels; + pSDL_RenderPresent SDL_RenderPresent; + pSDL_DestroyTexture SDL_DestroyTexture; + pSDL_DestroyRenderer SDL_DestroyRenderer; + pSDL_GL_BindTexture SDL_GL_BindTexture; + pSDL_GL_UnbindTexture SDL_GL_UnbindTexture; + } + static if(sdlSupport >= SDLSupport.sdl201) { + extern(C) @nogc nothrow { + alias pSDL_UpdateYUVTexture = int function(SDL_Texture*,const(SDL_Rect)*,const(ubyte)*,int,const(ubyte)*,int,const(ubyte)*,int); + } + __gshared { + pSDL_UpdateYUVTexture SDL_UpdateYUVTexture; + } + } + static if(sdlSupport >= SDLSupport.sdl204) { + extern(C) @nogc nothrow { + alias pSDL_RenderIsClipEnabled = SDL_bool function(SDL_Renderer*); + } + __gshared { + pSDL_RenderIsClipEnabled SDL_RenderIsClipEnabled; + } + } + static if(sdlSupport >= SDLSupport.sdl205) { + extern(C) @nogc nothrow { + alias pSDL_RenderGetIntegerScale = SDL_bool function(SDL_Renderer*); + alias pSDL_RenderSetIntegerScale = int function(SDL_Renderer*,SDL_bool); + } + __gshared { + pSDL_RenderGetIntegerScale SDL_RenderGetIntegerScale; + pSDL_RenderSetIntegerScale SDL_RenderSetIntegerScale; + } + } + static if(sdlSupport >= SDLSupport.sdl208) { + extern(C) @nogc nothrow { + alias pSDL_RenderGetMetalLayer = void* function(SDL_Renderer*); + alias pSDL_RenderGetMetalCommandEncoder = void* function(SDL_Renderer*); + } + __gshared { + pSDL_RenderGetMetalLayer SDL_RenderGetMetalLayer; + pSDL_RenderGetMetalCommandEncoder SDL_RenderGetMetalCommandEncoder; + } + } + static if(sdlSupport >= SDLSupport.sdl2010) { + extern(C) @nogc nothrow { + alias pSDL_RenderDrawPointF = int function(SDL_Renderer*,float,float); + alias pSDL_RenderDrawPointsF = int function(SDL_Renderer*,const(SDL_FPoint)*,int); + alias pSDL_RenderDrawLineF = int function(SDL_Renderer*,float,float,float,float); + alias pSDL_RenderDrawLinesF = int function(SDL_Renderer*,const(SDL_FPoint)*,int); + alias pSDL_RenderDrawRectF = int function(SDL_Renderer*,const(SDL_FRect)*); + alias pSDL_RenderDrawRectsF = int function(SDL_Renderer*,const(SDL_FRect)*,int); + alias pSDL_RenderFillRectF = int function(SDL_Renderer*,const(SDL_FRect)*); + alias pSDL_RenderFillRectsF = int function(SDL_Renderer*,const(SDL_FRect)*,int); + alias pSDL_RenderCopyF = int function(SDL_Renderer*,SDL_Texture*,const(SDL_FRect)*,const(SDL_FRect)*); + alias pSDL_RenderCopyExF = int function(SDL_Renderer*,SDL_Texture*,const(SDL_FRect)*,const(SDL_FRect)*,const(double),const(SDL_FPoint)*,const(SDL_RendererFlip)); + alias pSDL_RenderFlush = int function(SDL_Renderer*); + } + __gshared { + pSDL_RenderDrawPointF SDL_RenderDrawPointF; + pSDL_RenderDrawPointsF SDL_RenderDrawPointsF; + pSDL_RenderDrawLineF SDL_RenderDrawLineF; + pSDL_RenderDrawLinesF SDL_RenderDrawLinesF; + pSDL_RenderDrawRectF SDL_RenderDrawRectF; + pSDL_RenderDrawRectsF SDL_RenderDrawRectsF; + pSDL_RenderFillRectF SDL_RenderFillRectF; + pSDL_RenderFillRectsF SDL_RenderFillRectsF; + pSDL_RenderCopyF SDL_RenderCopyF; + pSDL_RenderCopyExF SDL_RenderCopyExF; + pSDL_RenderFlush SDL_RenderFlush; + } + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlrwops.d b/demos/external/imports/bindbc/sdl/bind/sdlrwops.d new file mode 100644 index 0000000..47ddd20 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlrwops.d @@ -0,0 +1,208 @@ + +// 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.sdlrwops; + +//import core.stdc.stdio : FILE; + +struct FILE +{ +} + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; + +enum : uint { + SDL_RWOPS_UNKNOWN = 0, + SDL_RWOPS_WINFILE = 1, + SDL_RWOPS_STDFILE = 2, + SDL_RWOPS_JNIFILE = 3, + SDL_RWOPS_MEMORY = 4, + SDL_RWOPS_MEMORY_RO = 5, +} + +struct SDL_RWops { + extern(C) @nogc nothrow { + long function(SDL_RWops*) size; + long function(SDL_RWops*, long, int) seek; + size_t function(SDL_RWops*, void*, size_t, size_t) read; + size_t function(SDL_RWops*, const(void)*, size_t, size_t) write; + int function(SDL_RWops*) close; + } + + uint type; + + union Hidden { + // version(Android) + version(Windows) { + struct Windowsio { + int append; + void* h; + struct Buffer { + void* data; + size_t size; + size_t left; + } + Buffer buffer; + } + Windowsio windowsio; + } + + struct Stdio { + int autoclose; + FILE* fp; + } + Stdio stdio; + + struct Mem { + ubyte* base; + ubyte* here; + ubyte* stop; + } + Mem mem; + + struct Unknown { + void* data1; + void* data2; + } + Unknown unknown; + } + Hidden hidden; +} + +enum { + RW_SEEK_SET = 0, + RW_SEEK_CUR = 1, + RW_SEEK_END = 2, +} + +static if(sdlSupport < SDLSupport.sdl2010) { + @nogc nothrow { + long SDL_RWsize(SDL_RWops* ctx) { return ctx.size(ctx); } + long SDL_RWseek(SDL_RWops* ctx, long offset, int whence) { return ctx.seek(ctx, offset, whence); } + long SDL_RWtell(SDL_RWops* ctx) { return ctx.seek(ctx, 0, RW_SEEK_CUR); } + size_t SDL_RWread(SDL_RWops* ctx, void* ptr, size_t size, size_t n) { return ctx.read(ctx, ptr, size, n); } + size_t SDL_RWwrite(SDL_RWops* ctx, const(void)* ptr, size_t size, size_t n) { return ctx.write(ctx, ptr, size, n); } + int SDL_RWclose(SDL_RWops* ctx) { return ctx.close(ctx); } + } +} + +static if(sdlSupport >= SDLSupport.sdl206) { + @nogc nothrow + void* SDL_LoadFile(const(char)* filename, size_t datasize) { + pragma(inline, true); + return SDL_LoadFile_RW(SDL_RWFromFile(filename, "rb"), datasize, 1); + } +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + SDL_RWops* SDL_RWFromFile(const(char)*,const(char)*); + SDL_RWops* SDL_RWFromFP(FILE*,SDL_bool); + SDL_RWops* SDL_RWFromMem(void*,int); + SDL_RWops* SDL_RWFromConstMem(const(void)*,int); + SDL_RWops* SDL_AllocRW(); + void SDL_FreeRW(SDL_RWops*); + ubyte SDL_ReadU8(SDL_RWops*); + ushort SDL_ReadLE16(SDL_RWops*); + ushort SDL_ReadBE16(SDL_RWops*); + uint SDL_ReadLE32(SDL_RWops*); + uint SDL_ReadBE32(SDL_RWops*); + ulong SDL_ReadLE64(SDL_RWops*); + ulong SDL_ReadBE64(SDL_RWops*); + size_t SDL_WriteU8(SDL_RWops*,ubyte); + size_t SDL_WriteLE16(SDL_RWops*,ushort); + size_t SDL_WriteBE16(SDL_RWops*,ushort); + size_t SDL_WriteLE32(SDL_RWops*,uint); + size_t SDL_WriteBE32(SDL_RWops*,uint); + size_t SDL_WriteLE64(SDL_RWops*,ulong); + size_t SDL_WriteBE64(SDL_RWops*,ulong); + + static if(sdlSupport >= SDLSupport.sdl206) { + void* SDL_LoadFile_RW(SDL_RWops*,size_t,int); + } + static if(sdlSupport >= SDLSupport.sdl2010) { + long SDL_RWsize(SDL_RWops*); + long SDL_RWseek(SDL_RWops*,long,int); + long SDL_RWtell(SDL_RWops*); + size_t SDL_RWread(SDL_RWops*,void*,size_t,size_t); + size_t SDL_RWwrite(SDL_RWops*,const(void)*,size_t,size_t); + int SDL_RWclose(SDL_RWops*); + } + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_RWFromFile = SDL_RWops* function(const(char)*,const(char)*); + alias pSDL_RWFromFP = SDL_RWops* function(FILE*,SDL_bool); + alias pSDL_RWFromMem = SDL_RWops* function(void*,int); + alias pSDL_RWFromConstMem = SDL_RWops* function(const(void)*,int); + alias pSDL_AllocRW = SDL_RWops* function(); + alias pSDL_FreeRW = void function(SDL_RWops*); + alias pSDL_ReadU8 = ubyte function(SDL_RWops*); + alias pSDL_ReadLE16 = ushort function(SDL_RWops*); + alias pSDL_ReadBE16 = ushort function(SDL_RWops*); + alias pSDL_ReadLE32 = uint function(SDL_RWops*); + alias pSDL_ReadBE32 = uint function(SDL_RWops*); + alias pSDL_ReadLE64 = ulong function(SDL_RWops*); + alias pSDL_ReadBE64 = ulong function(SDL_RWops*); + alias pSDL_WriteU8 = size_t function(SDL_RWops*,ubyte); + alias pSDL_WriteLE16 = size_t function(SDL_RWops*,ushort); + alias pSDL_WriteBE16 = size_t function(SDL_RWops*,ushort); + alias pSDL_WriteLE32 = size_t function(SDL_RWops*,uint); + alias pSDL_WriteBE32 = size_t function(SDL_RWops*,uint); + alias pSDL_WriteLE64 = size_t function(SDL_RWops*,ulong); + alias pSDL_WriteBE64 = size_t function(SDL_RWops*,ulong); + } + __gshared { + pSDL_RWFromFile SDL_RWFromFile; + pSDL_RWFromFP SDL_RWFromFP; + pSDL_RWFromMem SDL_RWFromMem; + pSDL_RWFromConstMem SDL_RWFromConstMem; + pSDL_AllocRW SDL_AllocRW; + pSDL_FreeRW SDL_FreeRW; + pSDL_ReadU8 SDL_ReadU8; + pSDL_ReadLE16 SDL_ReadLE16; + pSDL_ReadBE16 SDL_ReadBE16; + pSDL_ReadLE32 SDL_ReadLE32; + pSDL_ReadBE32 SDL_ReadBE32; + pSDL_ReadLE64 SDL_ReadLE64; + pSDL_ReadBE64 SDL_ReadBE64; + pSDL_WriteU8 SDL_WriteU8; + pSDL_WriteLE16 SDL_WriteLE16; + pSDL_WriteBE16 SDL_WriteBE16; + pSDL_WriteLE32 SDL_WriteLE32; + pSDL_WriteBE32 SDL_WriteBE32; + pSDL_WriteLE64 SDL_WriteLE64; + pSDL_WriteBE64 SDL_WriteBE64; + } + static if(sdlSupport >= SDLSupport.sdl206) { + extern(C) @nogc nothrow { + alias pSDL_LoadFile_RW = void* function(SDL_RWops*,size_t,int); + } + __gshared { + pSDL_LoadFile_RW SDL_LoadFile_RW; + } + } + static if(sdlSupport >= SDLSupport.sdl2010) { + extern(C) @nogc nothrow { + alias pSDL_RWsize = long function(SDL_RWops*); + alias pSDL_RWseek = long function(SDL_RWops*,long,int); + alias pSDL_RWtell = long function(SDL_RWops*); + alias pSDL_RWread = size_t function(SDL_RWops*,void*,size_t,size_t); + alias pSDL_RWwrite = size_t function(SDL_RWops*,const(void)*,size_t,size_t); + alias pSDL_RWclose = int function(SDL_RWops*); + } + __gshared { + pSDL_RWsize SDL_RWsize; + pSDL_RWseek SDL_RWseek; + pSDL_RWtell SDL_RWtell; + pSDL_RWread SDL_RWread; + pSDL_RWwrite SDL_RWwrite; + pSDL_RWclose SDL_RWclose; + } + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlscancode.d b/demos/external/imports/bindbc/sdl/bind/sdlscancode.d new file mode 100644 index 0000000..fc188dd --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlscancode.d @@ -0,0 +1,542 @@ + +// 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.sdlscancode; + +import bindbc.sdl.config; + +static if(sdlSupport >= SDLSupport.sdl206) { + enum SDL_Scancode { + SDL_SCANCODE_UNKNOWN = 0, + + SDL_SCANCODE_A = 4, + SDL_SCANCODE_B = 5, + SDL_SCANCODE_C = 6, + SDL_SCANCODE_D = 7, + SDL_SCANCODE_E = 8, + SDL_SCANCODE_F = 9, + SDL_SCANCODE_G = 10, + SDL_SCANCODE_H = 11, + SDL_SCANCODE_I = 12, + SDL_SCANCODE_J = 13, + SDL_SCANCODE_K = 14, + SDL_SCANCODE_L = 15, + SDL_SCANCODE_M = 16, + SDL_SCANCODE_N = 17, + SDL_SCANCODE_O = 18, + SDL_SCANCODE_P = 19, + SDL_SCANCODE_Q = 20, + SDL_SCANCODE_R = 21, + SDL_SCANCODE_S = 22, + SDL_SCANCODE_T = 23, + SDL_SCANCODE_U = 24, + SDL_SCANCODE_V = 25, + SDL_SCANCODE_W = 26, + SDL_SCANCODE_X = 27, + SDL_SCANCODE_Y = 28, + SDL_SCANCODE_Z = 29, + + SDL_SCANCODE_1 = 30, + SDL_SCANCODE_2 = 31, + SDL_SCANCODE_3 = 32, + SDL_SCANCODE_4 = 33, + SDL_SCANCODE_5 = 34, + SDL_SCANCODE_6 = 35, + SDL_SCANCODE_7 = 36, + SDL_SCANCODE_8 = 37, + SDL_SCANCODE_9 = 38, + SDL_SCANCODE_0 = 39, + + SDL_SCANCODE_RETURN = 40, + SDL_SCANCODE_ESCAPE = 41, + SDL_SCANCODE_BACKSPACE = 42, + SDL_SCANCODE_TAB = 43, + SDL_SCANCODE_SPACE = 44, + + SDL_SCANCODE_MINUS = 45, + SDL_SCANCODE_EQUALS = 46, + SDL_SCANCODE_LEFTBRACKET = 47, + SDL_SCANCODE_RIGHTBRACKET = 48, + SDL_SCANCODE_BACKSLASH = 49, + SDL_SCANCODE_NONUSHASH = 50, + SDL_SCANCODE_SEMICOLON = 51, + SDL_SCANCODE_APOSTROPHE = 52, + SDL_SCANCODE_GRAVE = 53, + SDL_SCANCODE_COMMA = 54, + SDL_SCANCODE_PERIOD = 55, + SDL_SCANCODE_SLASH = 56, + + SDL_SCANCODE_CAPSLOCK = 57, + + SDL_SCANCODE_F1 = 58, + SDL_SCANCODE_F2 = 59, + SDL_SCANCODE_F3 = 60, + SDL_SCANCODE_F4 = 61, + SDL_SCANCODE_F5 = 62, + SDL_SCANCODE_F6 = 63, + SDL_SCANCODE_F7 = 64, + SDL_SCANCODE_F8 = 65, + SDL_SCANCODE_F9 = 66, + SDL_SCANCODE_F10 = 67, + SDL_SCANCODE_F11 = 68, + SDL_SCANCODE_F12 = 69, + + SDL_SCANCODE_PRINTSCREEN = 70, + SDL_SCANCODE_SCROLLLOCK = 71, + SDL_SCANCODE_PAUSE = 72, + SDL_SCANCODE_INSERT = 73, + SDL_SCANCODE_HOME = 74, + SDL_SCANCODE_PAGEUP = 75, + SDL_SCANCODE_DELETE = 76, + SDL_SCANCODE_END = 77, + SDL_SCANCODE_PAGEDOWN = 78, + SDL_SCANCODE_RIGHT = 79, + SDL_SCANCODE_LEFT = 80, + SDL_SCANCODE_DOWN = 81, + SDL_SCANCODE_UP = 82, + + SDL_SCANCODE_NUMLOCKCLEAR = 83, + SDL_SCANCODE_KP_DIVIDE = 84, + SDL_SCANCODE_KP_MULTIPLY = 85, + SDL_SCANCODE_KP_MINUS = 86, + SDL_SCANCODE_KP_PLUS = 87, + SDL_SCANCODE_KP_ENTER = 88, + SDL_SCANCODE_KP_1 = 89, + SDL_SCANCODE_KP_2 = 90, + SDL_SCANCODE_KP_3 = 91, + SDL_SCANCODE_KP_4 = 92, + SDL_SCANCODE_KP_5 = 93, + SDL_SCANCODE_KP_6 = 94, + SDL_SCANCODE_KP_7 = 95, + SDL_SCANCODE_KP_8 = 96, + SDL_SCANCODE_KP_9 = 97, + SDL_SCANCODE_KP_0 = 98, + SDL_SCANCODE_KP_PERIOD = 99, + + SDL_SCANCODE_NONUSBACKSLASH = 100, + SDL_SCANCODE_APPLICATION = 101, + SDL_SCANCODE_POWER = 102, + SDL_SCANCODE_KP_EQUALS = 103, + SDL_SCANCODE_F13 = 104, + SDL_SCANCODE_F14 = 105, + SDL_SCANCODE_F15 = 106, + SDL_SCANCODE_F16 = 107, + SDL_SCANCODE_F17 = 108, + SDL_SCANCODE_F18 = 109, + SDL_SCANCODE_F19 = 110, + SDL_SCANCODE_F20 = 111, + SDL_SCANCODE_F21 = 112, + SDL_SCANCODE_F22 = 113, + SDL_SCANCODE_F23 = 114, + SDL_SCANCODE_F24 = 115, + SDL_SCANCODE_EXECUTE = 116, + SDL_SCANCODE_HELP = 117, + SDL_SCANCODE_MENU = 118, + SDL_SCANCODE_SELECT = 119, + SDL_SCANCODE_STOP = 120, + SDL_SCANCODE_AGAIN = 121, + SDL_SCANCODE_UNDO = 122, + SDL_SCANCODE_CUT = 123, + SDL_SCANCODE_COPY = 124, + SDL_SCANCODE_PASTE = 125, + SDL_SCANCODE_FIND = 126, + SDL_SCANCODE_MUTE = 127, + SDL_SCANCODE_VOLUMEUP = 128, + SDL_SCANCODE_VOLUMEDOWN = 129, + SDL_SCANCODE_KP_COMMA = 133, + SDL_SCANCODE_KP_EQUALSAS400 = 134, + + SDL_SCANCODE_INTERNATIONAL1 = 135, + SDL_SCANCODE_INTERNATIONAL2 = 136, + SDL_SCANCODE_INTERNATIONAL3 = 137, + SDL_SCANCODE_INTERNATIONAL4 = 138, + SDL_SCANCODE_INTERNATIONAL5 = 139, + SDL_SCANCODE_INTERNATIONAL6 = 140, + SDL_SCANCODE_INTERNATIONAL7 = 141, + SDL_SCANCODE_INTERNATIONAL8 = 142, + SDL_SCANCODE_INTERNATIONAL9 = 143, + SDL_SCANCODE_LANG1 = 144, + SDL_SCANCODE_LANG2 = 145, + SDL_SCANCODE_LANG3 = 146, + SDL_SCANCODE_LANG4 = 147, + SDL_SCANCODE_LANG5 = 148, + SDL_SCANCODE_LANG6 = 149, + SDL_SCANCODE_LANG7 = 150, + SDL_SCANCODE_LANG8 = 151, + SDL_SCANCODE_LANG9 = 152, + + SDL_SCANCODE_ALTERASE = 153, + SDL_SCANCODE_SYSREQ = 154, + SDL_SCANCODE_CANCEL = 155, + SDL_SCANCODE_CLEAR = 156, + SDL_SCANCODE_PRIOR = 157, + SDL_SCANCODE_RETURN2 = 158, + SDL_SCANCODE_SEPARATOR = 159, + SDL_SCANCODE_OUT = 160, + SDL_SCANCODE_OPER = 161, + SDL_SCANCODE_CLEARAGAIN = 162, + SDL_SCANCODE_CRSEL = 163, + SDL_SCANCODE_EXSEL = 164, + + SDL_SCANCODE_KP_00 = 176, + SDL_SCANCODE_KP_000 = 177, + SDL_SCANCODE_THOUSANDSSEPARATOR = 178, + SDL_SCANCODE_DECIMALSEPARATOR = 179, + SDL_SCANCODE_CURRENCYUNIT = 180, + SDL_SCANCODE_CURRENCYSUBUNIT = 181, + SDL_SCANCODE_KP_LEFTPAREN = 182, + SDL_SCANCODE_KP_RIGHTPAREN = 183, + SDL_SCANCODE_KP_LEFTBRACE = 184, + SDL_SCANCODE_KP_RIGHTBRACE = 185, + SDL_SCANCODE_KP_TAB = 186, + SDL_SCANCODE_KP_BACKSPACE = 187, + SDL_SCANCODE_KP_A = 188, + SDL_SCANCODE_KP_B = 189, + SDL_SCANCODE_KP_C = 190, + SDL_SCANCODE_KP_D = 191, + SDL_SCANCODE_KP_E = 192, + SDL_SCANCODE_KP_F = 193, + SDL_SCANCODE_KP_XOR = 194, + SDL_SCANCODE_KP_POWER = 195, + SDL_SCANCODE_KP_PERCENT = 196, + SDL_SCANCODE_KP_LESS = 197, + SDL_SCANCODE_KP_GREATER = 198, + SDL_SCANCODE_KP_AMPERSAND = 199, + SDL_SCANCODE_KP_DBLAMPERSAND = 200, + SDL_SCANCODE_KP_VERTICALBAR = 201, + SDL_SCANCODE_KP_DBLVERTICALBAR = 202, + SDL_SCANCODE_KP_COLON = 203, + SDL_SCANCODE_KP_HASH = 204, + SDL_SCANCODE_KP_SPACE = 205, + SDL_SCANCODE_KP_AT = 206, + SDL_SCANCODE_KP_EXCLAM = 207, + SDL_SCANCODE_KP_MEMSTORE = 208, + SDL_SCANCODE_KP_MEMRECALL = 209, + SDL_SCANCODE_KP_MEMCLEAR = 210, + SDL_SCANCODE_KP_MEMADD = 211, + SDL_SCANCODE_KP_MEMSUBTRACT = 212, + SDL_SCANCODE_KP_MEMMULTIPLY = 213, + SDL_SCANCODE_KP_MEMDIVIDE = 214, + SDL_SCANCODE_KP_PLUSMINUS = 215, + SDL_SCANCODE_KP_CLEAR = 216, + SDL_SCANCODE_KP_CLEARENTRY = 217, + SDL_SCANCODE_KP_BINARY = 218, + SDL_SCANCODE_KP_OCTAL = 219, + SDL_SCANCODE_KP_DECIMAL = 220, + SDL_SCANCODE_KP_HEXADECIMAL = 221, + + SDL_SCANCODE_LCTRL = 224, + SDL_SCANCODE_LSHIFT = 225, + SDL_SCANCODE_LALT = 226, + SDL_SCANCODE_LGUI = 227, + SDL_SCANCODE_RCTRL = 228, + SDL_SCANCODE_RSHIFT = 229, + SDL_SCANCODE_RALT = 230, + SDL_SCANCODE_RGUI = 231, + + SDL_SCANCODE_MODE = 257, + + SDL_SCANCODE_AUDIONEXT = 258, + SDL_SCANCODE_AUDIOPREV = 259, + SDL_SCANCODE_AUDIOSTOP = 260, + SDL_SCANCODE_AUDIOPLAY = 261, + SDL_SCANCODE_AUDIOMUTE = 262, + SDL_SCANCODE_MEDIASELECT = 263, + SDL_SCANCODE_WWW = 264, + SDL_SCANCODE_MAIL = 265, + SDL_SCANCODE_CALCULATOR = 266, + SDL_SCANCODE_COMPUTER = 267, + SDL_SCANCODE_AC_SEARCH = 268, + SDL_SCANCODE_AC_HOME = 269, + SDL_SCANCODE_AC_BACK = 270, + SDL_SCANCODE_AC_FORWARD = 271, + SDL_SCANCODE_AC_STOP = 272, + SDL_SCANCODE_AC_REFRESH = 273, + SDL_SCANCODE_AC_BOOKMARKS = 274, + + SDL_SCANCODE_BRIGHTNESSDOWN = 275, + SDL_SCANCODE_BRIGHTNESSUP = 276, + SDL_SCANCODE_DISPLAYSWITCH = 277, + SDL_SCANCODE_KBDILLUMTOGGLE = 278, + SDL_SCANCODE_KBDILLUMDOWN = 279, + SDL_SCANCODE_KBDILLUMUP = 280, + SDL_SCANCODE_EJECT = 281, + SDL_SCANCODE_SLEEP = 282, + + SDL_SCANCODE_APP1 = 283, + SDL_SCANCODE_APP2 = 284, + + SDL_SCANCODE_AUDIOREWIND = 285, + SDL_SCANCODE_AUDIOFASTFORWARD = 286, + + SDL_NUM_SCANCODES = 512 + } +} +else { + enum SDL_Scancode { + SDL_SCANCODE_UNKNOWN = 0, + + SDL_SCANCODE_A = 4, + SDL_SCANCODE_B = 5, + SDL_SCANCODE_C = 6, + SDL_SCANCODE_D = 7, + SDL_SCANCODE_E = 8, + SDL_SCANCODE_F = 9, + SDL_SCANCODE_G = 10, + SDL_SCANCODE_H = 11, + SDL_SCANCODE_I = 12, + SDL_SCANCODE_J = 13, + SDL_SCANCODE_K = 14, + SDL_SCANCODE_L = 15, + SDL_SCANCODE_M = 16, + SDL_SCANCODE_N = 17, + SDL_SCANCODE_O = 18, + SDL_SCANCODE_P = 19, + SDL_SCANCODE_Q = 20, + SDL_SCANCODE_R = 21, + SDL_SCANCODE_S = 22, + SDL_SCANCODE_T = 23, + SDL_SCANCODE_U = 24, + SDL_SCANCODE_V = 25, + SDL_SCANCODE_W = 26, + SDL_SCANCODE_X = 27, + SDL_SCANCODE_Y = 28, + SDL_SCANCODE_Z = 29, + + SDL_SCANCODE_1 = 30, + SDL_SCANCODE_2 = 31, + SDL_SCANCODE_3 = 32, + SDL_SCANCODE_4 = 33, + SDL_SCANCODE_5 = 34, + SDL_SCANCODE_6 = 35, + SDL_SCANCODE_7 = 36, + SDL_SCANCODE_8 = 37, + SDL_SCANCODE_9 = 38, + SDL_SCANCODE_0 = 39, + + SDL_SCANCODE_RETURN = 40, + SDL_SCANCODE_ESCAPE = 41, + SDL_SCANCODE_BACKSPACE = 42, + SDL_SCANCODE_TAB = 43, + SDL_SCANCODE_SPACE = 44, + + SDL_SCANCODE_MINUS = 45, + SDL_SCANCODE_EQUALS = 46, + SDL_SCANCODE_LEFTBRACKET = 47, + SDL_SCANCODE_RIGHTBRACKET = 48, + SDL_SCANCODE_BACKSLASH = 49, + SDL_SCANCODE_NONUSHASH = 50, + SDL_SCANCODE_SEMICOLON = 51, + SDL_SCANCODE_APOSTROPHE = 52, + SDL_SCANCODE_GRAVE = 53, + SDL_SCANCODE_COMMA = 54, + SDL_SCANCODE_PERIOD = 55, + SDL_SCANCODE_SLASH = 56, + + SDL_SCANCODE_CAPSLOCK = 57, + + SDL_SCANCODE_F1 = 58, + SDL_SCANCODE_F2 = 59, + SDL_SCANCODE_F3 = 60, + SDL_SCANCODE_F4 = 61, + SDL_SCANCODE_F5 = 62, + SDL_SCANCODE_F6 = 63, + SDL_SCANCODE_F7 = 64, + SDL_SCANCODE_F8 = 65, + SDL_SCANCODE_F9 = 66, + SDL_SCANCODE_F10 = 67, + SDL_SCANCODE_F11 = 68, + SDL_SCANCODE_F12 = 69, + + SDL_SCANCODE_PRINTSCREEN = 70, + SDL_SCANCODE_SCROLLLOCK = 71, + SDL_SCANCODE_PAUSE = 72, + SDL_SCANCODE_INSERT = 73, + SDL_SCANCODE_HOME = 74, + SDL_SCANCODE_PAGEUP = 75, + SDL_SCANCODE_DELETE = 76, + SDL_SCANCODE_END = 77, + SDL_SCANCODE_PAGEDOWN = 78, + SDL_SCANCODE_RIGHT = 79, + SDL_SCANCODE_LEFT = 80, + SDL_SCANCODE_DOWN = 81, + SDL_SCANCODE_UP = 82, + + SDL_SCANCODE_NUMLOCKCLEAR = 83, + SDL_SCANCODE_KP_DIVIDE = 84, + SDL_SCANCODE_KP_MULTIPLY = 85, + SDL_SCANCODE_KP_MINUS = 86, + SDL_SCANCODE_KP_PLUS = 87, + SDL_SCANCODE_KP_ENTER = 88, + SDL_SCANCODE_KP_1 = 89, + SDL_SCANCODE_KP_2 = 90, + SDL_SCANCODE_KP_3 = 91, + SDL_SCANCODE_KP_4 = 92, + SDL_SCANCODE_KP_5 = 93, + SDL_SCANCODE_KP_6 = 94, + SDL_SCANCODE_KP_7 = 95, + SDL_SCANCODE_KP_8 = 96, + SDL_SCANCODE_KP_9 = 97, + SDL_SCANCODE_KP_0 = 98, + SDL_SCANCODE_KP_PERIOD = 99, + + SDL_SCANCODE_NONUSBACKSLASH = 100, + SDL_SCANCODE_APPLICATION = 101, + SDL_SCANCODE_POWER = 102, + SDL_SCANCODE_KP_EQUALS = 103, + SDL_SCANCODE_F13 = 104, + SDL_SCANCODE_F14 = 105, + SDL_SCANCODE_F15 = 106, + SDL_SCANCODE_F16 = 107, + SDL_SCANCODE_F17 = 108, + SDL_SCANCODE_F18 = 109, + SDL_SCANCODE_F19 = 110, + SDL_SCANCODE_F20 = 111, + SDL_SCANCODE_F21 = 112, + SDL_SCANCODE_F22 = 113, + SDL_SCANCODE_F23 = 114, + SDL_SCANCODE_F24 = 115, + SDL_SCANCODE_EXECUTE = 116, + SDL_SCANCODE_HELP = 117, + SDL_SCANCODE_MENU = 118, + SDL_SCANCODE_SELECT = 119, + SDL_SCANCODE_STOP = 120, + SDL_SCANCODE_AGAIN = 121, + SDL_SCANCODE_UNDO = 122, + SDL_SCANCODE_CUT = 123, + SDL_SCANCODE_COPY = 124, + SDL_SCANCODE_PASTE = 125, + SDL_SCANCODE_FIND = 126, + SDL_SCANCODE_MUTE = 127, + SDL_SCANCODE_VOLUMEUP = 128, + SDL_SCANCODE_VOLUMEDOWN = 129, + SDL_SCANCODE_KP_COMMA = 133, + SDL_SCANCODE_KP_EQUALSAS400 = 134, + + SDL_SCANCODE_INTERNATIONAL1 = 135, + SDL_SCANCODE_INTERNATIONAL2 = 136, + SDL_SCANCODE_INTERNATIONAL3 = 137, + SDL_SCANCODE_INTERNATIONAL4 = 138, + SDL_SCANCODE_INTERNATIONAL5 = 139, + SDL_SCANCODE_INTERNATIONAL6 = 140, + SDL_SCANCODE_INTERNATIONAL7 = 141, + SDL_SCANCODE_INTERNATIONAL8 = 142, + SDL_SCANCODE_INTERNATIONAL9 = 143, + SDL_SCANCODE_LANG1 = 144, + SDL_SCANCODE_LANG2 = 145, + SDL_SCANCODE_LANG3 = 146, + SDL_SCANCODE_LANG4 = 147, + SDL_SCANCODE_LANG5 = 148, + SDL_SCANCODE_LANG6 = 149, + SDL_SCANCODE_LANG7 = 150, + SDL_SCANCODE_LANG8 = 151, + SDL_SCANCODE_LANG9 = 152, + + SDL_SCANCODE_ALTERASE = 153, + SDL_SCANCODE_SYSREQ = 154, + SDL_SCANCODE_CANCEL = 155, + SDL_SCANCODE_CLEAR = 156, + SDL_SCANCODE_PRIOR = 157, + SDL_SCANCODE_RETURN2 = 158, + SDL_SCANCODE_SEPARATOR = 159, + SDL_SCANCODE_OUT = 160, + SDL_SCANCODE_OPER = 161, + SDL_SCANCODE_CLEARAGAIN = 162, + SDL_SCANCODE_CRSEL = 163, + SDL_SCANCODE_EXSEL = 164, + + SDL_SCANCODE_KP_00 = 176, + SDL_SCANCODE_KP_000 = 177, + SDL_SCANCODE_THOUSANDSSEPARATOR = 178, + SDL_SCANCODE_DECIMALSEPARATOR = 179, + SDL_SCANCODE_CURRENCYUNIT = 180, + SDL_SCANCODE_CURRENCYSUBUNIT = 181, + SDL_SCANCODE_KP_LEFTPAREN = 182, + SDL_SCANCODE_KP_RIGHTPAREN = 183, + SDL_SCANCODE_KP_LEFTBRACE = 184, + SDL_SCANCODE_KP_RIGHTBRACE = 185, + SDL_SCANCODE_KP_TAB = 186, + SDL_SCANCODE_KP_BACKSPACE = 187, + SDL_SCANCODE_KP_A = 188, + SDL_SCANCODE_KP_B = 189, + SDL_SCANCODE_KP_C = 190, + SDL_SCANCODE_KP_D = 191, + SDL_SCANCODE_KP_E = 192, + SDL_SCANCODE_KP_F = 193, + SDL_SCANCODE_KP_XOR = 194, + SDL_SCANCODE_KP_POWER = 195, + SDL_SCANCODE_KP_PERCENT = 196, + SDL_SCANCODE_KP_LESS = 197, + SDL_SCANCODE_KP_GREATER = 198, + SDL_SCANCODE_KP_AMPERSAND = 199, + SDL_SCANCODE_KP_DBLAMPERSAND = 200, + SDL_SCANCODE_KP_VERTICALBAR = 201, + SDL_SCANCODE_KP_DBLVERTICALBAR = 202, + SDL_SCANCODE_KP_COLON = 203, + SDL_SCANCODE_KP_HASH = 204, + SDL_SCANCODE_KP_SPACE = 205, + SDL_SCANCODE_KP_AT = 206, + SDL_SCANCODE_KP_EXCLAM = 207, + SDL_SCANCODE_KP_MEMSTORE = 208, + SDL_SCANCODE_KP_MEMRECALL = 209, + SDL_SCANCODE_KP_MEMCLEAR = 210, + SDL_SCANCODE_KP_MEMADD = 211, + SDL_SCANCODE_KP_MEMSUBTRACT = 212, + SDL_SCANCODE_KP_MEMMULTIPLY = 213, + SDL_SCANCODE_KP_MEMDIVIDE = 214, + SDL_SCANCODE_KP_PLUSMINUS = 215, + SDL_SCANCODE_KP_CLEAR = 216, + SDL_SCANCODE_KP_CLEARENTRY = 217, + SDL_SCANCODE_KP_BINARY = 218, + SDL_SCANCODE_KP_OCTAL = 219, + SDL_SCANCODE_KP_DECIMAL = 220, + SDL_SCANCODE_KP_HEXADECIMAL = 221, + + SDL_SCANCODE_LCTRL = 224, + SDL_SCANCODE_LSHIFT = 225, + SDL_SCANCODE_LALT = 226, + SDL_SCANCODE_LGUI = 227, + SDL_SCANCODE_RCTRL = 228, + SDL_SCANCODE_RSHIFT = 229, + SDL_SCANCODE_RALT = 230, + SDL_SCANCODE_RGUI = 231, + + SDL_SCANCODE_MODE = 257, + + SDL_SCANCODE_AUDIONEXT = 258, + SDL_SCANCODE_AUDIOPREV = 259, + SDL_SCANCODE_AUDIOSTOP = 260, + SDL_SCANCODE_AUDIOPLAY = 261, + SDL_SCANCODE_AUDIOMUTE = 262, + SDL_SCANCODE_MEDIASELECT = 263, + SDL_SCANCODE_WWW = 264, + SDL_SCANCODE_MAIL = 265, + SDL_SCANCODE_CALCULATOR = 266, + SDL_SCANCODE_COMPUTER = 267, + SDL_SCANCODE_AC_SEARCH = 268, + SDL_SCANCODE_AC_HOME = 269, + SDL_SCANCODE_AC_BACK = 270, + SDL_SCANCODE_AC_FORWARD = 271, + SDL_SCANCODE_AC_STOP = 272, + SDL_SCANCODE_AC_REFRESH = 273, + SDL_SCANCODE_AC_BOOKMARKS = 274, + + SDL_SCANCODE_BRIGHTNESSDOWN = 275, + SDL_SCANCODE_BRIGHTNESSUP = 276, + SDL_SCANCODE_DISPLAYSWITCH = 277, + SDL_SCANCODE_KBDILLUMTOGGLE = 278, + SDL_SCANCODE_KBDILLUMDOWN = 279, + SDL_SCANCODE_KBDILLUMUP = 280, + SDL_SCANCODE_EJECT = 281, + SDL_SCANCODE_SLEEP = 282, + + SDL_SCANCODE_APP1 = 283, + SDL_SCANCODE_APP2 = 284, + + SDL_NUM_SCANCODES = 512 + } +} +mixin(expandEnum!SDL_Scancode); \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlshape.d b/demos/external/imports/bindbc/sdl/bind/sdlshape.d new file mode 100644 index 0000000..aed3410 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlshape.d @@ -0,0 +1,63 @@ + +// 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.sdlshape; + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlpixels : SDL_Color; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; +import bindbc.sdl.bind.sdlsurface : SDL_Surface; +import bindbc.sdl.bind.sdlvideo : SDL_Window; + +enum { + SDL_NONSHAPEABLE_WINDOW = -1, + SDL_INVALID_SHAPE_ARGUMENT = -2, + SDL_WINDOW_LACKS_SHAPE = -3, +} + +enum WindowShapeMode { + ShapeModeDefault, + ShapeModeBinarizeAlpha, + ShapeModeReverseBinarizeAlpha, + ShapeModeColorKey +} +mixin(expandEnum!WindowShapeMode); + +enum SDL_SHAPEMODEALPHA(WindowShapeMode mode) = (mode == ShapeModeDefault || mode == ShapeModeBinarizeAlpha || mode == ShapeModeReverseBinarizeAlpha); + +union SDL_WindowShapeParams { + ubyte binarizationCutoff; + SDL_Color colorKey; +} + +struct SDL_WindowShapeMode { + WindowShapeMode mode; + SDL_WindowShapeParams parameters; +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + SDL_Window* SDL_CreateShapedWindow(const(char)*,uint,uint,uint,uint,uint); + SDL_bool SDL_IsShapedWindow(const(SDL_Window)*); + int SDL_SetWindowShape(SDL_Window*,SDL_Surface*,SDL_WindowShapeMode*); + int SDL_GetShapedWindowMode(SDL_Window*,SDL_WindowShapeMode*); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_CreateShapedWindow = SDL_Window* function(const(char)*,uint,uint,uint,uint,uint); + alias pSDL_IsShapedWindow = SDL_bool function(const(SDL_Window)*); + alias pSDL_SetWindowShape = int function(SDL_Window*,SDL_Surface*,SDL_WindowShapeMode*); + alias pSDL_GetShapedWindowMode = int function(SDL_Window*,SDL_WindowShapeMode*); + } + + __gshared { + pSDL_CreateShapedWindow SDL_CreateShapedWindow; + pSDL_IsShapedWindow SDL_IsShapedWindow; + pSDL_SetWindowShape SDL_SetWindowShape; + pSDL_GetShapedWindowMode SDL_GetShapedWindowMode; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlstdinc.d b/demos/external/imports/bindbc/sdl/bind/sdlstdinc.d new file mode 100644 index 0000000..68d77d8 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlstdinc.d @@ -0,0 +1,42 @@ + +// 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.sdlstdinc; + +import bindbc.sdl.config; + +enum SDL_bool { + SDL_FALSE = 0, + SDL_TRUE = 1 +} + +mixin(expandEnum!SDL_bool); + +alias Sint8 = byte; +alias Uint8 = ubyte; +alias Sint16 = short; +alias Uint16 = ushort; +alias Sint32 = int; +alias Uint32 = uint; +alias Sint64 = long; +alias Uint64 = ulong; + +enum SDL_FOURCC(char A, char B, char C, char D) = ((A << 0) | (B << 8) | (C << 16) | (D << 24)); + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + void SDL_free(void* mem); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_free = void function(void* mem); + } + + __gshared { + pSDL_free SDL_free; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlsurface.d b/demos/external/imports/bindbc/sdl/bind/sdlsurface.d new file mode 100644 index 0000000..1b5cc5a --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlsurface.d @@ -0,0 +1,230 @@ + +// 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.sdlsurface; + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlblendmode : SDL_BlendMode; +import bindbc.sdl.bind.sdlrect : SDL_Rect; +import bindbc.sdl.bind.sdlrwops; +import bindbc.sdl.bind.sdlpixels : SDL_Palette, SDL_PixelFormat; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; + +enum { + SDL_SWSURFACE = 0, + SDL_PREALLOC = 0x00000001, + SDL_RLEACCEL = 0x00000002, + SDL_DONTFREE = 0x00000004, +} + +@nogc nothrow pure +bool SDL_MUSTLOCK(const(SDL_Surface)* S) +{ + pragma(inline, true); + return (S.flags & SDL_RLEACCEL) != 0; +} + +struct SDL_BlitMap; +struct SDL_Surface { + int flags; + SDL_PixelFormat* format; + int w, h; + int pitch; + void* pixels; + void* userdata; + int locked; + void* lock_data; + SDL_Rect clip_rect; + SDL_BlitMap* map; + int refcount; +} + +extern(C) nothrow alias SDL_blit = int function(SDL_Surface* src, SDL_Rect* srcrect, SDL_Surface* dst, SDL_Rect* dstrect); + +@nogc nothrow { + SDL_Surface* SDL_LoadBMP(const(char)* file) { + pragma(inline, true); + return SDL_LoadBMP_RW(SDL_RWFromFile(file,"rb"),1); + } + + int SDL_SaveBMP(SDL_Surface* surface,const(char)* file) { + pragma(inline, true); + return SDL_SaveBMP_RW(surface,SDL_RWFromFile(file,"wb"),1); + } +} + +alias SDL_BlitSurface = SDL_UpperBlit; +alias SDL_BlitScaled = SDL_UpperBlitScaled; + +static if(sdlSupport >= SDLSupport.sdl208) { + enum SDL_YUV_CONVERSION_MODE { + SDL_YUV_CONVERSION_JPEG, + SDL_YUV_CONVERSION_BT601, + SDL_YUV_CONVERSION_BT709, + SDL_YUV_CONVERSION_AUTOMATIC, + } + mixin(expandEnum!SDL_YUV_CONVERSION_MODE); +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + SDL_Surface* SDL_CreateRGBSurface(uint,int,int,int,uint,uint,uint,uint); + SDL_Surface* SDL_CreateRGBSurfaceFrom(void*,int,int,int,int,uint,uint,uint,uint); + void SDL_FreeSurface(SDL_Surface*); + int SDL_SetSurfacePalette(SDL_Surface*,SDL_Palette*); + int SDL_LockSurface(SDL_Surface*); + int SDL_UnlockSurface(SDL_Surface*); + SDL_Surface* SDL_LoadBMP_RW(SDL_RWops*,int); + int SDL_SaveBMP_RW(SDL_Surface*,SDL_RWops*,int); + int SDL_SetSurfaceRLE(SDL_Surface*,int); + int SDL_SetColorKey(SDL_Surface*,int,uint); + int SDL_GetColorKey(SDL_Surface*,uint*); + int SDL_SetSurfaceColorMod(SDL_Surface*,ubyte,ubyte,ubyte); + int SDL_GetSurfaceColorMod(SDL_Surface*,ubyte*,ubyte*,ubyte*); + int SDL_SetSurfaceAlphaMod(SDL_Surface*,ubyte); + int SDL_GetSurfaceAlphaMod(SDL_Surface*,ubyte*); + int SDL_SetSurfaceBlendMode(SDL_Surface*,SDL_BlendMode); + int SDL_GetSurfaceBlendMode(SDL_Surface*,SDL_BlendMode*); + SDL_bool SDL_SetClipRect(SDL_Surface*,const(SDL_Rect)*); + void SDL_GetClipRect(SDL_Surface*,SDL_Rect*); + SDL_Surface* SDL_ConvertSurface(SDL_Surface*,const(SDL_PixelFormat)*,uint); + SDL_Surface* SDL_ConvertSurfaceFormat(SDL_Surface*,uint,uint); + int SDL_ConvertPixels(int,int,uint,const(void)*,int,uint,void*,int); + int SDL_FillRect(SDL_Surface*,const(SDL_Rect)*,uint); + int SDL_FillRects(SDL_Surface*,const(SDL_Rect)*,int,uint); + int SDL_UpperBlit(SDL_Surface*,const(SDL_Rect)*,SDL_Surface*,SDL_Rect*); + int SDL_LowerBlit(SDL_Surface*,SDL_Rect*,SDL_Surface*,SDL_Rect*); + int SDL_SoftStretch(SDL_Surface*,const(SDL_Rect)*,SDL_Surface*,const(SDL_Rect)*); + int SDL_UpperBlitScaled(SDL_Surface*,const(SDL_Rect)*,SDL_Surface*,SDL_Rect*); + int SDL_LowerBlitScaled(SDL_Surface*,SDL_Rect*,SDL_Surface*,SDL_Rect*); + + static if(sdlSupport >= SDLSupport.sdl205) { + SDL_Surface* SDL_CreateRGBSurfaceWithFormat(uint,int,int,int,uint); + SDL_Surface* SDL_CreateRGBSurfaceWithFormatFrom(void*,int,int,int,int,uint); + } + static if(sdlSupport >= SDLSupport.sdl205) { + SDL_Surface* SDL_DuplicateSurface(SDL_Surface*); + } + static if(sdlSupport >= SDLSupport.sdl208) { + void SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_MODE); + SDL_YUV_CONVERSION_MODE SDL_GetYUVConversionMode(); + SDL_YUV_CONVERSION_MODE SDL_GetYUVConversionModeForResolution(int,int); + } + static if(sdlSupport >= SDLSupport.sdl209) { + SDL_bool SDL_HasColorKey(SDL_Surface*); + } + } +} +else { + extern(C) @nogc nothrow {alias pSDL_CreateRGBSurface = SDL_Surface* function(uint,int,int,int,uint,uint,uint,uint); + alias pSDL_CreateRGBSurfaceFrom = SDL_Surface* function(void*,int,int,int,int,uint,uint,uint,uint); + alias pSDL_FreeSurface = void function(SDL_Surface*); + alias pSDL_SetSurfacePalette = int function(SDL_Surface*,SDL_Palette*); + alias pSDL_LockSurface = int function(SDL_Surface*); + alias pSDL_UnlockSurface = int function(SDL_Surface*); + alias pSDL_LoadBMP_RW = SDL_Surface* function(SDL_RWops*,int); + alias pSDL_SaveBMP_RW = int function(SDL_Surface*,SDL_RWops*,int); + alias pSDL_SetSurfaceRLE = int function(SDL_Surface*,int); + alias pSDL_SetColorKey = int function(SDL_Surface*,int,uint); + alias pSDL_GetColorKey = int function(SDL_Surface*,uint*); + alias pSDL_SetSurfaceColorMod = int function(SDL_Surface*,ubyte,ubyte,ubyte); + alias pSDL_GetSurfaceColorMod = int function(SDL_Surface*,ubyte*,ubyte*,ubyte*); + alias pSDL_SetSurfaceAlphaMod = int function(SDL_Surface*,ubyte); + alias pSDL_GetSurfaceAlphaMod = int function(SDL_Surface*,ubyte*); + alias pSDL_SetSurfaceBlendMode = int function(SDL_Surface*,SDL_BlendMode); + alias pSDL_GetSurfaceBlendMode = int function(SDL_Surface*,SDL_BlendMode*); + alias pSDL_SetClipRect = SDL_bool function(SDL_Surface*,const(SDL_Rect)*); + alias pSDL_GetClipRect = void function(SDL_Surface*,SDL_Rect*); + alias pSDL_ConvertSurface = SDL_Surface* function(SDL_Surface*,const(SDL_PixelFormat)*,uint); + alias pSDL_ConvertSurfaceFormat = SDL_Surface* function(SDL_Surface*,uint,uint); + alias pSDL_ConvertPixels = int function(int,int,uint,const(void)*,int,uint,void*,int); + alias pSDL_FillRect = int function(SDL_Surface*,const(SDL_Rect)*,uint); + alias pSDL_FillRects = int function(SDL_Surface*,const(SDL_Rect)*,int,uint); + alias pSDL_UpperBlit = int function(SDL_Surface*,const(SDL_Rect)*,SDL_Surface*,SDL_Rect*); + alias pSDL_LowerBlit = int function(SDL_Surface*,SDL_Rect*,SDL_Surface*,SDL_Rect*); + alias pSDL_SoftStretch = int function(SDL_Surface*,const(SDL_Rect)*,SDL_Surface*,const(SDL_Rect)*); + alias pSDL_UpperBlitScaled = int function(SDL_Surface*,const(SDL_Rect)*,SDL_Surface*,SDL_Rect*); + alias pSDL_LowerBlitScaled = int function(SDL_Surface*,SDL_Rect*,SDL_Surface*,SDL_Rect*); + } + + __gshared { + pSDL_CreateRGBSurface SDL_CreateRGBSurface; + pSDL_CreateRGBSurfaceFrom SDL_CreateRGBSurfaceFrom; + pSDL_FreeSurface SDL_FreeSurface; + pSDL_SetSurfacePalette SDL_SetSurfacePalette; + pSDL_LockSurface SDL_LockSurface; + pSDL_UnlockSurface SDL_UnlockSurface; + pSDL_LoadBMP_RW SDL_LoadBMP_RW; + pSDL_SaveBMP_RW SDL_SaveBMP_RW; + pSDL_SetSurfaceRLE SDL_SetSurfaceRLE; + pSDL_SetColorKey SDL_SetColorKey; + pSDL_GetColorKey SDL_GetColorKey; + pSDL_SetSurfaceColorMod SDL_SetSurfaceColorMod; + pSDL_GetSurfaceColorMod SDL_GetSurfaceColorMod; + pSDL_SetSurfaceAlphaMod SDL_SetSurfaceAlphaMod; + pSDL_GetSurfaceAlphaMod SDL_GetSurfaceAlphaMod; + pSDL_SetSurfaceBlendMode SDL_SetSurfaceBlendMode; + pSDL_GetSurfaceBlendMode SDL_GetSurfaceBlendMode; + pSDL_SetClipRect SDL_SetClipRect; + pSDL_GetClipRect SDL_GetClipRect; + pSDL_ConvertSurface SDL_ConvertSurface; + pSDL_ConvertSurfaceFormat SDL_ConvertSurfaceFormat; + pSDL_ConvertPixels SDL_ConvertPixels; + pSDL_FillRect SDL_FillRect; + pSDL_FillRects SDL_FillRects; + pSDL_UpperBlit SDL_UpperBlit; + pSDL_LowerBlit SDL_LowerBlit; + pSDL_SoftStretch SDL_SoftStretch; + pSDL_UpperBlitScaled SDL_UpperBlitScaled; + pSDL_LowerBlitScaled SDL_LowerBlitScaled; + } + + static if(sdlSupport >= SDLSupport.sdl205) { + extern(C) @nogc nothrow { + alias pSDL_CreateRGBSurfaceWithFormat = SDL_Surface* function(uint,int,int,int,uint); + alias pSDL_CreateRGBSurfaceWithFormatFrom = SDL_Surface* function(void*,int,int,int,int,uint); + } + + __gshared { + pSDL_CreateRGBSurfaceWithFormat SDL_CreateRGBSurfaceWithFormat; + pSDL_CreateRGBSurfaceWithFormatFrom SDL_CreateRGBSurfaceWithFormatFrom; + } + } + + static if(sdlSupport >= SDLSupport.sdl205) { + extern(C) @nogc nothrow { + alias pSDL_DuplicateSurface = SDL_Surface* function(SDL_Surface*); + } + + __gshared { + pSDL_DuplicateSurface SDL_DuplicateSurface; + } + } + + static if(sdlSupport >= SDLSupport.sdl208) { + extern(C) @nogc nothrow { + alias pSDL_SetYUVConversionMode = void function(SDL_YUV_CONVERSION_MODE); + alias pSDL_GetYUVConversionMode = SDL_YUV_CONVERSION_MODE function(); + alias pSDL_GetYUVConversionModeForResolution = SDL_YUV_CONVERSION_MODE function(int,int); + } + + __gshared { + pSDL_SetYUVConversionMode SDL_SetYUVConversionMode; + pSDL_GetYUVConversionMode SDL_GetYUVConversionMode; + pSDL_GetYUVConversionModeForResolution SDL_GetYUVConversionModeForResolution; + } + } + + static if(sdlSupport >= SDLSupport.sdl209) { + extern(C) @nogc nothrow { + alias pSDL_HasColorKey = SDL_bool function(SDL_Surface*); + } + + __gshared { + pSDL_HasColorKey SDL_HasColorKey; + } + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlsystem.d b/demos/external/imports/bindbc/sdl/bind/sdlsystem.d new file mode 100644 index 0000000..39eb0b3 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlsystem.d @@ -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; + } + } + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlsyswm.d b/demos/external/imports/bindbc/sdl/bind/sdlsyswm.d new file mode 100644 index 0000000..02951c8 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlsyswm.d @@ -0,0 +1,240 @@ + +// 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.sdlsyswm; + +//import core.stdc.config : c_long; +alias int c_long; +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; +import bindbc.sdl.bind.sdlversion : SDL_version; +import bindbc.sdl.bind.sdlvideo : SDL_Window; + +static if(sdlSupport >= SDLSupport.sdl205) { + enum SDL_SYSWM_TYPE { + SDL_SYSWM_UNKNOWN, + SDL_SYSWM_WINDOWS, + SDL_SYSWM_X11, + SDL_SYSWM_DIRECTFB, + SDL_SYSWM_COCOA, + SDL_SYSWM_UIKIT, + SDL_SYSWM_WAYLAND, + SDL_SYSWM_MIR, + SDL_SYSWM_WINRT, + SDL_SYSWM_ANDROID, + SDL_SYSWM_VIVANTE, + SDL_SYSWM_OS2, + } +} +else static if(sdlSupport >= SDLSupport.sdl205) { + enum SDL_SYSWM_TYPE { + SDL_SYSWM_UNKNOWN, + SDL_SYSWM_WINDOWS, + SDL_SYSWM_X11, + SDL_SYSWM_DIRECTFB, + SDL_SYSWM_COCOA, + SDL_SYSWM_UIKIT, + SDL_SYSWM_WAYLAND, + SDL_SYSWM_MIR, + SDL_SYSWM_WINRT, + SDL_SYSWM_ANDROID, + SDL_SYSWM_VIVANTE, + } +} +else static if(sdlSupport >= SDLSupport.sdl204) { + enum SDL_SYSWM_TYPE { + SDL_SYSWM_UNKNOWN, + SDL_SYSWM_WINDOWS, + SDL_SYSWM_X11, + SDL_SYSWM_DIRECTFB, + SDL_SYSWM_COCOA, + SDL_SYSWM_UIKIT, + SDL_SYSWM_WAYLAND, + SDL_SYSWM_MIR, + SDL_SYSWM_WINRT, + SDL_SYSWM_ANDROID, + } +} +else static if(sdlSupport >= SDLSupport.sdl203) { + enum SDL_SYSWM_TYPE { + SDL_SYSWM_UNKNOWN, + SDL_SYSWM_WINDOWS, + SDL_SYSWM_X11, + SDL_SYSWM_DIRECTFB, + SDL_SYSWM_COCOA, + SDL_SYSWM_UIKIT, + SDL_SYSWM_WAYLAND, + SDL_SYSWM_MIR, + SDL_SYSWM_WINRT, + } +} +else static if(sdlSupport >= SDLSupport.sdl202) { + enum SDL_SYSWM_TYPE { + SDL_SYSWM_UNKNOWN, + SDL_SYSWM_WINDOWS, + SDL_SYSWM_X11, + SDL_SYSWM_DIRECTFB, + SDL_SYSWM_COCOA, + SDL_SYSWM_UIKIT, + SDL_SYSWM_WAYLAND, + SDL_SYSWM_MIR, + } +} +else { + enum SDL_SYSWM_TYPE { + SDL_SYSWM_UNKNOWN, + SDL_SYSWM_WINDOWS, + SDL_SYSWM_X11, + SDL_SYSWM_DIRECTFB, + SDL_SYSWM_COCOA, + SDL_SYSWM_UIKIT, + } +} +mixin(expandEnum!SDL_SYSWM_TYPE); + +version(Windows) { + // I don't want to import core.sys.windows.windows just for these + version(Win64) { + alias wparam = ulong; + alias lparam = long; + }else { + alias wparam = uint; + alias lparam = int; + } +} + +struct SDL_SysWMmsg { + SDL_version version_; + SDL_SYSWM_TYPE subsystem; + union msg_ { + version(Windows) { + struct win_ { + void* hwnd; + uint msg; + wparam wParam; + lparam lParam; + } + win_ win; + } + else version(OSX) { + struct cocoa_ { + int dummy; + } + cocoa_ cocoa; + } + else version(linux) { + struct dfb_ { + void* event; + } + dfb_ dfb; + } + + version(Posix) { + struct x11_ { + c_long[24] pad; // sufficient size for any X11 event + } + x11_ x11; + } + + static if(sdlSupport >= SDLSupport.sdl205) { + struct vivante_ { + int dummy; + } + vivante_ vivante; + } + + int dummy; + } + msg_ msg; +} + +struct SDL_SysWMinfo { + SDL_version version_; + SDL_SYSWM_TYPE subsystem; + + union info_ { + version(Windows) { + struct win_ { + void* window; + static if(sdlSupport >= SDLSupport.sdl204) void* hdc; + static if(sdlSupport >= SDLSupport.sdl206) void* hinstance; + } + win_ win; + } + else version(OSX) { + struct cocoa_ { + void* window; + } + cocoa_ cocoa; + + struct uikit_ { + void *window; + } + uikit_ uikit; + + } + else version(linux) { + struct dfb_ { + void *dfb; + void *window; + void *surface; + } + dfb_ dfb; + + static if(sdlSupport >= SDLSupport.sdl202) { + struct wl_ { + void *display; + void *surface; + void *shell_surface; + } + wl_ wl; + + struct mir_ { + void *connection; + void *surface; + } + mir_ mir; + } + } + + version(Posix) { + struct x11_ { + void* display; + uint window; + } + x11_ x11; + } + + static if(sdlSupport >= SDLSupport.sdl204) { + version(Android) { + struct android_ { + void* window; + void* surface; + } + android_ android; + } + } + + static if(sdlSupport >= SDLSupport.sdl206) ubyte[64] dummy; + else int dummy; + } + info_ info; +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + SDL_bool SDL_GetWindowWMInfo(SDL_Window*,SDL_SysWMinfo*); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GetWindowWMInfo = SDL_bool function(SDL_Window*,SDL_SysWMinfo*); + } + + __gshared { + pSDL_GetWindowWMInfo SDL_GetWindowWMInfo; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdltimer.d b/demos/external/imports/bindbc/sdl/bind/sdltimer.d new file mode 100644 index 0000000..1661a41 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdltimer.d @@ -0,0 +1,51 @@ + +// 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.sdltimer; + +import bindbc.sdl.bind.sdlstdinc : SDL_bool; + +extern(C) nothrow alias SDL_TimerCallback = uint function(uint interval, void* param); +alias SDL_TimerID = int; + +// This was added to SDL 2.0.1 as a macro, but it's +// useful & has no dependency on the library version, +// so it's here for 2.0.0 as well. +@nogc nothrow pure +bool SDL_TICKS_PASSED(uint A, uint B) { + pragma(inline, true); + return cast(int)(B - A) <= 0; +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + uint SDL_GetTicks(); + ulong SDL_GetPerformanceCounter(); + ulong SDL_GetPerformanceFrequency(); + void SDL_Delay(uint); + SDL_TimerID SDL_AddTimer(uint,SDL_TimerCallback,void*); + SDL_bool SDL_RemoveTimer(SDL_TimerID); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GetTicks = uint function(); + alias pSDL_GetPerformanceCounter = ulong function(); + alias pSDL_GetPerformanceFrequency = ulong function(); + alias pSDL_Delay = void function(uint); + alias pSDL_AddTimer = SDL_TimerID function(uint,SDL_TimerCallback,void*); + alias pSDL_RemoveTimer = SDL_bool function(SDL_TimerID); + } + + __gshared { + pSDL_GetTicks SDL_GetTicks; + pSDL_GetPerformanceCounter SDL_GetPerformanceCounter; + pSDL_GetPerformanceFrequency SDL_GetPerformanceFrequency; + pSDL_Delay SDL_Delay; + pSDL_AddTimer SDL_AddTimer; + pSDL_RemoveTimer SDL_RemoveTimer; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdltouch.d b/demos/external/imports/bindbc/sdl/bind/sdltouch.d new file mode 100644 index 0000000..182e08f --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdltouch.d @@ -0,0 +1,67 @@ + +// 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.sdltouch; + +import bindbc.sdl.config; + +alias SDL_TouchID = long; +alias SDL_FingerID = long; + +struct SDL_Finger { + SDL_FingerID id; + float x; + float y; + float pressure; +} + +enum DL_TOUCH_MOUSEID = cast(uint)-1; + +static if(sdlSupport >= SDLSupport.sdl2010) { + enum SDL_TouchDeviceType { + SDL_TOUCH_DEVICE_INVALID = -1, + SDL_TOUCH_DEVICE_DIRECT, + SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE, + SDL_TOUCH_DEVICE_INDIRECT_RELATIVE, + } + mixin(expandEnum!SDL_TouchDeviceType); + + enum SDL_MOUSE_TOUCHID = -1L; +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int SDL_GetNumTouchDevices(); + SDL_TouchID SDL_GetTouchDevice(int); + int SDL_GetNumTouchFingers(SDL_TouchID); + SDL_Finger* SDL_GetTouchFinger(SDL_TouchID,int); + } + static if(sdlSupport >= SDLSupport.sdl2010) { + SDL_TouchDeviceType SDL_GetTouchDeviceType(SDL_TouchID); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GetNumTouchDevices = int function(); + alias pSDL_GetTouchDevice = SDL_TouchID function(int); + alias pSDL_GetNumTouchFingers = int function(SDL_TouchID); + alias pSDL_GetTouchFinger = SDL_Finger* function(SDL_TouchID,int); + } + __gshared { + pSDL_GetNumTouchDevices SDL_GetNumTouchDevices; + pSDL_GetTouchDevice SDL_GetTouchDevice; + pSDL_GetNumTouchFingers SDL_GetNumTouchFingers; + pSDL_GetTouchFinger SDL_GetTouchFinger; + } + static if(sdlSupport >= SDLSupport.sdl2010) { + extern(C) @nogc nothrow { + alias pSDL_GetTouchDeviceType = SDL_TouchDeviceType function(SDL_TouchID); + } + __gshared { + pSDL_GetTouchDeviceType SDL_GetTouchDeviceType; + } + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlversion.d b/demos/external/imports/bindbc/sdl/bind/sdlversion.d new file mode 100644 index 0000000..dd05628 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlversion.d @@ -0,0 +1,83 @@ + +// 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.sdlversion; + +struct SDL_version { + ubyte major; + ubyte minor; + ubyte patch; +} + +enum SDL_MAJOR_VERSION = 2; +enum SDL_MINOR_VERSION = 0; + +version(SDL_201) { + enum ubyte SDL_PATCHLEVEL = 1; +} +else version(SDL_202) { + enum ubyte SDL_PATCHLEVEL = 2; +} +else version(SDL_203) { + enum ubyte SDL_PATCHLEVEL = 3; +} +else version(SDL_204) { + enum ubyte SDL_PATCHLEVEL = 4; +} +else version(SDL_205) { + enum ubyte SDL_PATCHLEVEL = 5; +} +else version(SDL_206) { + enum ubyte SDL_PATCHLEVEL = 6; +} +else version(SDL_207) { + enum ubyte SDL_PATCHLEVEL = 7; +} +else version(SDL_208) { + enum ubyte SDL_PATCHLEVEL = 8; +} +else version(SDL_209) { + enum ubyte SDL_PATCHLEVEL = 9; +} +else version(SDL_2010) { + enum ubyte SDL_PATCHLEVEL = 10; +} +else { + enum ubyte SDL_PATCHLEVEL = 0; +} + +@nogc nothrow pure +void SDL_VERSION(SDL_version* x) { + pragma(inline, true); + x.major = SDL_MAJOR_VERSION; + x.minor = SDL_MINOR_VERSION; + x.patch = SDL_PATCHLEVEL; +} + +enum SDL_VERSIONNUM(ubyte X, ubyte Y, ubyte Z) = X*1000 + Y*100 + Z; +enum SDL_COMPILEDVERSION = SDL_VERSIONNUM!(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL); +enum SDL_VERSION_ATLEAST(ubyte X, ubyte Y, ubyte Z) = SDL_COMPILEDVERSION >= SDL_VERSIONNUM!(X, Y, Z); + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + void SDL_GetVersion(SDL_version*); + const(char)* SDL_GetRevision(); + int SDL_GetRevisionNumber(); + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GetVersion = void function(SDL_version*); + alias pSDL_GetRevision = const(char)* function(); + alias pSDL_GetRevisionNumber = int function(); + } + + __gshared { + pSDL_GetVersion SDL_GetVersion; + pSDL_GetRevision SDL_GetRevision; + pSDL_GetRevisionNumber SDL_GetRevisionNumber; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlvideo.d b/demos/external/imports/bindbc/sdl/bind/sdlvideo.d new file mode 100644 index 0000000..3384d8e --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlvideo.d @@ -0,0 +1,677 @@ + +// 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.sdlvideo; + +import bindbc.sdl.config; + +import bindbc.sdl.bind.sdlrect : SDL_Rect; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; +import bindbc.sdl.bind.sdlsurface : SDL_Surface; + +struct SDL_DisplayMode { + uint format; + int w; + int h; + int refresh_rate; + void* driverdata; +} + +struct SDL_Window; + +static if(sdlSupport >= SDLSupport.sdl206) { + enum SDL_WindowFlags { + SDL_WINDOW_FULLSCREEN = 0x00000001, + SDL_WINDOW_OPENGL = 0x00000002, + SDL_WINDOW_SHOWN = 0x00000004, + SDL_WINDOW_HIDDEN = 0x00000008, + SDL_WINDOW_BORDERLESS = 0x00000010, + SDL_WINDOW_RESIZABLE = 0x00000020, + SDL_WINDOW_MINIMIZED = 0x00000040, + SDL_WINDOW_MAXIMIZED = 0x00000080, + SDL_WINDOW_INPUT_GRABBED = 0x00000100, + SDL_WINDOW_INPUT_FOCUS = 0x00000200, + SDL_WINDOW_MOUSE_FOCUS = 0x00000400, + SDL_WINDOW_FULLSCREEN_DESKTOP = SDL_WINDOW_FULLSCREEN | 0x00001000, + SDL_WINDOW_FOREIGN = 0x00000800, + SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, + SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, + SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000, + SDL_WINDOW_SKIP_TASKBAR = 0x00010000, + SDL_WINDOW_UTILITY = 0x00020000, + SDL_WINDOW_TOOLTIP = 0x00040000, + SDL_WINDOW_POPUP_MENU = 0x00080000, + SDL_WINDOW_VULKAN = 0x10000000, + } +} +else static if(sdlSupport >= SDLSupport.sdl205) { + enum SDL_WindowFlags { + SDL_WINDOW_FULLSCREEN = 0x00000001, + SDL_WINDOW_OPENGL = 0x00000002, + SDL_WINDOW_SHOWN = 0x00000004, + SDL_WINDOW_HIDDEN = 0x00000008, + SDL_WINDOW_BORDERLESS = 0x00000010, + SDL_WINDOW_RESIZABLE = 0x00000020, + SDL_WINDOW_MINIMIZED = 0x00000040, + SDL_WINDOW_MAXIMIZED = 0x00000080, + SDL_WINDOW_INPUT_GRABBED = 0x00000100, + SDL_WINDOW_INPUT_FOCUS = 0x00000200, + SDL_WINDOW_MOUSE_FOCUS = 0x00000400, + SDL_WINDOW_FULLSCREEN_DESKTOP = SDL_WINDOW_FULLSCREEN | 0x00001000, + SDL_WINDOW_FOREIGN = 0x00000800, + SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, + SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, + SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000, + SDL_WINDOW_SKIP_TASKBAR = 0x00010000, + SDL_WINDOW_UTILITY = 0x00020000, + SDL_WINDOW_TOOLTIP = 0x00040000, + SDL_WINDOW_POPUP_MENU = 0x00080000, + } +} +else static if(sdlSupport >= SDLSupport.sdl204) { + enum SDL_WindowFlags { + SDL_WINDOW_FULLSCREEN = 0x00000001, + SDL_WINDOW_OPENGL = 0x00000002, + SDL_WINDOW_SHOWN = 0x00000004, + SDL_WINDOW_HIDDEN = 0x00000008, + SDL_WINDOW_BORDERLESS = 0x00000010, + SDL_WINDOW_RESIZABLE = 0x00000020, + SDL_WINDOW_MINIMIZED = 0x00000040, + SDL_WINDOW_MAXIMIZED = 0x00000080, + SDL_WINDOW_INPUT_GRABBED = 0x00000100, + SDL_WINDOW_INPUT_FOCUS = 0x00000200, + SDL_WINDOW_MOUSE_FOCUS = 0x00000400, + SDL_WINDOW_FULLSCREEN_DESKTOP = SDL_WINDOW_FULLSCREEN | 0x00001000, + SDL_WINDOW_FOREIGN = 0x00000800, + SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, + SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, + } +} +else static if(sdlSupport >= SDLSupport.sdl201) { + enum SDL_WindowFlags { + SDL_WINDOW_FULLSCREEN = 0x00000001, + SDL_WINDOW_OPENGL = 0x00000002, + SDL_WINDOW_SHOWN = 0x00000004, + SDL_WINDOW_HIDDEN = 0x00000008, + SDL_WINDOW_BORDERLESS = 0x00000010, + SDL_WINDOW_RESIZABLE = 0x00000020, + SDL_WINDOW_MINIMIZED = 0x00000040, + SDL_WINDOW_MAXIMIZED = 0x00000080, + SDL_WINDOW_INPUT_GRABBED = 0x00000100, + SDL_WINDOW_INPUT_FOCUS = 0x00000200, + SDL_WINDOW_MOUSE_FOCUS = 0x00000400, + SDL_WINDOW_FULLSCREEN_DESKTOP = SDL_WINDOW_FULLSCREEN | 0x00001000, + SDL_WINDOW_FOREIGN = 0x00000800, + SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, + } +} +else { + enum SDL_WindowFlags { + SDL_WINDOW_FULLSCREEN = 0x00000001, + SDL_WINDOW_OPENGL = 0x00000002, + SDL_WINDOW_SHOWN = 0x00000004, + SDL_WINDOW_HIDDEN = 0x00000008, + SDL_WINDOW_BORDERLESS = 0x00000010, + SDL_WINDOW_RESIZABLE = 0x00000020, + SDL_WINDOW_MINIMIZED = 0x00000040, + SDL_WINDOW_MAXIMIZED = 0x00000080, + SDL_WINDOW_INPUT_GRABBED = 0x00000100, + SDL_WINDOW_INPUT_FOCUS = 0x00000200, + SDL_WINDOW_MOUSE_FOCUS = 0x00000400, + SDL_WINDOW_FULLSCREEN_DESKTOP = SDL_WINDOW_FULLSCREEN | 0x00001000, + SDL_WINDOW_FOREIGN = 0x00000800, + } +} +mixin(expandEnum!SDL_WindowFlags); + +enum uint SDL_WINDOWPOS_UNDEFINED_MASK = 0x1FFF0000; +enum uint SDL_WINDOWPOS_UNDEFINED_DISPLAY(uint x) = SDL_WINDOWPOS_UNDEFINED_MASK | x; +enum uint SDL_WINDOWPOS_UNDEFINED = SDL_WINDOWPOS_UNDEFINED_DISPLAY!(0); +enum uint SDL_WINDOWPOS_ISUNDEFINED(uint x) = (x & 0xFFFF0000) == SDL_WINDOWPOS_UNDEFINED_MASK; + +enum uint SDL_WINDOWPOS_CENTERED_MASK = 0x2FFF0000; +enum uint SDL_WINDOWPOS_CENTERED_DISPLAY(uint x) = SDL_WINDOWPOS_CENTERED_MASK | x; +enum uint SDL_WINDOWPOS_CENTERED = SDL_WINDOWPOS_CENTERED_DISPLAY!(0); +enum uint SDL_WINDOWPOS_ISCENTERED(uint x) = (x & 0xFFFF0000) == SDL_WINDOWPOS_CENTERED_MASK; + +static if(sdlSupport >= SDLSupport.sdl205) { + enum SDL_WindowEventID : ubyte { + SDL_WINDOWEVENT_NONE, + SDL_WINDOWEVENT_SHOWN, + SDL_WINDOWEVENT_HIDDEN, + SDL_WINDOWEVENT_EXPOSED, + SDL_WINDOWEVENT_MOVED, + SDL_WINDOWEVENT_RESIZED, + SDL_WINDOWEVENT_SIZE_CHANGED, + SDL_WINDOWEVENT_MINIMIZED, + SDL_WINDOWEVENT_MAXIMIZED, + SDL_WINDOWEVENT_RESTORED, + SDL_WINDOWEVENT_ENTER, + SDL_WINDOWEVENT_LEAVE, + SDL_WINDOWEVENT_FOCUS_GAINED, + SDL_WINDOWEVENT_FOCUS_LOST, + SDL_WINDOWEVENT_CLOSE, + SDL_WINDOWEVENT_TAKE_FOCUS, + SDL_WINDOWEVENT_HIT_TEST, + } + +} +else { + enum SDL_WindowEventID : ubyte { + SDL_WINDOWEVENT_NONE, + SDL_WINDOWEVENT_SHOWN, + SDL_WINDOWEVENT_HIDDEN, + SDL_WINDOWEVENT_EXPOSED, + SDL_WINDOWEVENT_MOVED, + SDL_WINDOWEVENT_RESIZED, + SDL_WINDOWEVENT_SIZE_CHANGED, + SDL_WINDOWEVENT_MINIMIZED, + SDL_WINDOWEVENT_MAXIMIZED, + SDL_WINDOWEVENT_RESTORED, + SDL_WINDOWEVENT_ENTER, + SDL_WINDOWEVENT_LEAVE, + SDL_WINDOWEVENT_FOCUS_GAINED, + SDL_WINDOWEVENT_FOCUS_LOST, + SDL_WINDOWEVENT_CLOSE, + } +} +mixin(expandEnum!SDL_WindowEventID); + +static if(sdlSupport >= SDLSupport.sdl209) { + enum SDL_DisplayEventID { + SDL_DISPLAYEVENT_NONE, + SDL_DISPLAYEVENT_ORIENTATION, + } + mixin(expandEnum!SDL_DisplayEventID); + + enum SDL_DisplayOrientation { + SDL_ORIENTATION_UNKNOWN, + SDL_ORIENTATION_LANDSCAPE, + SDL_ORIENTATION_LANDSCAPE_FLIPPED, + SDL_ORIENTATION_PORTRAIT, + SDL_ORIENTATION_PORTRAIT_FLIPPED, + } + mixin(expandEnum!SDL_DisplayOrientation); +} + +alias SDL_GLContext = void*; + +static if(sdlSupport >= SDLSupport.sdl206) { + enum SDL_GLattr { + SDL_GL_RED_SIZE, + SDL_GL_GREEN_SIZE, + SDL_GL_BLUE_SIZE, + SDL_GL_ALPHA_SIZE, + SDL_GL_BUFFER_SIZE, + SDL_GL_DOUBLEBUFFER, + SDL_GL_DEPTH_SIZE, + SDL_GL_STENCIL_SIZE, + SDL_GL_ACCUM_RED_SIZE, + SDL_GL_ACCUM_GREEN_SIZE, + SDL_GL_ACCUM_BLUE_SIZE, + SDL_GL_ACCUM_ALPHA_SIZE, + SDL_GL_STEREO, + SDL_GL_MULTISAMPLEBUFFERS, + SDL_GL_MULTISAMPLESAMPLES, + SDL_GL_ACCELERATED_VISUAL, + SDL_GL_RETAINED_BACKING, + SDL_GL_CONTEXT_MAJOR_VERSION, + SDL_GL_CONTEXT_MINOR_VERSION, + SDL_GL_CONTEXT_EGL, + SDL_GL_CONTEXT_FLAGS, + SDL_GL_CONTEXT_PROFILE_MASK, + SDL_GL_SHARE_WITH_CURRENT_CONTEXT, + SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, + SDL_GL_RELEASE_BEHAVIOR, + SDL_GL_CONTEXT_RESET_NOTIFICATION, + SDL_GL_CONTEXT_NO_ERROR, + } +} +else static if(sdlSupport >= SDLSupport.sdl204) { + enum SDL_GLattr { + SDL_GL_RED_SIZE, + SDL_GL_GREEN_SIZE, + SDL_GL_BLUE_SIZE, + SDL_GL_ALPHA_SIZE, + SDL_GL_BUFFER_SIZE, + SDL_GL_DOUBLEBUFFER, + SDL_GL_DEPTH_SIZE, + SDL_GL_STENCIL_SIZE, + SDL_GL_ACCUM_RED_SIZE, + SDL_GL_ACCUM_GREEN_SIZE, + SDL_GL_ACCUM_BLUE_SIZE, + SDL_GL_ACCUM_ALPHA_SIZE, + SDL_GL_STEREO, + SDL_GL_MULTISAMPLEBUFFERS, + SDL_GL_MULTISAMPLESAMPLES, + SDL_GL_ACCELERATED_VISUAL, + SDL_GL_RETAINED_BACKING, + SDL_GL_CONTEXT_MAJOR_VERSION, + SDL_GL_CONTEXT_MINOR_VERSION, + SDL_GL_CONTEXT_EGL, + SDL_GL_CONTEXT_FLAGS, + SDL_GL_CONTEXT_PROFILE_MASK, + SDL_GL_SHARE_WITH_CURRENT_CONTEXT, + SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, + SDL_GL_RELEASE_BEHAVIOR, + } +} +else static if(sdlSupport >= SDLSupport.sdl201) { + enum SDL_GLattr { + SDL_GL_RED_SIZE, + SDL_GL_GREEN_SIZE, + SDL_GL_BLUE_SIZE, + SDL_GL_ALPHA_SIZE, + SDL_GL_BUFFER_SIZE, + SDL_GL_DOUBLEBUFFER, + SDL_GL_DEPTH_SIZE, + SDL_GL_STENCIL_SIZE, + SDL_GL_ACCUM_RED_SIZE, + SDL_GL_ACCUM_GREEN_SIZE, + SDL_GL_ACCUM_BLUE_SIZE, + SDL_GL_ACCUM_ALPHA_SIZE, + SDL_GL_STEREO, + SDL_GL_MULTISAMPLEBUFFERS, + SDL_GL_MULTISAMPLESAMPLES, + SDL_GL_ACCELERATED_VISUAL, + SDL_GL_RETAINED_BACKING, + SDL_GL_CONTEXT_MAJOR_VERSION, + SDL_GL_CONTEXT_MINOR_VERSION, + SDL_GL_CONTEXT_EGL, + SDL_GL_CONTEXT_FLAGS, + SDL_GL_CONTEXT_PROFILE_MASK, + SDL_GL_SHARE_WITH_CURRENT_CONTEXT, + SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, + } +} +else { + enum SDL_GLattr { + SDL_GL_RED_SIZE, + SDL_GL_GREEN_SIZE, + SDL_GL_BLUE_SIZE, + SDL_GL_ALPHA_SIZE, + SDL_GL_BUFFER_SIZE, + SDL_GL_DOUBLEBUFFER, + SDL_GL_DEPTH_SIZE, + SDL_GL_STENCIL_SIZE, + SDL_GL_ACCUM_RED_SIZE, + SDL_GL_ACCUM_GREEN_SIZE, + SDL_GL_ACCUM_BLUE_SIZE, + SDL_GL_ACCUM_ALPHA_SIZE, + SDL_GL_STEREO, + SDL_GL_MULTISAMPLEBUFFERS, + SDL_GL_MULTISAMPLESAMPLES, + SDL_GL_ACCELERATED_VISUAL, + SDL_GL_RETAINED_BACKING, + SDL_GL_CONTEXT_MAJOR_VERSION, + SDL_GL_CONTEXT_MINOR_VERSION, + SDL_GL_CONTEXT_EGL, + SDL_GL_CONTEXT_FLAGS, + SDL_GL_CONTEXT_PROFILE_MASK, + SDL_GL_SHARE_WITH_CURRENT_CONTEXT, + } +} +mixin(expandEnum!SDL_GLattr); + +enum SDL_GLprofile { + SDL_GL_CONTEXT_PROFILE_CORE = 0x0001, + SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002, + SDL_GL_CONTEXT_PROFILE_ES = 0x0004, +} +mixin(expandEnum!SDL_GLprofile); + +enum SDL_GLcontextFlag { + SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001, + SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002, + SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004, + SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008, +} +mixin(expandEnum!SDL_GLcontextFlag); + +static if(sdlSupport >= SDLSupport.sdl204) { + enum SDL_GLcontextReleaseFlag { + SDL_GL_CONTEXT_RELEASE_BEHAVIOR_NONE = 0x0000, + SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x0001, + } + mixin(expandEnum!SDL_GLcontextReleaseFlag); + + enum SDL_HitTestResult { + SDL_HITTEST_NORMAL, + SDL_HITTEST_DRAGGABLE, + SDL_HITTEST_RESIZE_TOPLEFT, + SDL_HITTEST_RESIZE_TOP, + SDL_HITTEST_RESIZE_TOPRIGHT, + SDL_HITTEST_RESIZE_RIGHT, + SDL_HITTEST_RESIZE_BOTTOMRIGHT, + SDL_HITTEST_RESIZE_BOTTOM, + SDL_HITTEST_RESIZE_BOTTOMLEFT, + SDL_HITTEST_RESIZE_LEFT, + } + mixin(expandEnum!SDL_HitTestResult); + + import bindbc.sdl.bind.sdlrect : SDL_Point; + extern(C) nothrow alias SDL_HitTest = SDL_HitTestResult function(SDL_Window*,const(SDL_Point)*,void*); +} + + static if(sdlSupport >= SDLSupport.sdl206) { + enum SDL_GLContextResetNotification { + SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0x0000, + SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 0x0001, + } + mixin(expandEnum!SDL_GLContextResetNotification); +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int SDL_GetNumVideoDrivers(); + const(char)* SDL_GetVideoDriver(int); + int SDL_VideoInit(const(char)*); + void SDL_VideoQuit(); + const(char)* SDL_GetCurrentVideoDriver(); + int SDL_GetNumVideoDisplays(); + const(char)* SDL_GetDisplayName(int); + int SDL_GetDisplayBounds(int,SDL_Rect*); + int SDL_GetNumDisplayModes(int); + int SDL_GetDisplayMode(int,int,SDL_DisplayMode*); + int SDL_GetDesktopDisplayMode(int,SDL_DisplayMode*); + int SDL_GetCurrentDisplayMode(int,SDL_DisplayMode*); + SDL_DisplayMode* SDL_GetClosestDisplayMode(int,const(SDL_DisplayMode)*,SDL_DisplayMode*); + int SDL_GetWindowDisplayIndex(SDL_Window*); + int SDL_SetWindowDisplayMode(SDL_Window*,const(SDL_DisplayMode)*); + int SDL_GetWindowDisplayMode(SDL_Window*,SDL_DisplayMode*); + uint SDL_GetWindowPixelFormat(SDL_Window*); + SDL_Window* SDL_CreateWindow(const(char)*,int,int,int,int,SDL_WindowFlags); + SDL_Window* SDL_CreateWindowFrom(const(void)*); + uint SDL_GetWindowID(SDL_Window*); + SDL_Window* SDL_GetWindowFromID(uint); + SDL_WindowFlags SDL_GetWindowFlags(SDL_Window*); + void SDL_SetWindowTitle(SDL_Window*,const(char)*); + const(char)* SDL_GetWindowTitle(SDL_Window*); + void SDL_SetWindowIcon(SDL_Window*,SDL_Surface*); + void* SDL_SetWindowData(SDL_Window*,const(char)*,void*); + void* SDL_GetWindowData(SDL_Window*,const(char)*); + void SDL_SetWindowPosition(SDL_Window*,int,int); + void SDL_GetWindowPosition(SDL_Window*,int*,int*); + void SDL_SetWindowSize(SDL_Window*,int,int); + void SDL_GetWindowSize(SDL_Window*,int*,int*); + void SDL_SetWindowMinimumSize(SDL_Window*,int,int); + void SDL_GetWindowMinimumSize(SDL_Window*,int*,int*); + void SDL_SetWindowMaximumSize(SDL_Window*,int,int); + void SDL_GetWindowMaximumSize(SDL_Window*,int*,int*); + void SDL_SetWindowBordered(SDL_Window*,SDL_bool); + void SDL_ShowWindow(SDL_Window*); + void SDL_HideWindow(SDL_Window*); + void SDL_RaiseWindow(SDL_Window*); + void SDL_MaximizeWindow(SDL_Window*); + void SDL_MinimizeWindow(SDL_Window*); + void SDL_RestoreWindow(SDL_Window*); + int SDL_SetWindowFullscreen(SDL_Window*,uint); + SDL_Surface* SDL_GetWindowSurface(SDL_Window*); + int SDL_UpdateWindowSurface(SDL_Window*); + int SDL_UpdateWindowSurfaceRects(SDL_Window*,SDL_Rect*,int); + void SDL_SetWindowGrab(SDL_Window*,SDL_bool); + SDL_bool SDL_GetWindowGrab(SDL_Window*); + int SDL_SetWindowBrightness(SDL_Window*,float); + float SDL_GetWindowBrightness(SDL_Window*); + int SDL_SetWindowGammaRamp(SDL_Window*,const(ushort)*,const(ushort)*,const(ushort)*); + int SDL_GetWindowGammaRamp(SDL_Window*,ushort*,ushort*,ushort*); + void SDL_DestroyWindow(SDL_Window*); + SDL_bool SDL_IsScreenSaverEnabled(); + void SDL_EnableScreenSaver(); + void SDL_DisableScreenSaver(); + int SDL_GL_LoadLibrary(const(char)*); + void* SDL_GL_GetProcAddress(const(char)*); + void SDL_GL_UnloadLibrary(); + SDL_bool SDL_GL_ExtensionSupported(const(char)*); + int SDL_GL_SetAttribute(SDL_GLattr,int); + int SDL_GL_GetAttribute(SDL_GLattr,int*); + SDL_GLContext SDL_GL_CreateContext(SDL_Window*); + int SDL_GL_MakeCurrent(SDL_Window*,SDL_GLContext); + SDL_Window* SDL_GL_GetCurrentWindow(); + SDL_GLContext SDL_GL_GetCurrentContext(); + int SDL_GL_SetSwapInterval(int); + int SDL_GL_GetSwapInterval(); + void SDL_GL_SwapWindow(SDL_Window*); + void SDL_GL_DeleteContext(SDL_GLContext); + + static if(sdlSupport >= SDLSupport.sdl201) { + void SDL_GL_GetDrawableSize(SDL_Window*,int*,int*); + } + static if(sdlSupport >= SDLSupport.sdl202) { + void SDL_GL_ResetAttributes(); + } + static if(sdlSupport >= SDLSupport.sdl204) { + int SDL_GetDisplayDPI(int,float*,float*,float*); + SDL_Window* SDL_GetGrabbedWindow(); + int SDL_SetWindowHitTest(SDL_Window*,SDL_HitTest,void*); + } + static if(sdlSupport >= SDLSupport.sdl205) { + int SDL_GetDisplayUsableBounds(int,SDL_Rect*); + int SDL_GetWindowBordersSize(SDL_Window*,int*,int*,int*,int*); + int SDL_GetWindowOpacity(SDL_Window*,float*); + int SDL_SetWindowInputFocus(SDL_Window*); + int SDL_SetWindowModalFor(SDL_Window*,SDL_Window*); + int SDL_SetWindowOpacity(SDL_Window*,float); + void SDL_SetWindowResizable(SDL_Window*,SDL_bool); + } + static if(sdlSupport >= SDLSupport.sdl209) { + SDL_DisplayOrientation SDL_GetDisplayOrientation(int); + } + } +} +else { + extern(C) @nogc nothrow { + alias pSDL_GetNumVideoDrivers = int function(); + alias pSDL_GetVideoDriver = const(char)* function(int); + alias pSDL_VideoInit = int function(const(char)*); + alias pSDL_VideoQuit = void function(); + alias pSDL_GetCurrentVideoDriver = const(char)* function(); + alias pSDL_GetNumVideoDisplays = int function(); + alias pSDL_GetDisplayName = const(char)* function(int); + alias pSDL_GetDisplayBounds = int function(int,SDL_Rect*); + alias pSDL_GetNumDisplayModes = int function(int); + alias pSDL_GetDisplayMode = int function(int,int,SDL_DisplayMode*); + alias pSDL_GetDesktopDisplayMode = int function(int,SDL_DisplayMode*); + alias pSDL_GetCurrentDisplayMode = int function(int,SDL_DisplayMode*); + alias pSDL_GetClosestDisplayMode = SDL_DisplayMode* function(int,const(SDL_DisplayMode)*,SDL_DisplayMode*); + alias pSDL_GetWindowDisplayIndex = int function(SDL_Window*); + alias pSDL_SetWindowDisplayMode = int function(SDL_Window*,const(SDL_DisplayMode)*); + alias pSDL_GetWindowDisplayMode = int function(SDL_Window*,SDL_DisplayMode*); + alias pSDL_GetWindowPixelFormat = uint function(SDL_Window*); + alias pSDL_CreateWindow = SDL_Window* function(const(char)*,int,int,int,int,SDL_WindowFlags); + alias pSDL_CreateWindowFrom = SDL_Window* function(const(void)*); + alias pSDL_GetWindowID = uint function(SDL_Window*); + alias pSDL_GetWindowFromID = SDL_Window* function(uint); + alias pSDL_GetWindowFlags = SDL_WindowFlags function(SDL_Window*); + alias pSDL_SetWindowTitle = void function(SDL_Window*,const(char)*); + alias pSDL_GetWindowTitle = const(char)* function(SDL_Window*); + alias pSDL_SetWindowIcon = void function(SDL_Window*,SDL_Surface*); + alias pSDL_SetWindowData = void* function(SDL_Window*,const(char)*,void*); + alias pSDL_GetWindowData = void* function(SDL_Window*,const(char)*); + alias pSDL_SetWindowPosition = void function(SDL_Window*,int,int); + alias pSDL_GetWindowPosition = void function(SDL_Window*,int*,int*); + alias pSDL_SetWindowSize = void function(SDL_Window*,int,int); + alias pSDL_GetWindowSize = void function(SDL_Window*,int*,int*); + alias pSDL_SetWindowMinimumSize = void function(SDL_Window*,int,int); + alias pSDL_GetWindowMinimumSize = void function(SDL_Window*,int*,int*); + alias pSDL_SetWindowMaximumSize = void function(SDL_Window*,int,int); + alias pSDL_GetWindowMaximumSize = void function(SDL_Window*,int*,int*); + alias pSDL_SetWindowBordered = void function(SDL_Window*,SDL_bool); + alias pSDL_ShowWindow = void function(SDL_Window*); + alias pSDL_HideWindow = void function(SDL_Window*); + alias pSDL_RaiseWindow = void function(SDL_Window*); + alias pSDL_MaximizeWindow = void function(SDL_Window*); + alias pSDL_MinimizeWindow = void function(SDL_Window*); + alias pSDL_RestoreWindow = void function(SDL_Window*); + alias pSDL_SetWindowFullscreen = int function(SDL_Window*,uint); + alias pSDL_GetWindowSurface = SDL_Surface* function(SDL_Window*); + alias pSDL_UpdateWindowSurface = int function(SDL_Window*); + alias pSDL_UpdateWindowSurfaceRects = int function(SDL_Window*,SDL_Rect*,int); + alias pSDL_SetWindowGrab = void function(SDL_Window*,SDL_bool); + alias pSDL_GetWindowGrab = SDL_bool function(SDL_Window*); + alias pSDL_SetWindowBrightness = int function(SDL_Window*,float); + alias pSDL_GetWindowBrightness = float function(SDL_Window*); + alias pSDL_SetWindowGammaRamp = int function(SDL_Window*,const(ushort)*,const(ushort)*,const(ushort)*); + alias pSDL_GetWindowGammaRamp = int function(SDL_Window*,ushort*,ushort*,ushort*); + alias pSDL_DestroyWindow = void function(SDL_Window*); + alias pSDL_IsScreenSaverEnabled = SDL_bool function(); + alias pSDL_EnableScreenSaver = void function(); + alias pSDL_DisableScreenSaver = void function(); + alias pSDL_GL_LoadLibrary = int function(const(char)*); + alias pSDL_GL_GetProcAddress = void* function(const(char)*); + alias pSDL_GL_UnloadLibrary = void function(); + alias pSDL_GL_ExtensionSupported = SDL_bool function(const(char)*); + alias pSDL_GL_SetAttribute = int function(SDL_GLattr,int); + alias pSDL_GL_GetAttribute = int function(SDL_GLattr,int*); + alias pSDL_GL_CreateContext = SDL_GLContext function(SDL_Window*); + alias pSDL_GL_MakeCurrent = int function(SDL_Window*,SDL_GLContext); + alias pSDL_GL_GetCurrentWindow = SDL_Window* function(); + alias pSDL_GL_GetCurrentContext = SDL_GLContext function(); + alias pSDL_GL_SetSwapInterval = int function(int); + alias pSDL_GL_GetSwapInterval = int function(); + alias pSDL_GL_SwapWindow = void function(SDL_Window*); + alias pSDL_GL_DeleteContext = void function(SDL_GLContext); + } + + __gshared { + pSDL_GetNumVideoDrivers SDL_GetNumVideoDrivers; + pSDL_GetVideoDriver SDL_GetVideoDriver; + pSDL_VideoInit SDL_VideoInit; + pSDL_VideoQuit SDL_VideoQuit; + pSDL_GetCurrentVideoDriver SDL_GetCurrentVideoDriver; + pSDL_GetNumVideoDisplays SDL_GetNumVideoDisplays; + pSDL_GetDisplayName SDL_GetDisplayName; + pSDL_GetDisplayBounds SDL_GetDisplayBounds; + pSDL_GetNumDisplayModes SDL_GetNumDisplayModes; + pSDL_GetDisplayMode SDL_GetDisplayMode; + pSDL_GetDesktopDisplayMode SDL_GetDesktopDisplayMode; + pSDL_GetCurrentDisplayMode SDL_GetCurrentDisplayMode; + pSDL_GetClosestDisplayMode SDL_GetClosestDisplayMode; + pSDL_GetWindowDisplayIndex SDL_GetWindowDisplayIndex; + pSDL_SetWindowDisplayMode SDL_SetWindowDisplayMode; + pSDL_GetWindowDisplayMode SDL_GetWindowDisplayMode; + pSDL_GetWindowPixelFormat SDL_GetWindowPixelFormat; + pSDL_CreateWindow SDL_CreateWindow; + pSDL_CreateWindowFrom SDL_CreateWindowFrom; + pSDL_GetWindowID SDL_GetWindowID; + pSDL_GetWindowFromID SDL_GetWindowFromID; + pSDL_GetWindowFlags SDL_GetWindowFlags; + pSDL_SetWindowTitle SDL_SetWindowTitle; + pSDL_GetWindowTitle SDL_GetWindowTitle; + pSDL_SetWindowIcon SDL_SetWindowIcon; + pSDL_SetWindowData SDL_SetWindowData; + pSDL_GetWindowData SDL_GetWindowData; + pSDL_SetWindowPosition SDL_SetWindowPosition; + pSDL_GetWindowPosition SDL_GetWindowPosition; + pSDL_SetWindowSize SDL_SetWindowSize; + pSDL_GetWindowSize SDL_GetWindowSize; + pSDL_SetWindowMinimumSize SDL_SetWindowMinimumSize; + pSDL_GetWindowMinimumSize SDL_GetWindowMinimumSize; + pSDL_SetWindowMaximumSize SDL_SetWindowMaximumSize; + pSDL_GetWindowMaximumSize SDL_GetWindowMaximumSize; + pSDL_SetWindowBordered SDL_SetWindowBordered; + pSDL_ShowWindow SDL_ShowWindow; + pSDL_HideWindow SDL_HideWindow; + pSDL_RaiseWindow SDL_RaiseWindow; + pSDL_MaximizeWindow SDL_MaximizeWindow; + pSDL_MinimizeWindow SDL_MinimizeWindow; + pSDL_RestoreWindow SDL_RestoreWindow; + pSDL_SetWindowFullscreen SDL_SetWindowFullscreen; + pSDL_GetWindowSurface SDL_GetWindowSurface; + pSDL_UpdateWindowSurface SDL_UpdateWindowSurface; + pSDL_UpdateWindowSurfaceRects SDL_UpdateWindowSurfaceRects; + pSDL_SetWindowGrab SDL_SetWindowGrab; + pSDL_GetWindowGrab SDL_GetWindowGrab; + pSDL_SetWindowBrightness SDL_SetWindowBrightness; + pSDL_GetWindowBrightness SDL_GetWindowBrightness; + pSDL_SetWindowGammaRamp SDL_SetWindowGammaRamp; + pSDL_GetWindowGammaRamp SDL_GetWindowGammaRamp; + pSDL_DestroyWindow SDL_DestroyWindow; + pSDL_IsScreenSaverEnabled SDL_IsScreenSaverEnabled; + pSDL_EnableScreenSaver SDL_EnableScreenSaver; + pSDL_DisableScreenSaver SDL_DisableScreenSaver; + pSDL_GL_LoadLibrary SDL_GL_LoadLibrary; + pSDL_GL_GetProcAddress SDL_GL_GetProcAddress; + pSDL_GL_UnloadLibrary SDL_GL_UnloadLibrary; + pSDL_GL_ExtensionSupported SDL_GL_ExtensionSupported; + pSDL_GL_SetAttribute SDL_GL_SetAttribute; + pSDL_GL_GetAttribute SDL_GL_GetAttribute; + pSDL_GL_CreateContext SDL_GL_CreateContext; + pSDL_GL_MakeCurrent SDL_GL_MakeCurrent; + pSDL_GL_GetCurrentWindow SDL_GL_GetCurrentWindow; + pSDL_GL_GetCurrentContext SDL_GL_GetCurrentContext; + pSDL_GL_SetSwapInterval SDL_GL_SetSwapInterval; + pSDL_GL_GetSwapInterval SDL_GL_GetSwapInterval; + pSDL_GL_SwapWindow SDL_GL_SwapWindow; + pSDL_GL_DeleteContext SDL_GL_DeleteContext; + } + + static if(sdlSupport >= SDLSupport.sdl201) { + extern(C) @nogc nothrow { + alias pSDL_GL_GetDrawableSize = void function(SDL_Window*,int*,int*); + } + + __gshared { + pSDL_GL_GetDrawableSize SDL_GL_GetDrawableSize; + } + } + + static if(sdlSupport >= SDLSupport.sdl202) { + extern(C) @nogc nothrow { + alias pSDL_GL_ResetAttributes = void function(); + } + + __gshared { + pSDL_GL_ResetAttributes SDL_GL_ResetAttributes; + } + } + + static if(sdlSupport >= SDLSupport.sdl204) { + extern(C) @nogc nothrow { + alias pSDL_GetDisplayDPI = int function(int,float*,float*,float*); + alias pSDL_GetGrabbedWindow = SDL_Window* function(); + alias pSDL_SetWindowHitTest = int function(SDL_Window*,SDL_HitTest,void*); + } + + __gshared { + pSDL_GetDisplayDPI SDL_GetDisplayDPI; + pSDL_GetGrabbedWindow SDL_GetGrabbedWindow; + pSDL_SetWindowHitTest SDL_SetWindowHitTest; + } + } + + static if(sdlSupport >= SDLSupport.sdl205) { + extern(C) @nogc nothrow { + alias pSDL_GetDisplayUsableBounds = int function(int,SDL_Rect*); + alias pSDL_GetWindowBordersSize = int function(SDL_Window*,int*,int*,int*,int*); + alias pSDL_GetWindowOpacity = int function(SDL_Window*,float*); + alias pSDL_SetWindowInputFocus = int function(SDL_Window*); + alias pSDL_SetWindowModalFor = int function(SDL_Window*,SDL_Window*); + alias pSDL_SetWindowOpacity = int function(SDL_Window*,float); + alias pSDL_SetWindowResizable = void function(SDL_Window*,SDL_bool); + } + + __gshared { + pSDL_GetDisplayUsableBounds SDL_GetDisplayUsableBounds; + pSDL_GetWindowBordersSize SDL_GetWindowBordersSize; + pSDL_GetWindowOpacity SDL_GetWindowOpacity; + pSDL_SetWindowInputFocus SDL_SetWindowInputFocus; + pSDL_SetWindowModalFor SDL_SetWindowModalFor; + pSDL_SetWindowOpacity SDL_SetWindowOpacity; + pSDL_SetWindowResizable SDL_SetWindowResizable; + } + } + + static if(sdlSupport >= SDLSupport.sdl209) { + extern(C) @nogc nothrow { + alias pSDL_GetDisplayOrientation = SDL_DisplayOrientation function(int); + } + + __gshared { + pSDL_GetDisplayOrientation SDL_GetDisplayOrientation; + } + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/bind/sdlvulkan.d b/demos/external/imports/bindbc/sdl/bind/sdlvulkan.d new file mode 100644 index 0000000..0dc287d --- /dev/null +++ b/demos/external/imports/bindbc/sdl/bind/sdlvulkan.d @@ -0,0 +1,45 @@ + +// 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.sdlvulkan; + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; +import bindbc.sdl.bind.sdlvideo : SDL_Window; + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + static if(sdlSupport >= SDLSupport.sdl206) { + SDL_bool SDL_Vulkan_CreateSurface(SDL_Window*,void*,void*); + void SDL_Vulkan_GetDrawableSize(SDL_Window*,int*,int*); + SDL_bool SDL_Vulkan_GetInstanceExtensions(SDL_Window*,uint*,const(char)**); + void* SDL_Vulkan_GetVkGetInstanceProcAddr(); + int SDL_Vulkan_LoadLibrary(const(char)*); + void SDL_Vulkan_UnloadLibrary(); + } + } +} +else { + static if(sdlSupport >= SDLSupport.sdl206) { + extern(C) @nogc nothrow { + alias pSDL_Vulkan_CreateSurface = SDL_bool function(SDL_Window*,void*,void*); + alias pSDL_Vulkan_GetDrawableSize = void function(SDL_Window*,int*,int*); + alias pSDL_Vulkan_GetInstanceExtensions = SDL_bool function(SDL_Window*,uint*,const(char)**); + alias pSDL_Vulkan_GetVkGetInstanceProcAddr = void* function(); + alias pSDL_Vulkan_LoadLibrary = int function(const(char)*); + alias pSDL_Vulkan_UnloadLibrary = void function(); + } + + __gshared { + pSDL_Vulkan_CreateSurface SDL_Vulkan_CreateSurface; + pSDL_Vulkan_GetDrawableSize SDL_Vulkan_GetDrawableSize; + pSDL_Vulkan_GetInstanceExtensions SDL_Vulkan_GetInstanceExtensions; + pSDL_Vulkan_GetVkGetInstanceProcAddr SDL_Vulkan_GetVkGetInstanceProcAddr; + pSDL_Vulkan_LoadLibrary SDL_Vulkan_LoadLibrary; + pSDL_Vulkan_UnloadLibrary SDL_Vulkan_UnloadLibrary; + } + } +} diff --git a/demos/external/imports/bindbc/sdl/config.d b/demos/external/imports/bindbc/sdl/config.d new file mode 100644 index 0000000..1a76433 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/config.d @@ -0,0 +1,44 @@ + +// 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.config; + +enum SDLSupport { + noLibrary, + badLibrary, + sdl200 = 200, + sdl201 = 201, + sdl202 = 202, + sdl203 = 203, + sdl204 = 204, + sdl205 = 205, + sdl206 = 206, + sdl207 = 207, + sdl208 = 208, + sdl209 = 209, + sdl2010 = 2010, +} + +version(SDL_2010) enum sdlSupport = SDLSupport.sdl2010; +else version(SDL_209) enum sdlSupport = SDLSupport.sdl209; +else version(SDL_208) enum sdlSupport = SDLSupport.sdl208; +else version(SDL_207) enum sdlSupport = SDLSupport.sdl207; +else version(SDL_206) enum sdlSupport = SDLSupport.sdl206; +else version(SDL_205) enum sdlSupport = SDLSupport.sdl205; +else version(SDL_204) enum sdlSupport = SDLSupport.sdl204; +else version(SDL_203) enum sdlSupport = SDLSupport.sdl203; +else version(SDL_202) enum sdlSupport = SDLSupport.sdl202; +else version(SDL_201) enum sdlSupport = SDLSupport.sdl201; +else enum sdlSupport = SDLSupport.sdl200; + +enum expandEnum(EnumType, string fqnEnumType = EnumType.stringof) = (){ + string expandEnum = "enum {"; + foreach(m;__traits(allMembers, EnumType)) { + expandEnum ~= m ~ " = " ~ fqnEnumType ~ "." ~ m ~ ","; + } + expandEnum ~= "}"; + return expandEnum; +}(); \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/dynload.d b/demos/external/imports/bindbc/sdl/dynload.d new file mode 100644 index 0000000..0aa3b84 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/dynload.d @@ -0,0 +1,712 @@ + +// 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.dynload; + +version(BindSDL_Static) {} +else: + +import bindbc.loader; +import bindbc.sdl.config, + bindbc.sdl.bind; + +private { + SharedLib lib; + SDLSupport loadedVersion; +} + +void unloadSDL() +{ + if(lib != invalidHandle) { + lib.unload(); + } +} + +SDLSupport loadedSDLVersion() { return loadedVersion; } + +bool isSDLLoaded() +{ + return lib != invalidHandle; +} + +SDLSupport loadSDL() +{ + // #1778 prevents me from using static arrays here :( + version(Windows) { + const(char)[][1] libNames = ["SDL2.dll"]; + } + else version(OSX) { + const(char)[][7] libNames = [ + "libSDL2.dylib", + "/usr/local/lib/libSDL2.dylib", + "/usr/local/lib/libSDL2/libSDL2.dylib", + "../Frameworks/SDL2.framework/SDL2", + "/Library/Frameworks/SDL2.framework/SDL2", + "/System/Library/Frameworks/SDL2.framework/SDL2", + "/opt/local/lib/libSDL2.dylib" + ]; + } + else version(Posix) { + const(char)[][6] libNames = [ + "libSDL2.so", + "/usr/local/lib/libSDL2.so", + "libSDL2-2.0.so", + "/usr/local/lib/libSDL2-2.0.so", + "libSDL2-2.0.so.0", + "/usr/local/lib/libSDL2-2.0.so.0" + ]; + } + else static assert(0, "bindbc-sdl is not yet supported on this platform."); + + SDLSupport ret; + foreach(name; libNames) { + ret = loadSDL(name.ptr); + if(ret != SDLSupport.noLibrary) break; + } + return ret; +} + +SDLSupport loadSDL(const(char)* libName) +{ + lib = load(libName); + if(lib == invalidHandle) { + return SDLSupport.noLibrary; + } + + auto errCount = errorCount(); + loadedVersion = SDLSupport.badLibrary; + + lib.bindSymbol(cast(void**)&SDL_Init, "SDL_Init"); + lib.bindSymbol(cast(void**)&SDL_InitSubSystem, "SDL_InitSubSystem"); + lib.bindSymbol(cast(void**)&SDL_QuitSubSystem, "SDL_QuitSubSystem"); + lib.bindSymbol(cast(void**)&SDL_WasInit, "SDL_WasInit"); + lib.bindSymbol(cast(void**)&SDL_Quit, "SDL_Quit"); + lib.bindSymbol(cast(void**)&SDL_SetAssertionHandler, "SDL_SetAssertionHandler"); + lib.bindSymbol(cast(void**)&SDL_GetAssertionReport, "SDL_GetAssertionReport"); + lib.bindSymbol(cast(void**)&SDL_ResetAssertionReport, "SDL_ResetAssertionReport"); + lib.bindSymbol(cast(void**)&SDL_GetNumAudioDrivers, "SDL_GetNumAudioDrivers"); + lib.bindSymbol(cast(void**)&SDL_GetAudioDriver, "SDL_GetAudioDriver"); + lib.bindSymbol(cast(void**)&SDL_AudioInit, "SDL_AudioInit"); + lib.bindSymbol(cast(void**)&SDL_AudioQuit, "SDL_AudioQuit"); + lib.bindSymbol(cast(void**)&SDL_GetCurrentAudioDriver, "SDL_GetCurrentAudioDriver"); + lib.bindSymbol(cast(void**)&SDL_OpenAudio, "SDL_OpenAudio"); + lib.bindSymbol(cast(void**)&SDL_GetNumAudioDevices, "SDL_GetNumAudioDevices"); + lib.bindSymbol(cast(void**)&SDL_GetAudioDeviceName, "SDL_GetAudioDeviceName"); + lib.bindSymbol(cast(void**)&SDL_OpenAudioDevice, "SDL_OpenAudioDevice"); + lib.bindSymbol(cast(void**)&SDL_GetAudioStatus, "SDL_GetAudioStatus"); + lib.bindSymbol(cast(void**)&SDL_GetAudioDeviceStatus, "SDL_GetAudioDeviceStatus"); + lib.bindSymbol(cast(void**)&SDL_PauseAudio, "SDL_PauseAudio"); + lib.bindSymbol(cast(void**)&SDL_PauseAudioDevice, "SDL_PauseAudioDevice"); + lib.bindSymbol(cast(void**)&SDL_LoadWAV_RW, "SDL_LoadWAV_RW"); + lib.bindSymbol(cast(void**)&SDL_FreeWAV, "SDL_FreeWAV"); + lib.bindSymbol(cast(void**)&SDL_BuildAudioCVT, "SDL_BuildAudioCVT"); + lib.bindSymbol(cast(void**)&SDL_ConvertAudio, "SDL_ConvertAudio"); + lib.bindSymbol(cast(void**)&SDL_MixAudio, "SDL_MixAudio"); + lib.bindSymbol(cast(void**)&SDL_MixAudioFormat, "SDL_MixAudioFormat"); + lib.bindSymbol(cast(void**)&SDL_LockAudio, "SDL_LockAudio"); + lib.bindSymbol(cast(void**)&SDL_LockAudioDevice, "SDL_LockAudioDevice"); + lib.bindSymbol(cast(void**)&SDL_UnlockAudio, "SDL_UnlockAudio"); + lib.bindSymbol(cast(void**)&SDL_UnlockAudioDevice, "SDL_UnlockAudioDevice"); + lib.bindSymbol(cast(void**)&SDL_CloseAudio, "SDL_CloseAudio"); + lib.bindSymbol(cast(void**)&SDL_CloseAudioDevice, "SDL_CloseAudioDevice"); + lib.bindSymbol(cast(void**)&SDL_SetClipboardText, "SDL_SetClipboardText"); + lib.bindSymbol(cast(void**)&SDL_GetClipboardText, "SDL_GetClipboardText"); + lib.bindSymbol(cast(void**)&SDL_HasClipboardText, "SDL_HasClipboardText"); + lib.bindSymbol(cast(void**)&SDL_GetCPUCount, "SDL_GetCPUCount"); + lib.bindSymbol(cast(void**)&SDL_GetCPUCacheLineSize, "SDL_GetCPUCacheLineSize"); + lib.bindSymbol(cast(void**)&SDL_HasRDTSC, "SDL_HasRDTSC"); + lib.bindSymbol(cast(void**)&SDL_HasAltiVec, "SDL_HasAltiVec"); + lib.bindSymbol(cast(void**)&SDL_HasMMX, "SDL_HasMMX"); + lib.bindSymbol(cast(void**)&SDL_Has3DNow, "SDL_Has3DNow"); + lib.bindSymbol(cast(void**)&SDL_HasSSE, "SDL_HasSSE"); + lib.bindSymbol(cast(void**)&SDL_HasSSE2, "SDL_HasSSE2"); + lib.bindSymbol(cast(void**)&SDL_HasSSE3, "SDL_HasSSE3"); + lib.bindSymbol(cast(void**)&SDL_HasSSE41, "SDL_HasSSE41"); + lib.bindSymbol(cast(void**)&SDL_HasSSE42, "SDL_HasSSE42"); + lib.bindSymbol(cast(void**)&SDL_SetError, "SDL_SetError"); + lib.bindSymbol(cast(void**)&SDL_GetError, "SDL_GetError"); + lib.bindSymbol(cast(void**)&SDL_ClearError, "SDL_ClearError"); + lib.bindSymbol(cast(void**)&SDL_PumpEvents, "SDL_PumpEvents"); + lib.bindSymbol(cast(void**)&SDL_PeepEvents, "SDL_PeepEvents"); + lib.bindSymbol(cast(void**)&SDL_HasEvent, "SDL_HasEvent"); + lib.bindSymbol(cast(void**)&SDL_HasEvents, "SDL_HasEvents"); + lib.bindSymbol(cast(void**)&SDL_FlushEvent, "SDL_FlushEvent"); + lib.bindSymbol(cast(void**)&SDL_FlushEvents, "SDL_FlushEvents"); + lib.bindSymbol(cast(void**)&SDL_PollEvent, "SDL_PollEvent"); + lib.bindSymbol(cast(void**)&SDL_WaitEvent, "SDL_WaitEvent"); + lib.bindSymbol(cast(void**)&SDL_WaitEventTimeout, "SDL_WaitEventTimeout"); + lib.bindSymbol(cast(void**)&SDL_PushEvent, "SDL_PushEvent"); + lib.bindSymbol(cast(void**)&SDL_SetEventFilter, "SDL_SetEventFilter"); + lib.bindSymbol(cast(void**)&SDL_GetEventFilter, "SDL_GetEventFilter"); + lib.bindSymbol(cast(void**)&SDL_AddEventWatch, "SDL_AddEventWatch"); + lib.bindSymbol(cast(void**)&SDL_DelEventWatch, "SDL_DelEventWatch"); + lib.bindSymbol(cast(void**)&SDL_FilterEvents, "SDL_FilterEvents"); + lib.bindSymbol(cast(void**)&SDL_EventState, "SDL_EventState"); + lib.bindSymbol(cast(void**)&SDL_RegisterEvents, "SDL_RegisterEvents"); + lib.bindSymbol(cast(void**)&SDL_GameControllerAddMapping, "SDL_GameControllerAddMapping"); + lib.bindSymbol(cast(void**)&SDL_GameControllerMappingForGUID, "SDL_GameControllerMappingForGUID"); + lib.bindSymbol(cast(void**)&SDL_GameControllerMapping, "SDL_GameControllerMapping"); + lib.bindSymbol(cast(void**)&SDL_IsGameController, "SDL_IsGameController"); + lib.bindSymbol(cast(void**)&SDL_GameControllerNameForIndex, "SDL_GameControllerNameForIndex"); + lib.bindSymbol(cast(void**)&SDL_GameControllerOpen, "SDL_GameControllerOpen"); + lib.bindSymbol(cast(void**)&SDL_GameControllerName, "SDL_GameControllerName"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetAttached, "SDL_GameControllerGetAttached"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetJoystick, "SDL_GameControllerGetJoystick"); + lib.bindSymbol(cast(void**)&SDL_GameControllerEventState, "SDL_GameControllerEventState"); + lib.bindSymbol(cast(void**)&SDL_GameControllerUpdate, "SDL_GameControllerUpdate"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetAxisFromString, "SDL_GameControllerGetAxisFromString"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetStringForAxis, "SDL_GameControllerGetStringForAxis"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetBindForAxis, "SDL_GameControllerGetBindForAxis"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetAxis, "SDL_GameControllerGetAxis"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetButtonFromString, "SDL_GameControllerGetButtonFromString"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetStringForButton, "SDL_GameControllerGetStringForButton"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetBindForButton, "SDL_GameControllerGetBindForButton"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetButton, "SDL_GameControllerGetButton"); + lib.bindSymbol(cast(void**)&SDL_GameControllerClose, "SDL_GameControllerClose"); + lib.bindSymbol(cast(void**)&SDL_RecordGesture, "SDL_RecordGesture"); + lib.bindSymbol(cast(void**)&SDL_SaveAllDollarTemplates, "SDL_SaveAllDollarTemplates"); + lib.bindSymbol(cast(void**)&SDL_SaveDollarTemplate, "SDL_SaveDollarTemplate"); + lib.bindSymbol(cast(void**)&SDL_LoadDollarTemplates, "SDL_LoadDollarTemplates"); + lib.bindSymbol(cast(void**)&SDL_NumHaptics, "SDL_NumHaptics"); + lib.bindSymbol(cast(void**)&SDL_HapticName, "SDL_HapticName"); + lib.bindSymbol(cast(void**)&SDL_HapticOpen, "SDL_HapticOpen"); + lib.bindSymbol(cast(void**)&SDL_HapticOpened, "SDL_HapticOpened"); + lib.bindSymbol(cast(void**)&SDL_HapticIndex, "SDL_HapticIndex"); + lib.bindSymbol(cast(void**)&SDL_MouseIsHaptic, "SDL_MouseIsHaptic"); + lib.bindSymbol(cast(void**)&SDL_HapticOpenFromMouse, "SDL_HapticOpenFromMouse"); + lib.bindSymbol(cast(void**)&SDL_JoystickIsHaptic, "SDL_JoystickIsHaptic"); + lib.bindSymbol(cast(void**)&SDL_HapticOpenFromJoystick, "SDL_HapticOpenFromJoystick"); + lib.bindSymbol(cast(void**)&SDL_HapticClose, "SDL_HapticClose"); + lib.bindSymbol(cast(void**)&SDL_HapticNumEffects, "SDL_HapticNumEffects"); + lib.bindSymbol(cast(void**)&SDL_HapticNumEffectsPlaying, "SDL_HapticNumEffectsPlaying"); + lib.bindSymbol(cast(void**)&SDL_HapticQuery, "SDL_HapticQuery"); + lib.bindSymbol(cast(void**)&SDL_HapticNumAxes, "SDL_HapticNumAxes"); + lib.bindSymbol(cast(void**)&SDL_HapticEffectSupported, "SDL_HapticEffectSupported"); + lib.bindSymbol(cast(void**)&SDL_HapticNewEffect, "SDL_HapticNewEffect"); + lib.bindSymbol(cast(void**)&SDL_HapticUpdateEffect, "SDL_HapticUpdateEffect"); + lib.bindSymbol(cast(void**)&SDL_HapticRunEffect, "SDL_HapticRunEffect"); + lib.bindSymbol(cast(void**)&SDL_HapticStopEffect, "SDL_HapticStopEffect"); + lib.bindSymbol(cast(void**)&SDL_HapticDestroyEffect, "SDL_HapticDestroyEffect"); + lib.bindSymbol(cast(void**)&SDL_HapticGetEffectStatus, "SDL_HapticGetEffectStatus"); + lib.bindSymbol(cast(void**)&SDL_HapticSetGain, "SDL_HapticSetGain"); + lib.bindSymbol(cast(void**)&SDL_HapticSetAutocenter, "SDL_HapticSetAutocenter"); + lib.bindSymbol(cast(void**)&SDL_HapticPause, "SDL_HapticPause"); + lib.bindSymbol(cast(void**)&SDL_HapticUnpause, "SDL_HapticUnpause"); + lib.bindSymbol(cast(void**)&SDL_HapticStopAll, "SDL_HapticStopAll"); + lib.bindSymbol(cast(void**)&SDL_HapticRumbleSupported, "SDL_HapticRumbleSupported"); + lib.bindSymbol(cast(void**)&SDL_HapticRumbleInit, "SDL_HapticRumbleInit"); + lib.bindSymbol(cast(void**)&SDL_HapticRumblePlay, "SDL_HapticRumblePlay"); + lib.bindSymbol(cast(void**)&SDL_HapticRumbleStop, "SDL_HapticRumbleStop"); + lib.bindSymbol(cast(void**)&SDL_SetHintWithPriority, "SDL_SetHintWithPriority"); + lib.bindSymbol(cast(void**)&SDL_SetHint, "SDL_SetHint"); + lib.bindSymbol(cast(void**)&SDL_GetHint, "SDL_GetHint"); + lib.bindSymbol(cast(void**)&SDL_AddHintCallback, "SDL_AddHintCallback"); + lib.bindSymbol(cast(void**)&SDL_DelHintCallback, "SDL_DelHintCallback"); + lib.bindSymbol(cast(void**)&SDL_ClearHints, "SDL_ClearHints"); + lib.bindSymbol(cast(void**)&SDL_NumJoysticks, "SDL_NumJoysticks"); + lib.bindSymbol(cast(void**)&SDL_JoystickNameForIndex, "SDL_JoystickNameForIndex"); + lib.bindSymbol(cast(void**)&SDL_JoystickOpen, "SDL_JoystickOpen"); + lib.bindSymbol(cast(void**)&SDL_JoystickName, "SDL_JoystickName"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetDeviceGUID, "SDL_JoystickGetDeviceGUID"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetGUID, "SDL_JoystickGetGUID"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetGUIDString, "SDL_JoystickGetGUIDString"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetGUIDFromString, "SDL_JoystickGetGUIDFromString"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetAttached, "SDL_JoystickGetAttached"); + lib.bindSymbol(cast(void**)&SDL_JoystickInstanceID, "SDL_JoystickInstanceID"); + lib.bindSymbol(cast(void**)&SDL_JoystickNumAxes, "SDL_JoystickNumAxes"); + lib.bindSymbol(cast(void**)&SDL_JoystickNumBalls, "SDL_JoystickNumBalls"); + lib.bindSymbol(cast(void**)&SDL_JoystickNumHats, "SDL_JoystickNumHats"); + lib.bindSymbol(cast(void**)&SDL_JoystickNumButtons, "SDL_JoystickNumButtons"); + lib.bindSymbol(cast(void**)&SDL_JoystickUpdate, "SDL_JoystickUpdate"); + lib.bindSymbol(cast(void**)&SDL_JoystickEventState, "SDL_JoystickEventState"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetAxis, "SDL_JoystickGetAxis"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetHat, "SDL_JoystickGetHat"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetBall, "SDL_JoystickGetBall"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetButton, "SDL_JoystickGetButton"); + lib.bindSymbol(cast(void**)&SDL_JoystickClose, "SDL_JoystickClose"); + lib.bindSymbol(cast(void**)&SDL_GetKeyboardFocus, "SDL_GetKeyboardFocus"); + lib.bindSymbol(cast(void**)&SDL_GetKeyboardState, "SDL_GetKeyboardState"); + lib.bindSymbol(cast(void**)&SDL_GetModState, "SDL_GetModState"); + lib.bindSymbol(cast(void**)&SDL_SetModState, "SDL_SetModState"); + lib.bindSymbol(cast(void**)&SDL_GetKeyFromScancode, "SDL_GetKeyFromScancode"); + lib.bindSymbol(cast(void**)&SDL_GetScancodeFromKey, "SDL_GetScancodeFromKey"); + lib.bindSymbol(cast(void**)&SDL_GetScancodeName, "SDL_GetScancodeName"); + lib.bindSymbol(cast(void**)&SDL_GetScancodeFromName, "SDL_GetScancodeFromName"); + lib.bindSymbol(cast(void**)&SDL_GetKeyName, "SDL_GetKeyName"); + lib.bindSymbol(cast(void**)&SDL_GetKeyFromName, "SDL_GetKeyFromName"); + lib.bindSymbol(cast(void**)&SDL_StartTextInput, "SDL_StartTextInput"); + lib.bindSymbol(cast(void**)&SDL_IsTextInputActive, "SDL_IsTextInputActive"); + lib.bindSymbol(cast(void**)&SDL_StopTextInput, "SDL_StopTextInput"); + lib.bindSymbol(cast(void**)&SDL_SetTextInputRect, "SDL_SetTextInputRect"); + lib.bindSymbol(cast(void**)&SDL_HasScreenKeyboardSupport, "SDL_HasScreenKeyboardSupport"); + lib.bindSymbol(cast(void**)&SDL_IsScreenKeyboardShown, "SDL_IsScreenKeyboardShown"); + lib.bindSymbol(cast(void**)&SDL_LoadObject, "SDL_LoadObject"); + lib.bindSymbol(cast(void**)&SDL_LoadFunction, "SDL_LoadFunction"); + lib.bindSymbol(cast(void**)&SDL_UnloadObject, "SDL_UnloadObject"); + lib.bindSymbol(cast(void**)&SDL_LogSetAllPriority, "SDL_LogSetAllPriority"); + lib.bindSymbol(cast(void**)&SDL_LogSetPriority, "SDL_LogSetPriority"); + lib.bindSymbol(cast(void**)&SDL_LogGetPriority, "SDL_LogGetPriority"); + lib.bindSymbol(cast(void**)&SDL_LogResetPriorities, "SDL_LogResetPriorities"); + lib.bindSymbol(cast(void**)&SDL_Log, "SDL_Log"); + lib.bindSymbol(cast(void**)&SDL_LogVerbose, "SDL_LogVerbose"); + lib.bindSymbol(cast(void**)&SDL_LogDebug, "SDL_LogDebug"); + lib.bindSymbol(cast(void**)&SDL_LogInfo, "SDL_LogInfo"); + lib.bindSymbol(cast(void**)&SDL_LogWarn, "SDL_LogWarn"); + lib.bindSymbol(cast(void**)&SDL_LogError, "SDL_LogError"); + lib.bindSymbol(cast(void**)&SDL_LogCritical, "SDL_LogCritical"); + lib.bindSymbol(cast(void**)&SDL_LogMessage, "SDL_LogMessage"); + lib.bindSymbol(cast(void**)&SDL_LogMessageV, "SDL_LogMessageV"); + lib.bindSymbol(cast(void**)&SDL_LogGetOutputFunction, "SDL_LogGetOutputFunction"); + lib.bindSymbol(cast(void**)&SDL_LogSetOutputFunction, "SDL_LogSetOutputFunction"); + lib.bindSymbol(cast(void**)&SDL_ShowMessageBox, "SDL_ShowMessageBox"); + lib.bindSymbol(cast(void**)&SDL_ShowSimpleMessageBox, "SDL_ShowSimpleMessageBox"); + lib.bindSymbol(cast(void**)&SDL_GetMouseFocus, "SDL_GetMouseFocus"); + lib.bindSymbol(cast(void**)&SDL_GetMouseState, "SDL_GetMouseState"); + lib.bindSymbol(cast(void**)&SDL_GetRelativeMouseState, "SDL_GetRelativeMouseState"); + lib.bindSymbol(cast(void**)&SDL_WarpMouseInWindow, "SDL_WarpMouseInWindow"); + lib.bindSymbol(cast(void**)&SDL_SetRelativeMouseMode, "SDL_SetRelativeMouseMode"); + lib.bindSymbol(cast(void**)&SDL_GetRelativeMouseMode, "SDL_GetRelativeMouseMode"); + lib.bindSymbol(cast(void**)&SDL_CreateCursor, "SDL_CreateCursor"); + lib.bindSymbol(cast(void**)&SDL_CreateColorCursor, "SDL_CreateColorCursor"); + lib.bindSymbol(cast(void**)&SDL_CreateSystemCursor, "SDL_CreateSystemCursor"); + lib.bindSymbol(cast(void**)&SDL_SetCursor, "SDL_SetCursor"); + lib.bindSymbol(cast(void**)&SDL_GetCursor, "SDL_GetCursor"); + lib.bindSymbol(cast(void**)&SDL_GetDefaultCursor, "SDL_GetDefaultCursor"); + lib.bindSymbol(cast(void**)&SDL_FreeCursor, "SDL_FreeCursor"); + lib.bindSymbol(cast(void**)&SDL_ShowCursor, "SDL_ShowCursor"); + lib.bindSymbol(cast(void**)&SDL_GetPixelFormatName, "SDL_GetPixelFormatName"); + lib.bindSymbol(cast(void**)&SDL_PixelFormatEnumToMasks, "SDL_PixelFormatEnumToMasks"); + lib.bindSymbol(cast(void**)&SDL_MasksToPixelFormatEnum, "SDL_MasksToPixelFormatEnum"); + lib.bindSymbol(cast(void**)&SDL_AllocFormat, "SDL_AllocFormat"); + lib.bindSymbol(cast(void**)&SDL_FreeFormat, "SDL_FreeFormat"); + lib.bindSymbol(cast(void**)&SDL_AllocPalette, "SDL_AllocPalette"); + lib.bindSymbol(cast(void**)&SDL_SetPixelFormatPalette, "SDL_SetPixelFormatPalette"); + lib.bindSymbol(cast(void**)&SDL_SetPaletteColors, "SDL_SetPaletteColors"); + lib.bindSymbol(cast(void**)&SDL_FreePalette, "SDL_FreePalette"); + lib.bindSymbol(cast(void**)&SDL_MapRGB, "SDL_MapRGB"); + lib.bindSymbol(cast(void**)&SDL_MapRGBA, "SDL_MapRGBA"); + lib.bindSymbol(cast(void**)&SDL_GetRGB, "SDL_GetRGB"); + lib.bindSymbol(cast(void**)&SDL_GetRGBA, "SDL_GetRGBA"); + lib.bindSymbol(cast(void**)&SDL_CalculateGammaRamp, "SDL_CalculateGammaRamp"); + lib.bindSymbol(cast(void**)&SDL_GetPlatform, "SDL_GetPlatform"); + lib.bindSymbol(cast(void**)&SDL_GetPowerInfo, "SDL_GetPowerInfo"); + lib.bindSymbol(cast(void**)&SDL_HasIntersection, "SDL_HasIntersection"); + lib.bindSymbol(cast(void**)&SDL_IntersectRect, "SDL_IntersectRect"); + lib.bindSymbol(cast(void**)&SDL_UnionRect, "SDL_UnionRect"); + lib.bindSymbol(cast(void**)&SDL_EnclosePoints, "SDL_EnclosePoints"); + lib.bindSymbol(cast(void**)&SDL_IntersectRectAndLine, "SDL_IntersectRectAndLine"); + lib.bindSymbol(cast(void**)&SDL_GetNumRenderDrivers, "SDL_GetNumRenderDrivers"); + lib.bindSymbol(cast(void**)&SDL_GetRenderDriverInfo, "SDL_GetRenderDriverInfo"); + lib.bindSymbol(cast(void**)&SDL_CreateWindowAndRenderer, "SDL_CreateWindowAndRenderer"); + lib.bindSymbol(cast(void**)&SDL_CreateRenderer, "SDL_CreateRenderer"); + lib.bindSymbol(cast(void**)&SDL_CreateSoftwareRenderer, "SDL_CreateSoftwareRenderer"); + lib.bindSymbol(cast(void**)&SDL_GetRenderer, "SDL_GetRenderer"); + lib.bindSymbol(cast(void**)&SDL_GetRendererInfo, "SDL_GetRendererInfo"); + lib.bindSymbol(cast(void**)&SDL_GetRendererOutputSize, "SDL_GetRendererOutputSize"); + lib.bindSymbol(cast(void**)&SDL_CreateTexture, "SDL_CreateTexture"); + lib.bindSymbol(cast(void**)&SDL_CreateTextureFromSurface, "SDL_CreateTextureFromSurface"); + lib.bindSymbol(cast(void**)&SDL_QueryTexture, "SDL_QueryTexture"); + lib.bindSymbol(cast(void**)&SDL_SetTextureColorMod, "SDL_SetTextureColorMod"); + lib.bindSymbol(cast(void**)&SDL_GetTextureColorMod, "SDL_GetTextureColorMod"); + lib.bindSymbol(cast(void**)&SDL_SetTextureAlphaMod, "SDL_SetTextureAlphaMod"); + lib.bindSymbol(cast(void**)&SDL_GetTextureAlphaMod, "SDL_GetTextureAlphaMod"); + lib.bindSymbol(cast(void**)&SDL_SetTextureBlendMode, "SDL_SetTextureBlendMode"); + lib.bindSymbol(cast(void**)&SDL_GetTextureBlendMode, "SDL_GetTextureBlendMode"); + lib.bindSymbol(cast(void**)&SDL_UpdateTexture, "SDL_UpdateTexture"); + lib.bindSymbol(cast(void**)&SDL_LockTexture, "SDL_LockTexture"); + lib.bindSymbol(cast(void**)&SDL_UnlockTexture, "SDL_UnlockTexture"); + lib.bindSymbol(cast(void**)&SDL_RenderTargetSupported, "SDL_RenderTargetSupported"); + lib.bindSymbol(cast(void**)&SDL_SetRenderTarget, "SDL_SetRenderTarget"); + lib.bindSymbol(cast(void**)&SDL_GetRenderTarget, "SDL_GetRenderTarget"); + lib.bindSymbol(cast(void**)&SDL_RenderSetClipRect, "SDL_RenderSetClipRect"); + lib.bindSymbol(cast(void**)&SDL_RenderGetClipRect, "SDL_RenderGetClipRect"); + lib.bindSymbol(cast(void**)&SDL_RenderSetLogicalSize, "SDL_RenderSetLogicalSize"); + lib.bindSymbol(cast(void**)&SDL_RenderGetLogicalSize, "SDL_RenderGetLogicalSize"); + lib.bindSymbol(cast(void**)&SDL_RenderSetViewport, "SDL_RenderSetViewport"); + lib.bindSymbol(cast(void**)&SDL_RenderGetViewport, "SDL_RenderGetViewport"); + lib.bindSymbol(cast(void**)&SDL_RenderSetScale, "SDL_RenderSetScale"); + lib.bindSymbol(cast(void**)&SDL_RenderGetScale, "SDL_RenderGetScale"); + lib.bindSymbol(cast(void**)&SDL_SetRenderDrawColor, "SDL_SetRenderDrawColor"); + lib.bindSymbol(cast(void**)&SDL_GetRenderDrawColor, "SDL_GetRenderDrawColor"); + lib.bindSymbol(cast(void**)&SDL_SetRenderDrawBlendMode, "SDL_SetRenderDrawBlendMode"); + lib.bindSymbol(cast(void**)&SDL_GetRenderDrawBlendMode, "SDL_GetRenderDrawBlendMode"); + lib.bindSymbol(cast(void**)&SDL_RenderClear, "SDL_RenderClear"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawPoint, "SDL_RenderDrawPoint"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawPoints, "SDL_RenderDrawPoints"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawLine, "SDL_RenderDrawLine"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawLines, "SDL_RenderDrawLines"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawRect, "SDL_RenderDrawRect"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawRects, "SDL_RenderDrawRects"); + lib.bindSymbol(cast(void**)&SDL_RenderFillRect, "SDL_RenderFillRect"); + lib.bindSymbol(cast(void**)&SDL_RenderFillRects, "SDL_RenderFillRects"); + lib.bindSymbol(cast(void**)&SDL_RenderCopy, "SDL_RenderCopy"); + lib.bindSymbol(cast(void**)&SDL_RenderCopyEx, "SDL_RenderCopyEx"); + lib.bindSymbol(cast(void**)&SDL_RenderReadPixels, "SDL_RenderReadPixels"); + lib.bindSymbol(cast(void**)&SDL_RenderPresent, "SDL_RenderPresent"); + lib.bindSymbol(cast(void**)&SDL_DestroyTexture, "SDL_DestroyTexture"); + lib.bindSymbol(cast(void**)&SDL_DestroyRenderer, "SDL_DestroyRenderer"); + lib.bindSymbol(cast(void**)&SDL_GL_BindTexture, "SDL_GL_BindTexture"); + lib.bindSymbol(cast(void**)&SDL_GL_UnbindTexture, "SDL_GL_UnbindTexture"); + lib.bindSymbol(cast(void**)&SDL_RWFromFile, "SDL_RWFromFile"); + lib.bindSymbol(cast(void**)&SDL_RWFromFP, "SDL_RWFromFP"); + lib.bindSymbol(cast(void**)&SDL_RWFromMem, "SDL_RWFromMem"); + lib.bindSymbol(cast(void**)&SDL_RWFromConstMem, "SDL_RWFromConstMem"); + lib.bindSymbol(cast(void**)&SDL_AllocRW, "SDL_AllocRW"); + lib.bindSymbol(cast(void**)&SDL_FreeRW, "SDL_FreeRW"); + lib.bindSymbol(cast(void**)&SDL_ReadU8, "SDL_ReadU8"); + lib.bindSymbol(cast(void**)&SDL_ReadLE16, "SDL_ReadLE16"); + lib.bindSymbol(cast(void**)&SDL_ReadBE16, "SDL_ReadBE16"); + lib.bindSymbol(cast(void**)&SDL_ReadLE32, "SDL_ReadLE32"); + lib.bindSymbol(cast(void**)&SDL_ReadBE32, "SDL_ReadBE32"); + lib.bindSymbol(cast(void**)&SDL_ReadLE64, "SDL_ReadLE64"); + lib.bindSymbol(cast(void**)&SDL_ReadBE64, "SDL_ReadBE64"); + lib.bindSymbol(cast(void**)&SDL_WriteU8, "SDL_WriteU8"); + lib.bindSymbol(cast(void**)&SDL_WriteLE16, "SDL_WriteLE16"); + lib.bindSymbol(cast(void**)&SDL_WriteBE16, "SDL_WriteBE16"); + lib.bindSymbol(cast(void**)&SDL_WriteLE32, "SDL_WriteLE32"); + lib.bindSymbol(cast(void**)&SDL_WriteBE32, "SDL_WriteBE32"); + lib.bindSymbol(cast(void**)&SDL_WriteLE64, "SDL_WriteLE64"); + lib.bindSymbol(cast(void**)&SDL_WriteBE64, "SDL_WriteBE64"); + lib.bindSymbol(cast(void**)&SDL_CreateShapedWindow, "SDL_CreateShapedWindow"); + lib.bindSymbol(cast(void**)&SDL_IsShapedWindow, "SDL_IsShapedWindow"); + lib.bindSymbol(cast(void**)&SDL_SetWindowShape, "SDL_SetWindowShape"); + lib.bindSymbol(cast(void**)&SDL_GetShapedWindowMode, "SDL_GetShapedWindowMode"); + lib.bindSymbol(cast(void**)&SDL_free, "SDL_free"); + lib.bindSymbol(cast(void**)&SDL_CreateRGBSurface, "SDL_CreateRGBSurface"); + lib.bindSymbol(cast(void**)&SDL_CreateRGBSurfaceFrom, "SDL_CreateRGBSurfaceFrom"); + lib.bindSymbol(cast(void**)&SDL_FreeSurface, "SDL_FreeSurface"); + lib.bindSymbol(cast(void**)&SDL_SetSurfacePalette, "SDL_SetSurfacePalette"); + lib.bindSymbol(cast(void**)&SDL_LockSurface, "SDL_LockSurface"); + lib.bindSymbol(cast(void**)&SDL_UnlockSurface, "SDL_UnlockSurface"); + lib.bindSymbol(cast(void**)&SDL_LoadBMP_RW, "SDL_LoadBMP_RW"); + lib.bindSymbol(cast(void**)&SDL_SaveBMP_RW, "SDL_SaveBMP_RW"); + lib.bindSymbol(cast(void**)&SDL_SetSurfaceRLE, "SDL_SetSurfaceRLE"); + lib.bindSymbol(cast(void**)&SDL_SetColorKey, "SDL_SetColorKey"); + lib.bindSymbol(cast(void**)&SDL_GetColorKey, "SDL_GetColorKey"); + lib.bindSymbol(cast(void**)&SDL_SetSurfaceColorMod, "SDL_SetSurfaceColorMod"); + lib.bindSymbol(cast(void**)&SDL_GetSurfaceColorMod, "SDL_GetSurfaceColorMod"); + lib.bindSymbol(cast(void**)&SDL_SetSurfaceAlphaMod, "SDL_SetSurfaceAlphaMod"); + lib.bindSymbol(cast(void**)&SDL_GetSurfaceAlphaMod, "SDL_GetSurfaceAlphaMod"); + lib.bindSymbol(cast(void**)&SDL_SetSurfaceBlendMode, "SDL_SetSurfaceBlendMode"); + lib.bindSymbol(cast(void**)&SDL_GetSurfaceBlendMode, "SDL_GetSurfaceBlendMode"); + lib.bindSymbol(cast(void**)&SDL_SetClipRect, "SDL_SetClipRect"); + lib.bindSymbol(cast(void**)&SDL_GetClipRect, "SDL_GetClipRect"); + lib.bindSymbol(cast(void**)&SDL_ConvertSurface, "SDL_ConvertSurface"); + lib.bindSymbol(cast(void**)&SDL_ConvertSurfaceFormat, "SDL_ConvertSurfaceFormat"); + lib.bindSymbol(cast(void**)&SDL_ConvertPixels, "SDL_ConvertPixels"); + lib.bindSymbol(cast(void**)&SDL_FillRect, "SDL_FillRect"); + lib.bindSymbol(cast(void**)&SDL_FillRects, "SDL_FillRects"); + lib.bindSymbol(cast(void**)&SDL_UpperBlit, "SDL_UpperBlit"); + lib.bindSymbol(cast(void**)&SDL_LowerBlit, "SDL_LowerBlit"); + lib.bindSymbol(cast(void**)&SDL_SoftStretch, "SDL_SoftStretch"); + lib.bindSymbol(cast(void**)&SDL_UpperBlitScaled, "SDL_UpperBlitScaled"); + lib.bindSymbol(cast(void**)&SDL_LowerBlitScaled, "SDL_LowerBlitScaled"); + version(Android) { + lib.bindSymbol(cast(void**)&SDL_AndroidGetJNIEnv, "SDL_AndroidGetJNIEnv"); + lib.bindSymbol(cast(void**)&SDL_AndroidGetActivity, "SDL_AndroidGetActivity"); + + lib.bindSymbol(cast(void**)&SDL_AndroidGetInternalStoragePath, "SDL_AndroidGetInternalStoragePath"); + lib.bindSymbol(cast(void**)&SDL_AndroidGetInternalStorageState, "SDL_AndroidGetInternalStorageState"); + lib.bindSymbol(cast(void**)&SDL_AndroidGetExternalStoragePath, "SDL_AndroidGetExternalStoragePath"); + } + + lib.bindSymbol(cast(void**)&SDL_GetWindowWMInfo, "SDL_GetWindowWMInfo"); + lib.bindSymbol(cast(void**)&SDL_GetTicks, "SDL_GetTicks"); + lib.bindSymbol(cast(void**)&SDL_GetPerformanceCounter, "SDL_GetPerformanceCounter"); + lib.bindSymbol(cast(void**)&SDL_GetPerformanceFrequency, "SDL_GetPerformanceFrequency"); + lib.bindSymbol(cast(void**)&SDL_Delay, "SDL_Delay"); + lib.bindSymbol(cast(void**)&SDL_AddTimer, "SDL_AddTimer"); + lib.bindSymbol(cast(void**)&SDL_RemoveTimer, "SDL_RemoveTimer"); + lib.bindSymbol(cast(void**)&SDL_GetNumTouchDevices, "SDL_GetNumTouchDevices"); + lib.bindSymbol(cast(void**)&SDL_GetTouchDevice, "SDL_GetTouchDevice"); + lib.bindSymbol(cast(void**)&SDL_GetNumTouchFingers, "SDL_GetNumTouchFingers"); + lib.bindSymbol(cast(void**)&SDL_GetTouchFinger, "SDL_GetTouchFinger"); + lib.bindSymbol(cast(void**)&SDL_GetVersion, "SDL_GetVersion"); + lib.bindSymbol(cast(void**)&SDL_GetRevision, "SDL_GetRevision"); + lib.bindSymbol(cast(void**)&SDL_GetRevisionNumber, "SDL_GetRevisionNumber"); + lib.bindSymbol(cast(void**)&SDL_GetNumVideoDrivers, "SDL_GetNumVideoDrivers"); + lib.bindSymbol(cast(void**)&SDL_GetVideoDriver, "SDL_GetVideoDriver"); + lib.bindSymbol(cast(void**)&SDL_VideoInit, "SDL_VideoInit"); + lib.bindSymbol(cast(void**)&SDL_VideoQuit, "SDL_VideoQuit"); + lib.bindSymbol(cast(void**)&SDL_GetCurrentVideoDriver, "SDL_GetCurrentVideoDriver"); + lib.bindSymbol(cast(void**)&SDL_GetNumVideoDisplays, "SDL_GetNumVideoDisplays"); + lib.bindSymbol(cast(void**)&SDL_GetDisplayName, "SDL_GetDisplayName"); + lib.bindSymbol(cast(void**)&SDL_GetDisplayBounds, "SDL_GetDisplayBounds"); + lib.bindSymbol(cast(void**)&SDL_GetNumDisplayModes, "SDL_GetNumDisplayModes"); + lib.bindSymbol(cast(void**)&SDL_GetDisplayMode, "SDL_GetDisplayMode"); + lib.bindSymbol(cast(void**)&SDL_GetDesktopDisplayMode, "SDL_GetDesktopDisplayMode"); + lib.bindSymbol(cast(void**)&SDL_GetCurrentDisplayMode, "SDL_GetCurrentDisplayMode"); + lib.bindSymbol(cast(void**)&SDL_GetClosestDisplayMode, "SDL_GetClosestDisplayMode"); + lib.bindSymbol(cast(void**)&SDL_GetWindowDisplayIndex, "SDL_GetWindowDisplayIndex"); + lib.bindSymbol(cast(void**)&SDL_SetWindowDisplayMode, "SDL_SetWindowDisplayMode"); + lib.bindSymbol(cast(void**)&SDL_GetWindowDisplayMode, "SDL_GetWindowDisplayMode"); + lib.bindSymbol(cast(void**)&SDL_GetWindowPixelFormat, "SDL_GetWindowPixelFormat"); + lib.bindSymbol(cast(void**)&SDL_CreateWindow, "SDL_CreateWindow"); + lib.bindSymbol(cast(void**)&SDL_CreateWindowFrom, "SDL_CreateWindowFrom"); + lib.bindSymbol(cast(void**)&SDL_GetWindowID, "SDL_GetWindowID"); + lib.bindSymbol(cast(void**)&SDL_GetWindowFromID, "SDL_GetWindowFromID"); + lib.bindSymbol(cast(void**)&SDL_GetWindowFlags, "SDL_GetWindowFlags"); + lib.bindSymbol(cast(void**)&SDL_SetWindowTitle, "SDL_SetWindowTitle"); + lib.bindSymbol(cast(void**)&SDL_GetWindowTitle, "SDL_GetWindowTitle"); + lib.bindSymbol(cast(void**)&SDL_SetWindowIcon, "SDL_SetWindowIcon"); + lib.bindSymbol(cast(void**)&SDL_SetWindowData, "SDL_SetWindowData"); + lib.bindSymbol(cast(void**)&SDL_GetWindowData, "SDL_GetWindowData"); + lib.bindSymbol(cast(void**)&SDL_SetWindowPosition, "SDL_SetWindowPosition"); + lib.bindSymbol(cast(void**)&SDL_GetWindowPosition, "SDL_GetWindowPosition"); + lib.bindSymbol(cast(void**)&SDL_SetWindowSize, "SDL_SetWindowSize"); + lib.bindSymbol(cast(void**)&SDL_GetWindowSize, "SDL_GetWindowSize"); + lib.bindSymbol(cast(void**)&SDL_SetWindowMinimumSize, "SDL_SetWindowMinimumSize"); + lib.bindSymbol(cast(void**)&SDL_GetWindowMinimumSize, "SDL_GetWindowMinimumSize"); + lib.bindSymbol(cast(void**)&SDL_SetWindowMaximumSize, "SDL_SetWindowMaximumSize"); + lib.bindSymbol(cast(void**)&SDL_GetWindowMaximumSize, "SDL_GetWindowMaximumSize"); + lib.bindSymbol(cast(void**)&SDL_SetWindowBordered, "SDL_SetWindowBordered"); + lib.bindSymbol(cast(void**)&SDL_ShowWindow, "SDL_ShowWindow"); + lib.bindSymbol(cast(void**)&SDL_HideWindow, "SDL_HideWindow"); + lib.bindSymbol(cast(void**)&SDL_RaiseWindow, "SDL_RaiseWindow"); + lib.bindSymbol(cast(void**)&SDL_MaximizeWindow, "SDL_MaximizeWindow"); + lib.bindSymbol(cast(void**)&SDL_MinimizeWindow, "SDL_MinimizeWindow"); + lib.bindSymbol(cast(void**)&SDL_RestoreWindow, "SDL_RestoreWindow"); + lib.bindSymbol(cast(void**)&SDL_SetWindowFullscreen, "SDL_SetWindowFullscreen"); + lib.bindSymbol(cast(void**)&SDL_GetWindowSurface, "SDL_GetWindowSurface"); + lib.bindSymbol(cast(void**)&SDL_UpdateWindowSurface, "SDL_UpdateWindowSurface"); + lib.bindSymbol(cast(void**)&SDL_UpdateWindowSurfaceRects, "SDL_UpdateWindowSurfaceRects"); + lib.bindSymbol(cast(void**)&SDL_SetWindowGrab, "SDL_SetWindowGrab"); + lib.bindSymbol(cast(void**)&SDL_GetWindowGrab, "SDL_GetWindowGrab"); + lib.bindSymbol(cast(void**)&SDL_SetWindowBrightness, "SDL_SetWindowBrightness"); + lib.bindSymbol(cast(void**)&SDL_GetWindowBrightness, "SDL_GetWindowBrightness"); + lib.bindSymbol(cast(void**)&SDL_SetWindowGammaRamp, "SDL_SetWindowGammaRamp"); + lib.bindSymbol(cast(void**)&SDL_GetWindowGammaRamp, "SDL_GetWindowGammaRamp"); + lib.bindSymbol(cast(void**)&SDL_DestroyWindow, "SDL_DestroyWindow"); + lib.bindSymbol(cast(void**)&SDL_IsScreenSaverEnabled, "SDL_IsScreenSaverEnabled"); + lib.bindSymbol(cast(void**)&SDL_EnableScreenSaver, "SDL_EnableScreenSaver"); + lib.bindSymbol(cast(void**)&SDL_DisableScreenSaver, "SDL_DisableScreenSaver"); + lib.bindSymbol(cast(void**)&SDL_GL_LoadLibrary, "SDL_GL_LoadLibrary"); + lib.bindSymbol(cast(void**)&SDL_GL_GetProcAddress, "SDL_GL_GetProcAddress"); + lib.bindSymbol(cast(void**)&SDL_GL_UnloadLibrary, "SDL_GL_UnloadLibrary"); + lib.bindSymbol(cast(void**)&SDL_GL_ExtensionSupported, "SDL_GL_ExtensionSupported"); + lib.bindSymbol(cast(void**)&SDL_GL_SetAttribute, "SDL_GL_SetAttribute"); + lib.bindSymbol(cast(void**)&SDL_GL_GetAttribute, "SDL_GL_GetAttribute"); + lib.bindSymbol(cast(void**)&SDL_GL_CreateContext, "SDL_GL_CreateContext"); + lib.bindSymbol(cast(void**)&SDL_GL_MakeCurrent, "SDL_GL_MakeCurrent"); + lib.bindSymbol(cast(void**)&SDL_GL_GetCurrentWindow, "SDL_GL_GetCurrentWindow"); + lib.bindSymbol(cast(void**)&SDL_GL_GetCurrentContext, "SDL_GL_GetCurrentContext"); + lib.bindSymbol(cast(void**)&SDL_GL_SetSwapInterval, "SDL_GL_SetSwapInterval"); + lib.bindSymbol(cast(void**)&SDL_GL_GetSwapInterval, "SDL_GL_GetSwapInterval"); + lib.bindSymbol(cast(void**)&SDL_GL_SwapWindow, "SDL_GL_SwapWindow"); + lib.bindSymbol(cast(void**)&SDL_GL_DeleteContext, "SDL_GL_DeleteContext"); + + if(errorCount() != errCount) return SDLSupport.badLibrary; + else loadedVersion = SDLSupport.sdl200; + + static if(sdlSupport >= SDLSupport.sdl201) { + lib.bindSymbol(cast(void**)&SDL_GetSystemRAM, "SDL_GetSystemRAM"); + lib.bindSymbol(cast(void**)&SDL_GetBasePath, "SDL_GetBasePath"); + lib.bindSymbol(cast(void**)&SDL_GetPrefPath, "SDL_GetPrefPath"); + lib.bindSymbol(cast(void**)&SDL_UpdateYUVTexture, "SDL_UpdateYUVTexture"); + lib.bindSymbol(cast(void**)&SDL_GL_GetDrawableSize, "SDL_GL_GetDrawableSize"); + + version(Windows) { + lib.bindSymbol(cast(void**)&SDL_Direct3D9GetAdapterIndex, "SDL_Direct3D9GetAdapterIndex") ; + lib.bindSymbol(cast(void**)&SDL_RenderGetD3D9Device, "SDL_RenderGetD3D9Device"); + } + + if(errorCount() != errCount) return SDLSupport.badLibrary; + else loadedVersion = SDLSupport.sdl201; + } + + static if(sdlSupport >= SDLSupport.sdl202) { + lib.bindSymbol(cast(void**)&SDL_GetDefaultAssertionHandler, "SDL_GetDefaultAssertionHandler"); + lib.bindSymbol(cast(void**)&SDL_GetAssertionHandler, "SDL_GetAssertionHandler"); + lib.bindSymbol(cast(void**)&SDL_HasAVX, "SDL_HasAVX"); + lib.bindSymbol(cast(void**)&SDL_GameControllerAddMappingsFromRW, "SDL_GameControllerAddMappingsFromRW"); + lib.bindSymbol(cast(void**)&SDL_GL_ResetAttributes, "SDL_GL_ResetAttributes"); + + version(Windows) { + lib.bindSymbol(cast(void**)&SDL_DXGIGetOutputInfo, "SDL_DXGIGetOutputInfo"); + } + + if(errorCount() != errCount) return SDLSupport.badLibrary; + else loadedVersion = SDLSupport.sdl202; + } + + static if(sdlSupport >= SDLSupport.sdl203) { + loadedVersion = SDLSupport.sdl203; + } + + static if(sdlSupport >= SDLSupport.sdl204) { + lib.bindSymbol(cast(void**)&SDL_ClearQueuedAudio, "SDL_ClearQueuedAudio"); + lib.bindSymbol(cast(void**)&SDL_GetQueuedAudioSize, "SDL_GetQueuedAudioSize"); + lib.bindSymbol(cast(void**)&SDL_QueueAudio, "SDL_QueueAudio"); + lib.bindSymbol(cast(void**)&SDL_HasAVX2, "SDL_HasAVX2"); + lib.bindSymbol(cast(void**)&SDL_GameControllerFromInstanceID, "SDL_GameControllerFromInstanceID"); + lib.bindSymbol(cast(void**)&SDL_JoystickCurrentPowerLevel, "SDL_JoystickCurrentPowerLevel"); + lib.bindSymbol(cast(void**)&SDL_JoystickFromInstanceID, "SDL_JoystickFromInstanceID"); + lib.bindSymbol(cast(void**)&SDL_CaptureMouse, "SDL_CaptureMouse"); + lib.bindSymbol(cast(void**)&SDL_GetGlobalMouseState, "SDL_GetGlobalMouseState"); + lib.bindSymbol(cast(void**)&SDL_WarpMouseGlobal, "SDL_WarpMouseGlobal"); + lib.bindSymbol(cast(void**)&SDL_RenderIsClipEnabled, "SDL_RenderIsClipEnabled"); + lib.bindSymbol(cast(void**)&SDL_GetDisplayDPI, "SDL_GetDisplayDPI"); + lib.bindSymbol(cast(void**)&SDL_GetGrabbedWindow, "SDL_GetGrabbedWindow"); + lib.bindSymbol(cast(void**)&SDL_SetWindowHitTest, "SDL_SetWindowHitTest"); + + version(Windows) { + lib.bindSymbol(cast(void**)&SDL_SetWindowsMessageHook, "SDL_SetWindowsMessageHook"); + } + + if(errorCount() != errCount) return SDLSupport.badLibrary; + else loadedVersion = SDLSupport.sdl204; + } + + static if(sdlSupport >= SDLSupport.sdl205) { + lib.bindSymbol(cast(void**)&SDL_DequeueAudio, "SDL_DequeueAudio"); + lib.bindSymbol(cast(void**)&SDL_GetHintBoolean, "SDL_GetHintBoolean"); + lib.bindSymbol(cast(void**)&SDL_RenderGetIntegerScale, "SDL_RenderGetIntegerScale"); + lib.bindSymbol(cast(void**)&SDL_RenderSetIntegerScale, "SDL_RenderSetIntegerScale"); + lib.bindSymbol(cast(void**)&SDL_CreateRGBSurfaceWithFormat, "SDL_CreateRGBSurfaceWithFormat"); + lib.bindSymbol(cast(void**)&SDL_CreateRGBSurfaceWithFormatFrom, "SDL_CreateRGBSurfaceWithFormatFrom"); + lib.bindSymbol(cast(void**)&SDL_GetDisplayUsableBounds, "SDL_GetDisplayUsableBounds"); + lib.bindSymbol(cast(void**)&SDL_GetWindowBordersSize, "SDL_GetWindowBordersSize"); + lib.bindSymbol(cast(void**)&SDL_GetWindowOpacity, "SDL_GetWindowOpacity"); + lib.bindSymbol(cast(void**)&SDL_SetWindowInputFocus, "SDL_SetWindowInputFocus"); + lib.bindSymbol(cast(void**)&SDL_SetWindowModalFor, "SDL_SetWindowModalFor"); + lib.bindSymbol(cast(void**)&SDL_SetWindowOpacity, "SDL_SetWindowOpacity"); + lib.bindSymbol(cast(void**)&SDL_SetWindowResizable, "SDL_SetWindowResizable"); + + if(errorCount() != errCount) return SDLSupport.badLibrary; + else loadedVersion = SDLSupport.sdl205; + } + + static if(sdlSupport >= SDLSupport.sdl206) { + lib.bindSymbol(cast(void**)&SDL_ComposeCustomBlendMode, "SDL_ComposeCustomBlendMode"); + lib.bindSymbol(cast(void**)&SDL_HasNEON, "SDL_HasNEON"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetVendor, "SDL_GameControllerGetVendor"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetProduct, "SDL_GameControllerGetProduct"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetProductVersion, "SDL_GameControllerGetProductVersion"); + lib.bindSymbol(cast(void**)&SDL_GameControllerMappingForIndex, "SDL_GameControllerMappingForIndex"); + lib.bindSymbol(cast(void**)&SDL_GameControllerNumMappings, "SDL_GameControllerNumMappings"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetAxisInitialState, "SDL_JoystickGetAxisInitialState"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetDeviceVendor, "SDL_JoystickGetDeviceVendor"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetDeviceProduct, "SDL_JoystickGetDeviceProduct"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetDeviceProductVersion, "SDL_JoystickGetDeviceProductVersion"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetDeviceInstanceID, "SDL_JoystickGetDeviceInstanceID"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetDeviceType, "SDL_JoystickGetDeviceType"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetProduct, "SDL_JoystickGetProduct"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetProductVersion, "SDL_JoystickGetProductVersion"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetType, "SDL_JoystickGetType"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetVendor, "SDL_JoystickGetVendor"); + lib.bindSymbol(cast(void**)&SDL_LoadFile_RW, "SDL_LoadFile_RW"); + lib.bindSymbol(cast(void**)&SDL_DuplicateSurface, "SDL_DuplicateSurface"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_CreateSurface, "SDL_Vulkan_CreateSurface"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_GetDrawableSize, "SDL_Vulkan_GetDrawableSize"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_GetInstanceExtensions, "SDL_Vulkan_GetInstanceExtensions"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_GetVkGetInstanceProcAddr, "SDL_Vulkan_GetVkGetInstanceProcAddr"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_LoadLibrary, "SDL_Vulkan_LoadLibrary"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_UnloadLibrary, "SDL_Vulkan_UnloadLibrary"); + + if(errorCount() != errCount) return SDLSupport.badLibrary; + else loadedVersion = SDLSupport.sdl206; + } + + static if(sdlSupport >= SDLSupport.sdl207) { + lib.bindSymbol(cast(void**)&SDL_NewAudioStream, "SDL_NewAudioStream"); + lib.bindSymbol(cast(void**)&SDL_AudioStreamPut, "SDL_AudioStreamPut"); + lib.bindSymbol(cast(void**)&SDL_AudioStreamGet, "SDL_AudioStreamGet"); + lib.bindSymbol(cast(void**)&SDL_AudioStreamAvailable, "SDL_AudioStreamAvailable"); + lib.bindSymbol(cast(void**)&SDL_AudioStreamFlush, "SDL_AudioStreamFlush"); + lib.bindSymbol(cast(void**)&SDL_AudioStreamClear, "SDL_AudioStreamClear"); + lib.bindSymbol(cast(void**)&SDL_FreeAudioStream, "SDL_FreeAudioStream"); + lib.bindSymbol(cast(void**)&SDL_LockJoysticks, "SDL_LockJoysticks"); + lib.bindSymbol(cast(void**)&SDL_UnlockJoysticks, "SDL_UnlockJoysticks"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetDeviceProduct, "SDL_JoystickGetDeviceProduct"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetDeviceProductVersion, "SDL_JoystickGetDeviceProductVersion"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetDeviceInstanceID, "SDL_JoystickGetDeviceInstanceID"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetDeviceType, "SDL_JoystickGetDeviceType"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetProduct, "SDL_JoystickGetProduct"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetProductVersion, "SDL_JoystickGetProductVersion"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetType, "SDL_JoystickGetType"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetVendor, "SDL_JoystickGetVendor"); + lib.bindSymbol(cast(void**)&SDL_LoadFile_RW, "SDL_LoadFile_RW"); + lib.bindSymbol(cast(void**)&SDL_DuplicateSurface, "SDL_DuplicateSurface"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_CreateSurface, "SDL_Vulkan_CreateSurface"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_GetDrawableSize, "SDL_Vulkan_GetDrawableSize"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_GetInstanceExtensions, "SDL_Vulkan_GetInstanceExtensions"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_GetVkGetInstanceProcAddr, "SDL_Vulkan_GetVkGetInstanceProcAddr"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_LoadLibrary, "SDL_Vulkan_LoadLibrary"); + lib.bindSymbol(cast(void**)&SDL_Vulkan_UnloadLibrary, "SDL_Vulkan_UnloadLibrary"); + + if(errorCount() != errCount) return SDLSupport.badLibrary; + else loadedVersion = SDLSupport.sdl207; + } + + static if(sdlSupport >= SDLSupport.sdl208) { + lib.bindSymbol(cast(void**)&SDL_RenderGetMetalLayer, "SDL_RenderGetMetalLayer"); + lib.bindSymbol(cast(void**)&SDL_RenderGetMetalCommandEncoder, "SDL_RenderGetMetalCommandEncoder"); + lib.bindSymbol(cast(void**)&SDL_SetYUVConversionMode, "SDL_SetYUVConversionMode"); + lib.bindSymbol(cast(void**)&SDL_GetYUVConversionMode, "SDL_GetYUVConversionMode"); + lib.bindSymbol(cast(void**)&SDL_GetYUVConversionModeForResolution, "SDL_GetYUVConversionModeForResolution"); + + version(Android) { + lib.bindSymbol(cast(void**)&SDL_IsAndroidTV, "SDL_IsAndroidTV"); + } + + if(errorCount() != errCount) return SDLSupport.badLibrary; + else loadedVersion = SDLSupport.sdl208; + } + + static if(sdlSupport >= SDLSupport.sdl209) { + lib.bindSymbol(cast(void**)&SDL_HasAVX512F, "SDL_HasAVX512F"); + lib.bindSymbol(cast(void**)&SDL_GameControllerMappingForDeviceIndex, "SDL_GameControllerMappingForDeviceIndex"); + lib.bindSymbol(cast(void**)&SDL_GameControllerRumble, "SDL_GameControllerRumble"); + lib.bindSymbol(cast(void**)&SDL_JoystickRumble, "SDL_JoystickRumble"); + lib.bindSymbol(cast(void**)&SDL_HasColorKey, "SDL_HasColorKey"); + lib.bindSymbol(cast(void**)&SDL_GetDisplayOrientation, "SDL_GetDisplayOrientation"); + + version(linux) { + lib.bindSymbol(cast(void**)&SDL_LinuxSetThreadPriority, "SDL_LinuxSetThreadPriority"); + } + else version(Android) { + lib.bindSymbol(cast(void**)&SDL_IsChromebook, "SDL_IsChromebook"); + lib.bindSymbol(cast(void**)&SDL_IsDeXMode, "SDL_IsDeXMode"); + lib.bindSymbol(cast(void**)&SDL_AndroidBackButton, "SDL_AndroidBackButton"); + } + + if(errorCount() != errCount) return SDLSupport.badLibrary; + else loadedVersion = SDLSupport.sdl209; + } + + static if(sdlSupport >= SDLSupport.sdl2010) { + lib.bindSymbol(cast(void**)&SDL_SIMDGetAlignment, "SDL_SIMDGetAlignment"); + lib.bindSymbol(cast(void**)&SDL_SIMDAlloc, "SDL_SIMDAlloc"); + lib.bindSymbol(cast(void**)&SDL_SIMDFree, "SDL_SIMDFree"); + lib.bindSymbol(cast(void**)&SDL_GameControllerGetPlayerIndex, "SDL_GameControllerGetPlayerIndex"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetDevicePlayerIndex, "SDL_JoystickGetDevicePlayerIndex"); + lib.bindSymbol(cast(void**)&SDL_JoystickGetPlayerIndex, "SDL_JoystickGetPlayerIndex"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawPointF, "SDL_RenderDrawPointF"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawPointsF, "SDL_RenderDrawPointsF"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawLineF, "SDL_RenderDrawLineF"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawLinesF, "SDL_RenderDrawLinesF"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawRectF, "SDL_RenderDrawRectF"); + lib.bindSymbol(cast(void**)&SDL_RenderDrawRectsF, "SDL_RenderDrawRectsF"); + lib.bindSymbol(cast(void**)&SDL_RenderFillRectF, "SDL_RenderFillRectF"); + lib.bindSymbol(cast(void**)&SDL_RenderFillRectsF, "SDL_RenderFillRectsF"); + lib.bindSymbol(cast(void**)&SDL_RenderCopyF, "SDL_RenderCopyF"); + lib.bindSymbol(cast(void**)&SDL_RenderCopyExF, "SDL_RenderCopyExF"); + lib.bindSymbol(cast(void**)&SDL_RenderFlush, "SDL_RenderFlush");lib.bindSymbol(cast(void**)&SDL_Vulkan_CreateSurface, "SDL_Vulkan_CreateSurface"); + lib.bindSymbol(cast(void**)&SDL_RWsize, "SDL_RWsize"); + lib.bindSymbol(cast(void**)&SDL_RWseek, "SDL_RWseek"); + lib.bindSymbol(cast(void**)&SDL_RWtell, "SDL_RWtell"); + lib.bindSymbol(cast(void**)&SDL_RWread, "SDL_RWread"); + lib.bindSymbol(cast(void**)&SDL_RWwrite, "SDL_RWwrite"); + lib.bindSymbol(cast(void**)&SDL_RWclose, "SDL_RWclose"); + lib.bindSymbol(cast(void**)&SDL_GetTouchDeviceType, "SDL_GetTouchDeviceType"); + + + if(errorCount() != errCount) return SDLSupport.badLibrary; + else loadedVersion = SDLSupport.sdl2010; + } + + return loadedVersion; +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/image.d b/demos/external/imports/bindbc/sdl/image.d new file mode 100644 index 0000000..8cf160e --- /dev/null +++ b/demos/external/imports/bindbc/sdl/image.d @@ -0,0 +1,353 @@ + +// 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.image; + +version(BindSDL_Image): + +import bindbc.sdl.bind.sdlerror : SDL_GetError, SDL_SetError; +import bindbc.sdl.bind.sdlrender : SDL_Renderer, SDL_Texture; +import bindbc.sdl.bind.sdlrwops : SDL_RWops; +import bindbc.sdl.bind.sdlsurface : SDL_Surface; +import bindbc.sdl.bind.sdlversion : SDL_version, SDL_VERSIONNUM; + +alias IMG_SetError = SDL_SetError; +alias IMG_GetError = SDL_GetError; + +enum SDLImageSupport { + noLibrary, + badLibrary, + sdlImage200 = 200, + sdlImage201, + sdlImage202, +} + +enum ubyte SDL_IMAGE_MAJOR_VERSION = 2; +enum ubyte SDL_IMAGE_MINOR_VERSION = 0; + +version(SDL_Image_202) { + enum sdlImageSupport = SDLImageSupport.sdlImage202; + enum ubyte SDL_IMAGE_PATCHLEVEL = 2; +} +else version(SDL_Image_201) { + enum sdlImageSupport = SDLImageSupport.sdlImage201; + enum ubyte SDL_IMAGE_PATCHLEVEL = 1; +} +else { + enum sdlImageSupport = SDLImageSupport.sdlImage200; + enum ubyte SDL_IMAGE_PATCHLEVEL = 0; +} + +@nogc nothrow void SDL_IMAGE_VERSION(SDL_version* X) +{ + X.major = SDL_IMAGE_MAJOR_VERSION; + X.minor = SDL_IMAGE_MINOR_VERSION; + X.patch = SDL_IMAGE_PATCHLEVEL; +} + +// These were implemented in SDL_image 2.0.2, but are fine for all versions. +enum SDL_IMAGE_COMPILEDVERSION = SDL_VERSIONNUM!(SDL_IMAGE_MAJOR_VERSION, SDL_IMAGE_MINOR_VERSION, SDL_IMAGE_PATCHLEVEL); +enum SDL_IMAGE_VERSION_ATLEAST(ubyte X, ubyte Y, ubyte Z) = SDL_IMAGE_COMPILEDVERSION >= SDL_VERSIONNUM!(X, Y, Z); + +enum { + IMG_INIT_JPG = 0x00000001, + IMG_INIT_PNG = 0x00000002, + IMG_INIT_TIF = 0x00000004, + IMG_INIT_WEBP = 0x00000008, +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + int IMG_Init(int); + int IMG_Quit(); + const(SDL_version)* IMG_Linked_Version(); + SDL_Surface* IMG_LoadTyped_RW(SDL_RWops*,int,const(char)*); + SDL_Surface* IMG_Load(const(char)*); + SDL_Surface* IMG_Load_RW(SDL_RWops*,int); + + SDL_Texture* IMG_LoadTexture(SDL_Renderer*,const(char)*); + SDL_Texture* IMG_LoadTexture_RW(SDL_Renderer*,SDL_RWops*,int); + SDL_Texture* IMG_LoadTextureTyped_RW(SDL_Renderer*,SDL_RWops*,int,const(char)*); + + int IMG_isICO(SDL_RWops*); + int IMG_isCUR(SDL_RWops*); + int IMG_isBMP(SDL_RWops*); + int IMG_isGIF(SDL_RWops*); + int IMG_isJPG(SDL_RWops*); + int IMG_isLBM(SDL_RWops*); + int IMG_isPCX(SDL_RWops*); + int IMG_isPNG(SDL_RWops*); + int IMG_isPNM(SDL_RWops*); + int IMG_isTIF(SDL_RWops*); + int IMG_isXCF(SDL_RWops*); + int IMG_isXPM(SDL_RWops*); + int IMG_isXV(SDL_RWops*); + int IMG_isWEBP(SDL_RWops*); + + SDL_Surface* IMG_LoadICO_RW(SDL_RWops*); + SDL_Surface* IMG_LoadCUR_RW(SDL_RWops*); + SDL_Surface* IMG_LoadBMP_RW(SDL_RWops*); + SDL_Surface* IMG_LoadGIF_RW(SDL_RWops*); + SDL_Surface* IMG_LoadJPG_RW(SDL_RWops*); + SDL_Surface* IMG_LoadLBM_RW(SDL_RWops*); + SDL_Surface* IMG_LoadPCX_RW(SDL_RWops*); + SDL_Surface* IMG_LoadPNG_RW(SDL_RWops*); + SDL_Surface* IMG_LoadPNM_RW(SDL_RWops*); + SDL_Surface* IMG_LoadTGA_RW(SDL_RWops*); + SDL_Surface* IMG_LoadTIF_RW(SDL_RWops*); + SDL_Surface* IMG_LoadXCF_RW(SDL_RWops*); + SDL_Surface* IMG_LoadXPM_RW(SDL_RWops*); + SDL_Surface* IMG_LoadXV_RW(SDL_RWops*); + SDL_Surface* IMG_LoadWEBP_RW(SDL_RWops*); + + SDL_Surface* IMG_ReadXPMFromArray(char**); + + int IMG_SavePNG(SDL_Surface*,const(char)*); + int IMG_SavePNG_RW(SDL_Surface*,SDL_RWops*,int); + + static if(sdlImageSupport >= SDLImageSupport.sdlImage202) { + int IMG_isSVG(SDL_RWops*); + SDL_Surface* IMG_LoadSVG(SDL_RWops*); + int IMG_SaveJPG(SDL_Surface*,const(char)*,int); + int IMG_SaveJPG_RW(SDL_Surface*,SDL_RWops*,int,int); + } + } +} +else { + import bindbc.loader; + + extern(C) @nogc nothrow { + alias pIMG_Init = int function(int); + alias pIMG_Quit = int function(); + alias pIMG_Linked_Version = const(SDL_version)* function(); + alias pIMG_LoadTyped_RW = SDL_Surface* function(SDL_RWops*,int,const(char)*); + alias pIMG_Load = SDL_Surface* function(const(char)*); + alias pIMG_Load_RW = SDL_Surface* function(SDL_RWops*,int); + + alias pIMG_LoadTexture = SDL_Texture* function(SDL_Renderer*,const(char)*); + alias pIMG_LoadTexture_RW = SDL_Texture* function(SDL_Renderer*,SDL_RWops*,int); + alias pIMG_LoadTextureTyped_RW = SDL_Texture* function(SDL_Renderer*,SDL_RWops*,int,const(char)*); + + alias pIMG_isICO = int function(SDL_RWops*); + alias pIMG_isCUR = int function(SDL_RWops*); + alias pIMG_isBMP = int function(SDL_RWops*); + alias pIMG_isGIF = int function(SDL_RWops*); + alias pIMG_isJPG = int function(SDL_RWops*); + alias pIMG_isLBM = int function(SDL_RWops*); + alias pIMG_isPCX = int function(SDL_RWops*); + alias pIMG_isPNG = int function(SDL_RWops*); + alias pIMG_isPNM = int function(SDL_RWops*); + alias pIMG_isTIF = int function(SDL_RWops*); + alias pIMG_isXCF = int function(SDL_RWops*); + alias pIMG_isXPM = int function(SDL_RWops*); + alias pIMG_isXV = int function(SDL_RWops*); + alias pIMG_isWEBP = int function(SDL_RWops*); + + alias pIMG_LoadICO_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadCUR_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadBMP_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadGIF_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadJPG_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadLBM_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadPCX_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadPNG_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadPNM_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadTGA_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadTIF_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadXCF_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadXPM_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadXV_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_LoadWEBP_RW = SDL_Surface* function(SDL_RWops*); + + alias pIMG_ReadXPMFromArray = SDL_Surface* function(char**); + + alias pIMG_SavePNG = int function(SDL_Surface*,const(char)*); + alias pIMG_SavePNG_RW = int function(SDL_Surface*,SDL_RWops*,int); + } + + __gshared { + pIMG_Init IMG_Init; + pIMG_Quit IMG_Quit; + pIMG_Linked_Version IMG_Linked_Version; + pIMG_LoadTyped_RW IMG_LoadTyped_RW; + pIMG_Load IMG_Load; + pIMG_Load_RW IMG_Load_RW; + pIMG_LoadTexture IMG_LoadTexture; + pIMG_LoadTexture_RW IMG_LoadTexture_RW; + pIMG_LoadTextureTyped_RW IMG_LoadTextureTyped_RW; + pIMG_isICO IMG_isICO; + pIMG_isCUR IMG_isCUR; + pIMG_isBMP IMG_isBMP; + pIMG_isGIF IMG_isGIF; + pIMG_isJPG IMG_isJPG; + pIMG_isLBM IMG_isLBM; + pIMG_isPCX IMG_isPCX; + pIMG_isPNG IMG_isPNG; + pIMG_isPNM IMG_isPNM; + pIMG_isTIF IMG_isTIF; + pIMG_isXCF IMG_isXCF; + pIMG_isXPM IMG_isXPM; + pIMG_isXV IMG_isXV; + pIMG_isWEBP IMG_isWEBP; + pIMG_LoadICO_RW IMG_LoadICO_RW; + pIMG_LoadCUR_RW IMG_LoadCUR_RW; + pIMG_LoadBMP_RW IMG_LoadBMP_RW; + pIMG_LoadGIF_RW IMG_LoadGIF_RW; + pIMG_LoadJPG_RW IMG_LoadJPG_RW; + pIMG_LoadLBM_RW IMG_LoadLBM_RW; + pIMG_LoadPCX_RW IMG_LoadPCX_RW; + pIMG_LoadPNG_RW IMG_LoadPNG_RW; + pIMG_LoadPNM_RW IMG_LoadPNM_RW; + pIMG_LoadTGA_RW IMG_LoadTGA_RW; + pIMG_LoadTIF_RW IMG_LoadTIF_RW; + pIMG_LoadXCF_RW IMG_LoadXCF_RW; + pIMG_LoadXPM_RW IMG_LoadXPM_RW; + pIMG_LoadXV_RW IMG_LoadXV_RW; + pIMG_LoadWEBP_RW IMG_LoadWEBP_RW; + pIMG_ReadXPMFromArray IMG_ReadXPMFromArray; + pIMG_SavePNG IMG_SavePNG; + pIMG_SavePNG_RW IMG_SavePNG_RW; + } + + static if(sdlImageSupport >= SDLImageSupport.sdlImage202) { + extern(C) @nogc nothrow { + alias pIMG_isSVG = int function(SDL_RWops*); + alias pIMG_LoadSVG_RW = SDL_Surface* function(SDL_RWops*); + alias pIMG_SaveJPG = int function(SDL_Surface*,const(char)*,int); + alias pIMG_SaveJPG_RW = int function(SDL_Surface*,SDL_RWops*,int,int); + } + + __gshared { + pIMG_isSVG IMG_isSVG; + pIMG_LoadSVG_RW IMG_LoadSVG; + pIMG_SaveJPG IMG_SaveJPG; + pIMG_SaveJPG_RW IMG_SaveJPG_RW; + } + } + + private { + SharedLib lib; + SDLImageSupport loadedVersion; + } + + void unloadSDLImage() + { + if(lib != invalidHandle) { + lib.unload(); + } + } + + SDLImageSupport loadedSDLImageVersion() { return loadedVersion; } + + bool isSDLImageLoaded() + { + return lib != invalidHandle; + } + + + SDLImageSupport loadSDLImage() + { + version(Windows) { + const(char)[][1] libNames = ["SDL2_image.dll"]; + } + else version(OSX) { + const(char)[][6] libNames = [ + "libSDL2_image.dylib", + "/usr/local/lib/libSDL2_image.dylib", + "../Frameworks/SDL2_image.framework/SDL2_image", + "/Library/Frameworks/SDL2_image.framework/SDL2_image", + "/System/Library/Frameworks/SDL2_image.framework/SDL2_image", + "/opt/local/lib/libSDL2_image.dylib" + ]; + } + else version(Posix) { + const(char)[][6] libNames = [ + "libSDL2_image.so", + "/usr/local/lib/libSDL2_image.so", + "libSDL2_image-2.0.so", + "/usr/local/lib/libSDL2_image-2.0.so", + "libSDL2_image-2.0.so.0", + "/usr/local/lib/libSDL2_image-2.0.so.0" + ]; + } + else static assert(0, "bindbc-sdl is not yet supported on this platform."); + + SDLImageSupport ret; + foreach(name; libNames) { + ret = loadSDLImage(name.ptr); + if(ret != SDLImageSupport.noLibrary) break; + } + return ret; + } + + SDLImageSupport loadSDLImage(const(char)* libName) + { + lib = load(libName); + if(lib == invalidHandle) { + return SDLImageSupport.noLibrary; + } + + auto errCount = errorCount(); + loadedVersion = SDLImageSupport.badLibrary; + + lib.bindSymbol(cast(void**)&IMG_Init,"IMG_Init"); + lib.bindSymbol(cast(void**)&IMG_Quit,"IMG_Quit"); + lib.bindSymbol(cast(void**)&IMG_Linked_Version,"IMG_Linked_Version"); + lib.bindSymbol(cast(void**)&IMG_LoadTyped_RW,"IMG_LoadTyped_RW"); + lib.bindSymbol(cast(void**)&IMG_Load,"IMG_Load"); + lib.bindSymbol(cast(void**)&IMG_Load_RW,"IMG_Load_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadTexture,"IMG_LoadTexture"); + lib.bindSymbol(cast(void**)&IMG_LoadTexture_RW,"IMG_LoadTexture_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadTextureTyped_RW,"IMG_LoadTextureTyped_RW"); + lib.bindSymbol(cast(void**)&IMG_isICO,"IMG_isICO"); + lib.bindSymbol(cast(void**)&IMG_isCUR,"IMG_isCUR"); + lib.bindSymbol(cast(void**)&IMG_isBMP,"IMG_isBMP"); + lib.bindSymbol(cast(void**)&IMG_isGIF,"IMG_isGIF"); + lib.bindSymbol(cast(void**)&IMG_isJPG,"IMG_isJPG"); + lib.bindSymbol(cast(void**)&IMG_isLBM,"IMG_isLBM"); + lib.bindSymbol(cast(void**)&IMG_isPCX,"IMG_isPCX"); + lib.bindSymbol(cast(void**)&IMG_isPNG,"IMG_isPNG"); + lib.bindSymbol(cast(void**)&IMG_isPNM,"IMG_isPNM"); + lib.bindSymbol(cast(void**)&IMG_isTIF,"IMG_isTIF"); + lib.bindSymbol(cast(void**)&IMG_isXCF,"IMG_isXCF"); + lib.bindSymbol(cast(void**)&IMG_isXPM,"IMG_isXPM"); + lib.bindSymbol(cast(void**)&IMG_isXV,"IMG_isXV"); + lib.bindSymbol(cast(void**)&IMG_isWEBP,"IMG_isWEBP"); + lib.bindSymbol(cast(void**)&IMG_LoadICO_RW,"IMG_LoadICO_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadCUR_RW,"IMG_LoadCUR_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadBMP_RW,"IMG_LoadBMP_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadGIF_RW,"IMG_LoadGIF_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadJPG_RW,"IMG_LoadJPG_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadLBM_RW,"IMG_LoadLBM_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadPCX_RW,"IMG_LoadPCX_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadPNG_RW,"IMG_LoadPNG_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadPNM_RW,"IMG_LoadPNM_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadTGA_RW,"IMG_LoadTGA_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadTIF_RW,"IMG_LoadTIF_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadXCF_RW,"IMG_LoadXCF_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadXPM_RW,"IMG_LoadXPM_RW"); + lib.bindSymbol(cast(void**)&IMG_LoadXV_RW,"IMG_LoadXV_RW"); + lib.bindSymbol(cast(void**)&IMG_isXV,"IMG_isXV"); + lib.bindSymbol(cast(void**)&IMG_LoadWEBP_RW,"IMG_LoadWEBP_RW"); + lib.bindSymbol(cast(void**)&IMG_SavePNG,"IMG_SavePNG"); + lib.bindSymbol(cast(void**)&IMG_SavePNG_RW,"IMG_SavePNG_RW"); + + if(errorCount() != errCount) return SDLImageSupport.badLibrary; + else loadedVersion = SDLImageSupport.sdlImage200; + + static if(sdlImageSupport >= SDLImageSupport.sdlImage202) { + lib.bindSymbol(cast(void**)&IMG_isSVG,"IMG_isSVG"); + lib.bindSymbol(cast(void**)&IMG_LoadSVG,"IMG_LoadSVG_RW"); + lib.bindSymbol(cast(void**)&IMG_SaveJPG,"IMG_SaveJPG"); + lib.bindSymbol(cast(void**)&IMG_SaveJPG_RW,"IMG_SaveJPG_RW"); + + if(errorCount() != errCount) return SDLImageSupport.badLibrary; + else loadedVersion = SDLImageSupport.sdlImage202; + } + + return loadedVersion; + } +} diff --git a/demos/external/imports/bindbc/sdl/mixer.d b/demos/external/imports/bindbc/sdl/mixer.d new file mode 100644 index 0000000..ed531b5 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/mixer.d @@ -0,0 +1,569 @@ + +// 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.mixer; + +version(BindSDL_Mixer): + +import bindbc.sdl.config; +import bindbc.sdl.bind.sdlaudio : AUDIO_S16LSB, SDL_MIX_MAXVOLUME; +import bindbc.sdl.bind.sdlerror : SDL_GetError, SDL_SetError, SDL_ClearError; +import bindbc.sdl.bind.sdlrwops : SDL_RWops, SDL_RWFromFile; +import bindbc.sdl.bind.sdlstdinc : SDL_bool; +import bindbc.sdl.bind.sdlversion : SDL_version, SDL_VERSIONNUM; + +alias Mix_SetError = SDL_SetError; +alias Mix_GetError = SDL_GetError; +alias Mix_ClearError = SDL_ClearError; + +enum SDLMixerSupport { + noLibrary, + badLibrary, + sdlMixer200 = 200, + sdlMixer201 = 201, + sdlMixer202 = 202, +} + +enum ubyte SDL_MIXER_MAJOR_VERSION = 2; +enum ubyte SDL_MIXER_MINOR_VERSION = 0; + +version(SDL_Mixer_202) { + enum sdlMixerSupport = SDLMixerSupport.sdlMixer202; + enum ubyte SDL_MIXER_PATCHLEVEL = 2; +} +else version(SDL_Mixer_201) { + enum sdlMixerSupport = SDLMixerSupport.sdlMixer201; + enum ubyte SDL_MIXER_PATCHLEVEL = 1; +} +else { + enum sdlMixerSupport = SDLMixerSupport.sdlMixer200; + enum ubyte SDL_MIXER_PATCHLEVEL = 0; +} + +alias MIX_MAJOR_VERSION = SDL_MIXER_MAJOR_VERSION; +alias MIX_MINOR_VERSION = SDL_MIXER_MINOR_VERSION; +alias MIX_PATCH_LEVEL = SDL_MIXER_PATCHLEVEL; + +@nogc nothrow void SDL_MIXER_VERSION(SDL_version* X) +{ + X.major = SDL_MIXER_MAJOR_VERSION; + X.minor = SDL_MIXER_MINOR_VERSION; + X.patch = SDL_MIXER_PATCHLEVEL; +} +alias SDL_MIX_VERSION = SDL_MIX_MAXVOLUME; + +// These were implemented in SDL_mixer 2.0.2, but are fine for all versions. +enum SDL_MIXER_COMPILEDVERSION = SDL_VERSIONNUM!(SDL_MIXER_MAJOR_VERSION, SDL_MIXER_MINOR_VERSION, SDL_MIXER_PATCHLEVEL); +enum SDL_MIXER_VERSION_ATLEAST(ubyte X, ubyte Y, ubyte Z) = SDL_MIXER_COMPILEDVERSION >= SDL_VERSIONNUM!(X, Y, Z); + +static if(sdlMixerSupport >= SDLMixerSupport.sdlMixer202) { + enum Mix_InitFlags { + MIX_INIT_FLAC = 0x00000001, + MIX_INIT_MOD = 0x00000002, + MIX_INIT_MP3 = 0x00000008, + MIX_INIT_OGG = 0x00000010, + MIX_INIT_MID = 0x00000020, + } +} +else { + enum Mix_InitFlags { + MIX_INIT_FLAC = 0x00000001, + MIX_INIT_MOD = 0x00000002, + MIX_INIT_MODPLUG = 0x00000004, + MIX_INIT_MP3 = 0x00000008, + MIX_INIT_OGG = 0x00000010, + MIX_INIT_FLUIDSYNTH = 0x00000020, + } +} +mixin(expandEnum!Mix_InitFlags); + +enum { + MIX_CHANNELS = 8, + MIX_DEFAULT_FREQUENCY = 22050, + MIX_DEFAULT_CHANNELS = 2, + MIX_MAX_VOLUME = 128, + MIX_CHANNEL_POST = -2, +} + +version(LittleEndian) { + enum MIX_DEFAULT_FORMAT = AUDIO_S16LSB; +} else { + enum MIX_DEFAULT_FORMAT = AUDIO_S16MSB; +} + +struct Mix_Chunk { + int allocated; + ubyte* abuf; + uint alen; + ubyte volume; +} + +enum Mix_Fading { + MIX_NO_FADING, + MIX_FADING_OUT, + MIX_FADING_IN +} +mixin(expandEnum!Mix_Fading); + +static if(sdlMixerSupport >= SDLMixerSupport.sdlMixer202) { + enum Mix_MusicType { + MUS_NONE, + MUS_CMD, + MUS_WAV, + MUS_MOD, + MUS_MID, + MUS_OGG, + MUS_MP3, + MUS_MP3_MAD_UNUSED, + MUS_FLAC, + MUS_MODPLUG_UNUSED, + } +} +else { + enum Mix_MusicType { + MUS_NONE, + MUS_CMD, + MUS_WAV, + MUS_MOD, + MUS_MID, + MUS_OGG, + MUS_MP3, + MUS_MP3_MAD, + MUS_FLAC, + MUS_MODPLUG, + } +} +mixin(expandEnum!Mix_MusicType); + +struct Mix_Music; +enum MIX_EFFECTSMAXSPEED = "MIX_EFFECTSMAXSPEED"; + +extern(C) nothrow { + alias Mix_EffectFunc_t = void function(int,void*,int,void*); + alias Mix_EffectDone_t = void function(int,void*); + + // These aren't in SDL_mixer.h and are just here as a convenient and + // visible means to add the proper attributes these callbacks. + alias callbackI = void function(int); + alias callbackVUi8I = void function(void*,ubyte*,int); + alias callbackN = void function(); +} + +@nogc nothrow { + Mix_Chunk* Mix_LoadWAV(const(char)* file) { + pragma(inline, true); + return Mix_LoadWAV_RW(SDL_RWFromFile(file,"rb"),1); + } + + int Mix_PlayChannel(int channel,Mix_Chunk* chunk,int loops) { + pragma(inline, true); + return Mix_PlayChannelTimed(channel,chunk,loops,-1); + } + + int Mix_FadeInChannel(int channel,Mix_Chunk* chunk,int loops,int ms) { + pragma(inline, true); + return Mix_FadeInChannelTimed(channel,chunk,loops,ms,-1); + } +} + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + const(SDL_version)* Mix_Linked_Version(); + int Mix_Init(int); + void Mix_Quit(); + int Mix_OpenAudio(int,ushort,int,int); + int Mix_AllocateChannels(int); + int Mix_QuerySpec(int*,ushort*,int*); + Mix_Chunk* Mix_LoadWAV_RW(SDL_RWops*,int); + Mix_Music* Mix_LoadMUS(const(char)*); + Mix_Music* Mix_LoadMUS_RW(SDL_RWops*,int); + Mix_Music* Mix_LoadMUSType_RW(SDL_RWops*,Mix_MusicType,int); + Mix_Chunk* Mix_QuickLoad_WAV(ubyte*); + Mix_Chunk* Mix_QuickLoad_RAW(ubyte*,uint); + void Mix_FreeChunk(Mix_Chunk*); + void Mix_FreeMusic(Mix_Music*); + int Mix_GetNumChunkDecoders(); + const(char)* Mix_GetChunkDecoder(int); + int Mix_GetNumMusicDecoders(); + const(char)* Mix_GetMusicDecoder(int); + Mix_MusicType Mix_GetMusicType(const(Mix_Music)*); + void Mix_SetPostMix(callbackVUi8I,void*); + void Mix_HookMusic(callbackVUi8I,void*); + void Mix_HookMusicFinished(callbackN); + void* Mix_GetMusicHookData(); + void Mix_ChannelFinished(callbackI); + int Mix_RegisterEffect(int,Mix_EffectFunc_t,Mix_EffectDone_t,void*); + int Mix_UnregisterEffect(int,Mix_EffectFunc_t); + int Mix_UnregisterAllEffects(int); + int Mix_SetPanning(int,ubyte,ubyte); + int Mix_SetPosition(int,short,ubyte); + int Mix_SetDistance(int,ubyte); + int Mix_SetReverseStereo(int,int); + int Mix_ReserveChannels(int); + int Mix_GroupChannel(int,int); + int Mix_GroupChannels(int,int,int); + int Mix_GroupAvailable(int); + int Mix_GroupCount(int); + int Mix_GroupOldest(int); + int Mix_GroupNewer(int); + int Mix_PlayChannelTimed(int,Mix_Chunk*,int,int); + int Mix_PlayMusic(Mix_Music*,int); + int Mix_FadeInMusic(Mix_Music*,int,int); + int Mix_FadeInMusicPos(Mix_Music*,int,int,double); + int Mix_FadeInChannelTimed(int,Mix_Chunk*,int,int,int); + int Mix_Volume(int,int); + int Mix_VolumeChunk(Mix_Chunk*,int); + int Mix_VolumeMusic(int); + int Mix_HaltChannel(int); + int Mix_HaltGroup(int); + int Mix_HaltMusic(); + int Mix_ExpireChannel(int,int); + int Mix_FadeOutChannel(int,int); + int Mix_FadeOutGroup(int,int); + int Mix_FadeOutMusic(int); + Mix_Fading Mix_FadingMusic(); + Mix_Fading Mix_FadingChannel(int); + void Mix_Pause(int); + void Mix_Resume(int); + int Mix_Paused(int); + void Mix_PauseMusic(); + void Mix_ResumeMusic(); + void Mix_RewindMusic(); + int Mix_PausedMusic(); + int Mix_SetMusicPosition(double); + int Mix_Playing(int); + int Mix_PlayingMusic(); + int Mix_SetMusicCMD(in char*); + int Mix_SetSynchroValue(int); + int Mix_GetSynchroValue(); + Mix_Chunk* Mix_GetChunk(int); + void Mix_CloseAudio(); + + static if(sdlMixerSupport >= SDLMixerSupport.sdlMixer202) { + int Mix_OpenAudioDevice(int,ushort,int,int,const(char)*,int); + SDL_bool Mix_HasChunkDecoder(const(char)*); + + // Declared in SDL_mixer.h, but not implemented + // SDL_bool Mix_HasMusicDecoder(const(char)*); + } + } +} +else { + import bindbc.loader; + + extern(C) @nogc nothrow { + alias pMix_Linked_Version = const(SDL_version)* function(); + alias pMix_Init = int function(int); + alias pMix_Quit = void function(); + alias pMix_OpenAudio = int function(int,ushort,int,int); + alias pMix_AllocateChannels = int function(int); + alias pMix_QuerySpec = int function(int*,ushort*,int*); + alias pMix_LoadWAV_RW = Mix_Chunk* function(SDL_RWops*,int); + alias pMix_LoadMUS = Mix_Music* function(const(char)*); + alias pMix_LoadMUS_RW = Mix_Music* function(SDL_RWops*,int); + alias pMix_LoadMUSType_RW = Mix_Music* function(SDL_RWops*,Mix_MusicType,int); + alias pMix_QuickLoad_WAV = Mix_Chunk* function(ubyte*); + alias pMix_QuickLoad_RAW = Mix_Chunk* function(ubyte*,uint); + alias pMix_FreeChunk = void function(Mix_Chunk*); + alias pMix_FreeMusic = void function(Mix_Music*); + alias pMix_GetNumChunkDecoders = int function(); + alias pMix_GetChunkDecoder = const(char)* function(int); + alias pMix_GetNumMusicDecoders = int function(); + alias pMix_GetMusicDecoder = const(char)* function(int); + alias pMix_GetMusicType = Mix_MusicType function(const(Mix_Music)*); + alias pMix_SetPostMix = void function(callbackVUi8I,void*); + alias pMix_HookMusic = void function(callbackVUi8I,void*); + alias pMix_HookMusicFinished = void function(callbackN); + alias pMix_GetMusicHookData = void* function(); + alias pMix_ChannelFinished = void function(callbackI); + alias pMix_RegisterEffect = int function(int,Mix_EffectFunc_t,Mix_EffectDone_t,void*); + alias pMix_UnregisterEffect = int function(int,Mix_EffectFunc_t); + alias pMix_UnregisterAllEffects = int function(int); + alias pMix_SetPanning = int function(int,ubyte,ubyte); + alias pMix_SetPosition = int function(int,short,ubyte); + alias pMix_SetDistance = int function(int,ubyte); + alias pMix_SetReverseStereo = int function(int,int); + alias pMix_ReserveChannels = int function(int); + alias pMix_GroupChannel = int function(int,int); + alias pMix_GroupChannels = int function(int,int,int); + alias pMix_GroupAvailable = int function(int); + alias pMix_GroupCount = int function(int); + alias pMix_GroupOldest = int function(int); + alias pMix_GroupNewer = int function(int); + alias pMix_PlayChannelTimed = int function(int,Mix_Chunk*,int,int); + alias pMix_PlayMusic = int function(Mix_Music*,int); + alias pMix_FadeInMusic = int function(Mix_Music*,int,int); + alias pMix_FadeInMusicPos = int function(Mix_Music*,int,int,double); + alias pMix_FadeInChannelTimed = int function(int,Mix_Chunk*,int,int,int); + alias pMix_Volume = int function(int,int); + alias pMix_VolumeChunk = int function(Mix_Chunk*,int); + alias pMix_VolumeMusic = int function(int); + alias pMix_HaltChannel = int function(int); + alias pMix_HaltGroup = int function(int); + alias pMix_HaltMusic = int function(); + alias pMix_ExpireChannel = int function(int,int); + alias pMix_FadeOutChannel = int function(int,int); + alias pMix_FadeOutGroup = int function(int,int); + alias pMix_FadeOutMusic = int function(int); + alias pMix_FadingMusic = Mix_Fading function(); + alias pMix_FadingChannel = Mix_Fading function(int); + alias pMix_Pause = void function(int); + alias pMix_Resume = void function(int); + alias pMix_Paused = int function(int); + alias pMix_PauseMusic = void function(); + alias pMix_ResumeMusic = void function(); + alias pMix_RewindMusic = void function(); + alias pMix_PausedMusic = int function(); + alias pMix_SetMusicPosition = int function(double); + alias pMix_Playing = int function(int); + alias pMix_PlayingMusic = int function(); + alias pMix_SetMusicCMD = int function(in char*); + alias pMix_SetSynchroValue = int function(int); + alias pMix_GetSynchroValue = int function(); + alias pMix_GetChunk = Mix_Chunk* function(int); + alias pMix_CloseAudio = void function(); + } + + __gshared { + pMix_Linked_Version Mix_Linked_Version; + pMix_Init Mix_Init; + pMix_Quit Mix_Quit; + pMix_OpenAudio Mix_OpenAudio; + pMix_AllocateChannels Mix_AllocateChannels; + pMix_QuerySpec Mix_QuerySpec; + pMix_LoadWAV_RW Mix_LoadWAV_RW; + pMix_LoadMUS Mix_LoadMUS; + pMix_LoadMUS_RW Mix_LoadMUS_RW; + pMix_LoadMUSType_RW Mix_LoadMUSType_RW; + pMix_QuickLoad_WAV Mix_QuickLoad_WAV; + pMix_QuickLoad_RAW Mix_QuickLoad_RAW; + pMix_FreeChunk Mix_FreeChunk; + pMix_FreeMusic Mix_FreeMusic; + pMix_GetNumChunkDecoders Mix_GetNumChunkDecoders; + pMix_GetChunkDecoder Mix_GetChunkDecoder; + pMix_GetNumMusicDecoders Mix_GetNumMusicDecoders; + pMix_GetMusicDecoder Mix_GetMusicDecoder; + pMix_GetMusicType Mix_GetMusicType; + pMix_SetPostMix Mix_SetPostMix; + pMix_HookMusic Mix_HookMusic; + pMix_HookMusicFinished Mix_HookMusicFinished; + pMix_GetMusicHookData Mix_GetMusicHookData; + pMix_ChannelFinished Mix_ChannelFinished; + pMix_RegisterEffect Mix_RegisterEffect; + pMix_UnregisterEffect Mix_UnregisterEffect; + pMix_UnregisterAllEffects Mix_UnregisterAllEffects; + pMix_SetPanning Mix_SetPanning; + pMix_SetPosition Mix_SetPosition; + pMix_SetDistance Mix_SetDistance; + pMix_SetReverseStereo Mix_SetReverseStereo; + pMix_ReserveChannels Mix_ReserveChannels; + pMix_GroupChannel Mix_GroupChannel; + pMix_GroupChannels Mix_GroupChannels; + pMix_GroupAvailable Mix_GroupAvailable; + pMix_GroupCount Mix_GroupCount; + pMix_GroupOldest Mix_GroupOldest; + pMix_GroupNewer Mix_GroupNewer; + pMix_PlayChannelTimed Mix_PlayChannelTimed; + pMix_PlayMusic Mix_PlayMusic; + pMix_FadeInMusic Mix_FadeInMusic; + pMix_FadeInMusicPos Mix_FadeInMusicPos; + pMix_FadeInChannelTimed Mix_FadeInChannelTimed; + pMix_Volume Mix_Volume; + pMix_VolumeChunk Mix_VolumeChunk; + pMix_VolumeMusic Mix_VolumeMusic; + pMix_HaltChannel Mix_HaltChannel; + pMix_HaltGroup Mix_HaltGroup; + pMix_HaltMusic Mix_HaltMusic; + pMix_ExpireChannel Mix_ExpireChannel; + pMix_FadeOutChannel Mix_FadeOutChannel; + pMix_FadeOutGroup Mix_FadeOutGroup; + pMix_FadeOutMusic Mix_FadeOutMusic; + pMix_FadingMusic Mix_FadingMusic; + pMix_FadingChannel Mix_FadingChannel; + pMix_Pause Mix_Pause; + pMix_Resume Mix_Resume; + pMix_Paused Mix_Paused; + pMix_PauseMusic Mix_PauseMusic; + pMix_ResumeMusic Mix_ResumeMusic; + pMix_RewindMusic Mix_RewindMusic; + pMix_PausedMusic Mix_PausedMusic; + pMix_SetMusicPosition Mix_SetMusicPosition; + pMix_Playing Mix_Playing; + pMix_PlayingMusic Mix_PlayingMusic; + pMix_SetMusicCMD Mix_SetMusicCMD; + pMix_SetSynchroValue Mix_SetSynchroValue; + pMix_GetSynchroValue Mix_GetSynchroValue; + pMix_GetChunk Mix_GetChunk; + pMix_CloseAudio Mix_CloseAudio; + } + + + static if(sdlMixerSupport >= SDLMixerSupport.sdlMixer202) { + extern(C) @nogc nothrow { + alias pMix_OpenAudioDevice = int function(int,ushort,int,int,const(char)*,int); + alias pMix_HasChunkDecoder = SDL_bool function(const(char)*); + + // Declared in SDL_mixer.h, but not implemented + //alias pMix_HasMusicDecoder = SDL_bool function(const(char)*); + } + + __gshared { + pMix_OpenAudioDevice Mix_OpenAudioDevice; + pMix_HasChunkDecoder Mix_HasChunkDecoder; + //pMix_HasMusicDecoder Mix_HasMusicDecoder; + } + } + + private { + SharedLib lib; + SDLMixerSupport loadedVersion; + } + + void unloadSDLMixer() + { + if(lib != invalidHandle) { + lib.unload(); + } + } + + SDLMixerSupport loadedSDLMixerVersion() { return loadedVersion; } + + bool isSDLMixerLoaded() + { + return lib != invalidHandle; + } + + + SDLMixerSupport loadSDLMixer() + { + version(Windows) { + const(char)[][1] libNames = ["SDL2_mixer.dll"]; + } + else version(OSX) { + const(char)[][6] libNames = [ + "libSDL2_mixer.dylib", + "/usr/local/lib/libSDL2_mixer.dylib", + "../Frameworks/SDL2_mixer.framework/SDL2_mixer", + "/Library/Frameworks/SDL2_mixer.framework/SDL2_mixer", + "/System/Library/Frameworks/SDL2_mixer.framework/SDL2_mixer", + "/opt/local/lib/libSDL2_mixer.dylib" + ]; + } + else version(Posix) { + const(char)[][6] libNames = [ + "libSDL2_mixer.so", + "/usr/local/lib/libSDL2_mixer.so", + "libSDL2-2.0_mixer.so", + "/usr/local/lib/libSDL2-2.0_mixer.so", + "libSDL2-2.0_mixer.so.0", + "/usr/local/lib/libSDL2-2.0_mixer.so.0" + ]; + } + else static assert(0, "bindbc-sdl is not yet supported on this platform."); + + SDLMixerSupport ret; + foreach(name; libNames) { + ret = loadSDLMixer(name.ptr); + if(ret != SDLMixerSupport.noLibrary) break; + } + return ret; + } + + SDLMixerSupport loadSDLMixer(const(char)* libName) + { + lib = load(libName); + if(lib == invalidHandle) { + return SDLMixerSupport.noLibrary; + } + + auto errCount = errorCount(); + loadedVersion = SDLMixerSupport.badLibrary; + + lib.bindSymbol(cast(void**)&Mix_Linked_Version,"Mix_Linked_Version"); + lib.bindSymbol(cast(void**)&Mix_Init,"Mix_Init"); + lib.bindSymbol(cast(void**)&Mix_Quit,"Mix_Quit"); + lib.bindSymbol(cast(void**)&Mix_OpenAudio,"Mix_OpenAudio"); + lib.bindSymbol(cast(void**)&Mix_AllocateChannels,"Mix_AllocateChannels"); + lib.bindSymbol(cast(void**)&Mix_QuerySpec,"Mix_QuerySpec"); + lib.bindSymbol(cast(void**)&Mix_LoadWAV_RW,"Mix_LoadWAV_RW"); + lib.bindSymbol(cast(void**)&Mix_LoadMUS,"Mix_LoadMUS"); + lib.bindSymbol(cast(void**)&Mix_LoadMUS_RW,"Mix_LoadMUS_RW"); + lib.bindSymbol(cast(void**)&Mix_LoadMUSType_RW,"Mix_LoadMUSType_RW"); + lib.bindSymbol(cast(void**)&Mix_QuickLoad_WAV,"Mix_QuickLoad_WAV"); + lib.bindSymbol(cast(void**)&Mix_QuickLoad_RAW,"Mix_QuickLoad_RAW"); + lib.bindSymbol(cast(void**)&Mix_FreeChunk,"Mix_FreeChunk"); + lib.bindSymbol(cast(void**)&Mix_FreeMusic,"Mix_FreeMusic"); + lib.bindSymbol(cast(void**)&Mix_GetNumChunkDecoders,"Mix_GetNumChunkDecoders"); + lib.bindSymbol(cast(void**)&Mix_GetChunkDecoder,"Mix_GetChunkDecoder"); + lib.bindSymbol(cast(void**)&Mix_GetNumMusicDecoders,"Mix_GetNumMusicDecoders"); + lib.bindSymbol(cast(void**)&Mix_GetMusicDecoder,"Mix_GetMusicDecoder"); + lib.bindSymbol(cast(void**)&Mix_GetMusicType,"Mix_GetMusicType"); + lib.bindSymbol(cast(void**)&Mix_SetPostMix,"Mix_SetPostMix"); + lib.bindSymbol(cast(void**)&Mix_HookMusic,"Mix_HookMusic"); + lib.bindSymbol(cast(void**)&Mix_HookMusicFinished,"Mix_HookMusicFinished"); + lib.bindSymbol(cast(void**)&Mix_GetMusicHookData,"Mix_GetMusicHookData"); + lib.bindSymbol(cast(void**)&Mix_ChannelFinished,"Mix_ChannelFinished"); + lib.bindSymbol(cast(void**)&Mix_RegisterEffect,"Mix_RegisterEffect"); + lib.bindSymbol(cast(void**)&Mix_UnregisterEffect,"Mix_UnregisterEffect"); + lib.bindSymbol(cast(void**)&Mix_UnregisterAllEffects,"Mix_UnregisterAllEffects"); + lib.bindSymbol(cast(void**)&Mix_SetPanning,"Mix_SetPanning"); + lib.bindSymbol(cast(void**)&Mix_SetPosition,"Mix_SetPosition"); + lib.bindSymbol(cast(void**)&Mix_SetDistance,"Mix_SetDistance"); + lib.bindSymbol(cast(void**)&Mix_SetReverseStereo,"Mix_SetReverseStereo"); + lib.bindSymbol(cast(void**)&Mix_ReserveChannels,"Mix_ReserveChannels"); + lib.bindSymbol(cast(void**)&Mix_GroupChannel,"Mix_GroupChannel"); + lib.bindSymbol(cast(void**)&Mix_GroupChannels,"Mix_GroupChannels"); + lib.bindSymbol(cast(void**)&Mix_GroupAvailable,"Mix_GroupAvailable"); + lib.bindSymbol(cast(void**)&Mix_GroupCount,"Mix_GroupCount"); + lib.bindSymbol(cast(void**)&Mix_GroupOldest,"Mix_GroupOldest"); + lib.bindSymbol(cast(void**)&Mix_GroupNewer,"Mix_GroupNewer"); + lib.bindSymbol(cast(void**)&Mix_PlayChannelTimed,"Mix_PlayChannelTimed"); + lib.bindSymbol(cast(void**)&Mix_PlayMusic,"Mix_PlayMusic"); + lib.bindSymbol(cast(void**)&Mix_FadeInMusic,"Mix_FadeInMusic"); + lib.bindSymbol(cast(void**)&Mix_FadeInMusicPos,"Mix_FadeInMusicPos"); + lib.bindSymbol(cast(void**)&Mix_FadeInChannelTimed,"Mix_FadeInChannelTimed"); + lib.bindSymbol(cast(void**)&Mix_Volume,"Mix_Volume"); + lib.bindSymbol(cast(void**)&Mix_VolumeChunk,"Mix_VolumeChunk"); + lib.bindSymbol(cast(void**)&Mix_VolumeMusic,"Mix_VolumeMusic"); + lib.bindSymbol(cast(void**)&Mix_HaltChannel,"Mix_HaltChannel"); + lib.bindSymbol(cast(void**)&Mix_HaltGroup,"Mix_HaltGroup"); + lib.bindSymbol(cast(void**)&Mix_HaltMusic,"Mix_HaltMusic"); + lib.bindSymbol(cast(void**)&Mix_ExpireChannel,"Mix_ExpireChannel"); + lib.bindSymbol(cast(void**)&Mix_FadeOutChannel,"Mix_FadeOutChannel"); + lib.bindSymbol(cast(void**)&Mix_FadeOutGroup,"Mix_FadeOutGroup"); + lib.bindSymbol(cast(void**)&Mix_FadeOutMusic,"Mix_FadeOutMusic"); + lib.bindSymbol(cast(void**)&Mix_FadingMusic,"Mix_FadingMusic"); + lib.bindSymbol(cast(void**)&Mix_FadingChannel,"Mix_FadingChannel"); + lib.bindSymbol(cast(void**)&Mix_Pause,"Mix_Pause"); + lib.bindSymbol(cast(void**)&Mix_Resume,"Mix_Resume"); + lib.bindSymbol(cast(void**)&Mix_Paused,"Mix_Paused"); + lib.bindSymbol(cast(void**)&Mix_PauseMusic,"Mix_PauseMusic"); + lib.bindSymbol(cast(void**)&Mix_ResumeMusic,"Mix_ResumeMusic"); + lib.bindSymbol(cast(void**)&Mix_RewindMusic,"Mix_RewindMusic"); + lib.bindSymbol(cast(void**)&Mix_PausedMusic,"Mix_PausedMusic"); + lib.bindSymbol(cast(void**)&Mix_SetMusicPosition,"Mix_SetMusicPosition"); + lib.bindSymbol(cast(void**)&Mix_Playing,"Mix_Playing"); + lib.bindSymbol(cast(void**)&Mix_PlayingMusic,"Mix_PlayingMusic"); + lib.bindSymbol(cast(void**)&Mix_SetMusicCMD,"Mix_SetMusicCMD"); + lib.bindSymbol(cast(void**)&Mix_SetSynchroValue,"Mix_SetSynchroValue"); + lib.bindSymbol(cast(void**)&Mix_GetSynchroValue,"Mix_GetSynchroValue"); + lib.bindSymbol(cast(void**)&Mix_GetChunk,"Mix_GetChunk"); + lib.bindSymbol(cast(void**)&Mix_CloseAudio,"Mix_CloseAudio"); + + if(errorCount() != errCount) return SDLMixerSupport.badLibrary; + else loadedVersion = SDLMixerSupport.sdlMixer200; + + static if(sdlMixerSupport >= SDLMixerSupport.sdlMixer202) { + lib.bindSymbol(cast(void**)&Mix_OpenAudioDevice,"Mix_OpenAudioDevice"); + lib.bindSymbol(cast(void**)&Mix_HasChunkDecoder,"Mix_HasChunkDecoder"); + + if(errorCount() != errCount) return SDLMixerSupport.badLibrary; + else loadedVersion = SDLMixerSupport.sdlMixer202; + } + + return loadedVersion; + } +} \ No newline at end of file diff --git a/demos/external/imports/bindbc/sdl/package.d b/demos/external/imports/bindbc/sdl/package.d new file mode 100644 index 0000000..6bba9ad --- /dev/null +++ b/demos/external/imports/bindbc/sdl/package.d @@ -0,0 +1,18 @@ + +// 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; + +public import bindbc.sdl.config, + bindbc.sdl.bind; + +version(BindSDL_Static) {} +else public import bindbc.sdl.dynload; + +version(BindSDL_Image) public import bindbc.sdl.image; +version(BindSDL_Mixer) public import bindbc.sdl.mixer; +version(BindSDL_TTF) public import bindbc.sdl.ttf; + diff --git a/demos/external/imports/bindbc/sdl/ttf.d b/demos/external/imports/bindbc/sdl/ttf.d new file mode 100644 index 0000000..bd63ff3 --- /dev/null +++ b/demos/external/imports/bindbc/sdl/ttf.d @@ -0,0 +1,368 @@ + +// 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.ttf; + +version(BindSDL_TTF): + +import core.stdc.config; +import bindbc.sdl.bind.sdlerror : SDL_GetError, SDL_SetError; +import bindbc.sdl.bind.sdlpixels : SDL_Color; +import bindbc.sdl.bind.sdlrwops : SDL_RWops; +import bindbc.sdl.bind.sdlsurface : SDL_Surface; +import bindbc.sdl.bind.sdlversion : SDL_version; + +alias TTF_SetError = SDL_SetError; +alias TTF_GetError = SDL_GetError; + +enum SDLTTFSupport { + noLibrary, + badLibrary, + sdlTTF2012 = 2012, + sdlTTF2013 = 2013, + sdlTTF2014 = 2014, +} + +enum ubyte SDL_TTF_MAJOR_VERSION = 2; +enum ubyte SDL_TTF_MINOR_VERSION = 0; + +version(SDL_TTF_2014) { + enum sdlTTFSupport = SDLTTFSupport.sdlTTF2014; + enum ubyte SDL_TTF_PATCHLEVEL = 14; +} +else version(SDL_TTF_2013) { + enum sdlTTFSupport = SDLTTFSupport.sdlTTF2013; + enum ubyte SDL_TTF_PATCHLEVEL = 13; +} +else { + enum sdlTTFSupport = SDLTTFSupport.sdlTTF2012; + enum ubyte SDL_TTF_PATCHLEVEL = 12; +} + +alias TTF_MAJOR_VERSION = SDL_TTF_MAJOR_VERSION; +alias TTF_MINOR_VERSION = SDL_TTF_MINOR_VERSION; +alias TTF_PATCHLEVEL = SDL_TTF_PATCHLEVEL; + +@nogc nothrow +void SDL_TTF_VERSION(SDL_version* X) { + X.major = SDL_TTF_MAJOR_VERSION; + X.minor = SDL_TTF_MINOR_VERSION; + X.patch = SDL_TTF_PATCHLEVEL; +} +alias TTF_VERSION = SDL_TTF_VERSION; + +enum { + UNICODE_BOM_NATIVE = 0xFEFF, + UNICODE_BOM_SWAPPED = 0xFFFE, + TTF_STYLE_NORMAL = 0x00, + TTF_STYLE_BOLD = 0x01, + TTF_STYLE_ITALIC = 0x02, + TTF_STYLE_UNDERLINE = 0x04, + TTF_STYLE_STRIKETHROUGH = 0x08, +} + +enum { + TTF_HINTING_NORMAL = 0, + TTF_HINTING_LIGHT = 1, + TTF_HINTING_MONO = 2, + TTF_HINTING_NONE = 3, +} + +struct TTF_Font; + +version(BindSDL_Static) { + extern(C) @nogc nothrow { + SDL_version* TTF_Linked_Version(); + void TTF_ByteSwappedUNICODE(int); + int TTF_Init(); + TTF_Font * TTF_OpenFont(const(char)*,int); + TTF_Font * TTF_OpenFontIndex(const(char)*,int,c_long ); + TTF_Font * TTF_OpenFontRW(SDL_RWops*,int,int); + TTF_Font * TTF_OpenFontIndexRW(SDL_RWops*,int,int,c_long); + int TTF_GetFontStyle(const(TTF_Font)*); + void TTF_SetFontStyle(const(TTF_Font)*,int style); + int TTF_GetFontOutline(const(TTF_Font)*); + void TTF_SetFontOutline(TTF_Font*,int); + int TTF_GetFontHinting(const(TTF_Font)*); + void TTF_SetFontHinting(TTF_Font*,int); + int TTF_FontHeight(const(TTF_Font)*); + int TTF_FontAscent(const(TTF_Font)*); + int TTF_FontDescent(const(TTF_Font)*); + int TTF_FontLineSkip(const(TTF_Font)*); + int TTF_GetFontKerning(const(TTF_Font)*); + void TTF_SetFontKerning(TTF_Font*,int); + int TTF_FontFaces(const(TTF_Font)*); + int TTF_FontFaceIsFixedWidth(const(TTF_Font)*); + char* TTF_FontFaceFamilyName(const(TTF_Font)*); + char* TTF_FontFaceStyleName(const(TTF_Font)*); + int TTF_GlyphIsProvided(const(TTF_Font)*,ushort); + int TTF_GlyphMetrics(TTF_Font*,ushort,int*,int*,int*,int*,int*); + int TTF_SizeText(TTF_Font*,const(char)*,int*,int*); + int TTF_SizeUTF8(TTF_Font*,const(char)*,int*,int*); + int TTF_SizeUNICODE(TTF_Font*,ushort*,int*,int*); + SDL_Surface* TTF_RenderText_Solid(TTF_Font*,const(char)*,SDL_Color); + SDL_Surface* TTF_RenderUTF8_Solid(TTF_Font*,const(char)*,SDL_Color); + SDL_Surface* TTF_RenderUNICODE_Solid(TTF_Font*,const(ushort)*,SDL_Color); + SDL_Surface* TTF_RenderGlyph_Solid(TTF_Font*,ushort,SDL_Color); + SDL_Surface* TTF_RenderText_Shaded(TTF_Font*,const(char)*,SDL_Color,SDL_Color); + SDL_Surface* TTF_RenderUTF8_Shaded(TTF_Font*,const(char)*,SDL_Color,SDL_Color); + SDL_Surface* TTF_RenderUNICODE_Shaded(TTF_Font*,const(ushort)*,SDL_Color,SDL_Color); + SDL_Surface* TTF_RenderGlyph_Shaded(TTF_Font*,ushort,SDL_Color,SDL_Color); + SDL_Surface* TTF_RenderText_Blended(TTF_Font*,const(char)*,SDL_Color); + SDL_Surface* TTF_RenderUTF8_Blended(TTF_Font*,const(char)*,SDL_Color); + SDL_Surface* TTF_RenderUNICODE_Blended(TTF_Font*,const(ushort)*,SDL_Color); + SDL_Surface* TTF_RenderText_Blended_Wrapped(TTF_Font*,const(char)*,SDL_Color,uint); + SDL_Surface* TTF_RenderUTF8_Blended_Wrapped(TTF_Font*,const(char)*,SDL_Color,uint); + SDL_Surface* TTF_RenderUNICODE_Blended_Wrapped(TTF_Font*,const(ushort)*,SDL_Color,uint); + SDL_Surface* TTF_RenderGlyph_Blended(TTF_Font*,ushort,SDL_Color); + void TTF_CloseFont(TTF_Font*); + void TTF_Quit(); + int TTF_WasInit(); + int TTF_GetFontKerningSize(TTF_Font*,int,int); + + static if(sdlTTFSupport >= SDLTTFSupport.sdlTTF2014) { + int TTF_GetFontKerningSizeGlyphs(TTF_Font*,ushort,ushort); + } + } +} +else { + import bindbc.loader; + + extern(C) @nogc nothrow { + alias pTTF_Linked_Version = SDL_version* function(); + alias pTTF_ByteSwappedUNICODE = void function(int); + alias pTTF_Init = int function(); + alias pTTF_OpenFont = TTF_Font * function(const(char)*,int); + alias pTTF_OpenFontIndex = TTF_Font * function(const(char)*,int,c_long ); + alias pTTF_OpenFontRW = TTF_Font * function(SDL_RWops*,int,int); + alias pTTF_OpenFontIndexRW = TTF_Font * function(SDL_RWops*,int,int,c_long); + alias pTTF_GetFontStyle = int function(const(TTF_Font)*); + alias pTTF_SetFontStyle = void function(const(TTF_Font)*,int style); + alias pTTF_GetFontOutline = int function(const(TTF_Font)*); + alias pTTF_SetFontOutline = void function(TTF_Font*,int); + alias pTTF_GetFontHinting = int function(const(TTF_Font)*); + alias pTTF_SetFontHinting = void function(TTF_Font*,int); + alias pTTF_FontHeight = int function(const(TTF_Font)*); + alias pTTF_FontAscent = int function(const(TTF_Font)*); + alias pTTF_FontDescent = int function(const(TTF_Font)*); + alias pTTF_FontLineSkip = int function(const(TTF_Font)*); + alias pTTF_GetFontKerning = int function(const(TTF_Font)*); + alias pTTF_SetFontKerning = void function(TTF_Font*,int); + alias pTTF_FontFaces = int function(const(TTF_Font)*); + alias pTTF_FontFaceIsFixedWidth = int function(const(TTF_Font)*); + alias pTTF_FontFaceFamilyName = char* function(const(TTF_Font)*); + alias pTTF_FontFaceStyleName = char* function(const(TTF_Font)*); + alias pTTF_GlyphIsProvided = int function(const(TTF_Font)*,ushort); + alias pTTF_GlyphMetrics = int function(TTF_Font*,ushort,int*,int*,int*,int*,int*); + alias pTTF_SizeText = int function(TTF_Font*,const(char)*,int*,int*); + alias pTTF_SizeUTF8 = int function(TTF_Font*,const(char)*,int*,int*); + alias pTTF_SizeUNICODE = int function(TTF_Font*,ushort*,int*,int*); + alias pTTF_RenderText_Solid = SDL_Surface* function(TTF_Font*,const(char)*,SDL_Color); + alias pTTF_RenderUTF8_Solid = SDL_Surface* function(TTF_Font*,const(char)*,SDL_Color); + alias pTTF_RenderUNICODE_Solid = SDL_Surface* function(TTF_Font*,const(ushort)*,SDL_Color); + alias pTTF_RenderGlyph_Solid = SDL_Surface* function(TTF_Font*,ushort,SDL_Color); + alias pTTF_RenderText_Shaded = SDL_Surface* function(TTF_Font*,const(char)*,SDL_Color,SDL_Color); + alias pTTF_RenderUTF8_Shaded = SDL_Surface* function(TTF_Font*,const(char)*,SDL_Color,SDL_Color); + alias pTTF_RenderUNICODE_Shaded = SDL_Surface* function(TTF_Font*,const(ushort)*,SDL_Color,SDL_Color); + alias pTTF_RenderGlyph_Shaded = SDL_Surface* function(TTF_Font*,ushort,SDL_Color,SDL_Color); + alias pTTF_RenderText_Blended = SDL_Surface* function(TTF_Font*,const(char)*,SDL_Color); + alias pTTF_RenderUTF8_Blended = SDL_Surface* function(TTF_Font*,const(char)*,SDL_Color); + alias pTTF_RenderUNICODE_Blended = SDL_Surface* function(TTF_Font*,const(ushort)*,SDL_Color); + alias pTTF_RenderText_Blended_Wrapped = SDL_Surface* function(TTF_Font*,const(char)*,SDL_Color,uint); + alias pTTF_RenderUTF8_Blended_Wrapped = SDL_Surface* function(TTF_Font*,const(char)*,SDL_Color,uint); + alias pTTF_RenderUNICODE_Blended_Wrapped = SDL_Surface* function(TTF_Font*,const(ushort)*,SDL_Color,uint); + alias pTTF_RenderGlyph_Blended = SDL_Surface* function(TTF_Font*,ushort,SDL_Color); + alias pTTF_CloseFont = void function(TTF_Font*); + alias pTTF_Quit = void function(); + alias pTTF_WasInit = int function(); + alias pTTF_GetFontKerningSize = int function(TTF_Font*,int,int); + } + + __gshared { + pTTF_Linked_Version TTF_Linked_Version; + pTTF_ByteSwappedUNICODE TTF_ByteSwappedUNICODE; + pTTF_Init TTF_Init; + pTTF_OpenFont TTF_OpenFont; + pTTF_OpenFontIndex TTF_OpenFontIndex; + pTTF_OpenFontRW TTF_OpenFontRW; + pTTF_OpenFontIndexRW TTF_OpenFontIndexRW; + pTTF_GetFontStyle TTF_GetFontStyle; + pTTF_SetFontStyle TTF_SetFontStyle; + pTTF_GetFontOutline TTF_GetFontOutline; + pTTF_SetFontOutline TTF_SetFontOutline; + pTTF_GetFontHinting TTF_GetFontHinting; + pTTF_SetFontHinting TTF_SetFontHinting; + pTTF_FontHeight TTF_FontHeight; + pTTF_FontAscent TTF_FontAscent; + pTTF_FontDescent TTF_FontDescent; + pTTF_FontLineSkip TTF_FontLineSkip; + pTTF_GetFontKerning TTF_GetFontKerning; + pTTF_SetFontKerning TTF_SetFontKerning; + pTTF_FontFaces TTF_FontFaces; + pTTF_FontFaceIsFixedWidth TTF_FontFaceIsFixedWidth; + pTTF_FontFaceFamilyName TTF_FontFaceFamilyName; + pTTF_FontFaceStyleName TTF_FontFaceStyleName; + pTTF_GlyphIsProvided TTF_GlyphIsProvided; + pTTF_GlyphMetrics TTF_GlyphMetrics; + pTTF_SizeText TTF_SizeText; + pTTF_SizeUTF8 TTF_SizeUTF8; + pTTF_SizeUNICODE TTF_SizeUNICODE; + pTTF_RenderText_Solid TTF_RenderText_Solid; + pTTF_RenderUTF8_Solid TTF_RenderUTF8_Solid; + pTTF_RenderUNICODE_Solid TTF_RenderUNICODE_Solid; + pTTF_RenderGlyph_Solid TTF_RenderGlyph_Solid; + pTTF_RenderText_Shaded TTF_RenderText_Shaded; + pTTF_RenderUTF8_Shaded TTF_RenderUTF8_Shaded; + pTTF_RenderUNICODE_Shaded TTF_RenderUNICODE_Shaded; + pTTF_RenderGlyph_Shaded TTF_RenderGlyph_Shaded; + pTTF_RenderText_Blended TTF_RenderText_Blended; + pTTF_RenderUTF8_Blended TTF_RenderUTF8_Blended; + pTTF_RenderUNICODE_Blended TTF_RenderUNICODE_Blended; + pTTF_RenderText_Blended_Wrapped TTF_RenderText_Blended_Wrapped; + pTTF_RenderUTF8_Blended_Wrapped TTF_RenderUTF8_Blended_Wrapped; + pTTF_RenderUNICODE_Blended_Wrapped TTF_RenderUNICODE_Blended_Wrapped; + pTTF_RenderGlyph_Blended TTF_RenderGlyph_Blended; + pTTF_CloseFont TTF_CloseFont; + pTTF_Quit TTF_Quit; + pTTF_WasInit TTF_WasInit; + pTTF_GetFontKerningSize TTF_GetFontKerningSize; + } + + static if(sdlTTFSupport >= SDLTTFSupport.sdlTTF2014) { + extern(C) @nogc nothrow { + alias pTTF_GetFontKerningSizeGlyphs = int function(TTF_Font*,ushort,ushort); + } + + __gshared { + pTTF_GetFontKerningSizeGlyphs TTF_GetFontKerningSizeGlyphs; + } + } + + private { + SharedLib lib; + SDLTTFSupport loadedVersion; + } + + void unloadSDLTTF() + { + if(lib != invalidHandle) { + lib.unload(); + } + } + + SDLTTFSupport loadedSDLTTFVersion() { return loadedVersion; } + + bool isSDLTTFLoaded() + { + return lib != invalidHandle; + } + + SDLTTFSupport loadSDLTTF() + { + version(Windows) { + const(char)[][1] libNames = ["SDL2_ttf.dll"]; + } + else version(OSX) { + const(char)[][6] libNames = [ + "libSDL2_ttf.dylib", + "/usr/local/lib/libSDL2_ttf.dylib", + "../Frameworks/SDL2_ttf.framework/SDL2_ttf", + "/Library/Frameworks/SDL2_ttf.framework/SDL2_ttf", + "/System/Library/Frameworks/SDL2_ttf.framework/SDL2_ttf", + "/opt/local/lib/libSDL2_ttf.dylib" + ]; + } + else version(Posix) { + const(char)[][6] libNames = [ + "libSDL2_ttf.so", + "/usr/local/lib/libSDL2_ttf.so", + "libSDL2-2.0_ttf.so", + "/usr/local/lib/libSDL2-2.0_ttf.so", + "libSDL2-2.0_ttf.so.0", + "/usr/local/lib/libSDL2-2.0_ttf.so.0" + ]; + } + else static assert(0, "bindbc-sdl is not yet supported on this platform."); + + SDLTTFSupport ret; + foreach(name; libNames) { + ret = loadSDLTTF(name.ptr); + if(ret != SDLTTFSupport.noLibrary) break; + } + return ret; + } + + SDLTTFSupport loadSDLTTF(const(char)* libName) + { + lib = load(libName); + if(lib == invalidHandle) { + return SDLTTFSupport.noLibrary; + } + + auto errCount = errorCount(); + loadedVersion = SDLTTFSupport.badLibrary; + + lib.bindSymbol(cast(void**)&TTF_Linked_Version,"TTF_Linked_Version"); + lib.bindSymbol(cast(void**)&TTF_ByteSwappedUNICODE,"TTF_ByteSwappedUNICODE"); + lib.bindSymbol(cast(void**)&TTF_Init,"TTF_Init"); + lib.bindSymbol(cast(void**)&TTF_OpenFont,"TTF_OpenFont"); + lib.bindSymbol(cast(void**)&TTF_OpenFontIndex,"TTF_OpenFontIndex"); + lib.bindSymbol(cast(void**)&TTF_OpenFontRW,"TTF_OpenFontRW"); + lib.bindSymbol(cast(void**)&TTF_OpenFontIndexRW,"TTF_OpenFontIndexRW"); + lib.bindSymbol(cast(void**)&TTF_GetFontStyle,"TTF_GetFontStyle"); + lib.bindSymbol(cast(void**)&TTF_SetFontStyle,"TTF_SetFontStyle"); + lib.bindSymbol(cast(void**)&TTF_GetFontOutline,"TTF_GetFontOutline"); + lib.bindSymbol(cast(void**)&TTF_SetFontOutline,"TTF_SetFontOutline"); + lib.bindSymbol(cast(void**)&TTF_GetFontHinting,"TTF_GetFontHinting"); + lib.bindSymbol(cast(void**)&TTF_SetFontHinting,"TTF_SetFontHinting"); + lib.bindSymbol(cast(void**)&TTF_FontHeight,"TTF_FontHeight"); + lib.bindSymbol(cast(void**)&TTF_FontAscent,"TTF_FontAscent"); + lib.bindSymbol(cast(void**)&TTF_FontDescent,"TTF_FontDescent"); + lib.bindSymbol(cast(void**)&TTF_FontLineSkip,"TTF_FontLineSkip"); + lib.bindSymbol(cast(void**)&TTF_GetFontKerning,"TTF_GetFontKerning"); + lib.bindSymbol(cast(void**)&TTF_SetFontKerning,"TTF_SetFontKerning"); + lib.bindSymbol(cast(void**)&TTF_FontFaces,"TTF_FontFaces"); + lib.bindSymbol(cast(void**)&TTF_FontFaceIsFixedWidth,"TTF_FontFaceIsFixedWidth"); + lib.bindSymbol(cast(void**)&TTF_FontFaceFamilyName,"TTF_FontFaceFamilyName"); + lib.bindSymbol(cast(void**)&TTF_FontFaceStyleName,"TTF_FontFaceStyleName"); + lib.bindSymbol(cast(void**)&TTF_GlyphIsProvided,"TTF_GlyphIsProvided"); + lib.bindSymbol(cast(void**)&TTF_GlyphMetrics,"TTF_GlyphMetrics"); + lib.bindSymbol(cast(void**)&TTF_SizeText,"TTF_SizeText"); + lib.bindSymbol(cast(void**)&TTF_SizeUTF8,"TTF_SizeUTF8"); + lib.bindSymbol(cast(void**)&TTF_SizeUNICODE,"TTF_SizeUNICODE"); + lib.bindSymbol(cast(void**)&TTF_RenderText_Solid,"TTF_RenderText_Solid"); + lib.bindSymbol(cast(void**)&TTF_RenderUTF8_Solid,"TTF_RenderUTF8_Solid"); + lib.bindSymbol(cast(void**)&TTF_RenderUNICODE_Solid,"TTF_RenderUNICODE_Solid"); + lib.bindSymbol(cast(void**)&TTF_RenderGlyph_Solid,"TTF_RenderGlyph_Solid"); + lib.bindSymbol(cast(void**)&TTF_RenderText_Shaded,"TTF_RenderText_Shaded"); + lib.bindSymbol(cast(void**)&TTF_RenderUTF8_Shaded,"TTF_RenderUTF8_Shaded"); + lib.bindSymbol(cast(void**)&TTF_RenderUNICODE_Shaded,"TTF_RenderUNICODE_Shaded"); + lib.bindSymbol(cast(void**)&TTF_RenderGlyph_Shaded,"TTF_RenderGlyph_Shaded"); + lib.bindSymbol(cast(void**)&TTF_RenderText_Blended,"TTF_RenderText_Blended"); + lib.bindSymbol(cast(void**)&TTF_RenderUTF8_Blended,"TTF_RenderUTF8_Blended"); + lib.bindSymbol(cast(void**)&TTF_RenderUNICODE_Blended,"TTF_RenderUNICODE_Blended"); + lib.bindSymbol(cast(void**)&TTF_RenderText_Blended_Wrapped,"TTF_RenderText_Blended_Wrapped"); + lib.bindSymbol(cast(void**)&TTF_RenderUTF8_Blended_Wrapped,"TTF_RenderUTF8_Blended_Wrapped"); + lib.bindSymbol(cast(void**)&TTF_RenderUNICODE_Blended_Wrapped,"TTF_RenderUNICODE_Blended_Wrapped"); + lib.bindSymbol(cast(void**)&TTF_RenderGlyph_Blended,"TTF_RenderGlyph_Blended"); + lib.bindSymbol(cast(void**)&TTF_CloseFont,"TTF_CloseFont"); + lib.bindSymbol(cast(void**)&TTF_Quit,"TTF_Quit"); + lib.bindSymbol(cast(void**)&TTF_WasInit,"TTF_WasInit"); + lib.bindSymbol(cast(void**)&TTF_GetFontKerningSize,"TTF_GetFontKerningSize"); + + if(errorCount() != errCount) return SDLTTFSupport.badLibrary; + else loadedVersion = SDLTTFSupport.sdlTTF2012; + + static if(sdlTTFSupport >= SDLTTFSupport.sdlTTF2014) { + lib.bindSymbol(cast(void**)&TTF_GetFontKerningSizeGlyphs,"TTF_GetFontKerningSizeGlyphs"); + + if(errorCount() != errCount) return SDLTTFSupport.badLibrary; + else loadedVersion = SDLTTFSupport.sdlTTF2014; + } + + return loadedVersion; + } +} \ No newline at end of file diff --git a/demos/libpng16-16.dll b/demos/libpng16-16.dll new file mode 100644 index 0000000000000000000000000000000000000000..709f724459a3f036811cf7cfbac64f3c900ea739 GIT binary patch literal 210944 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 z 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 HDe!*)FtIkk literal 0 HcmV?d00001 diff --git a/demos/simple/dub.json b/demos/simple/dub.json new file mode 100644 index 0000000..393840f --- /dev/null +++ b/demos/simple/dub.json @@ -0,0 +1,50 @@ +{ + "name": "simple", + "authors": [ + "Michał Masiukiewicz", "Dawid Masiukiewicz" + ], + "targetPath": "..", + "description": "Dynamic Entity Component System simple example", + "copyright": "Copyright © 2018-2019, Michał Masiukiewicz, Dawid Masiukiewicz", + "license": "BSD 3-clause", + "sourcePaths" : ["source\/"], + "dflags-posix-ldc": [ + "-defaultlib=phobos2-ldc,druntime-ldc" + ], + "libs-windows-x86_64": ["../libs/windows/x64/SDL2","../libs/windows/x64/SDL2main","../libs/windows/x64/SDL2_Image"], + "dflagss": [ + "-betterC" + ], + "dependencies": { + "bindbc-sdl":"0.13.0", + "ecs":{"path":"../../"}, + "ecs_utils":{"path":"../utils/"} + }, + "versions": [ + "SDL_2010", + "BindSDL_Image" + ], + "configurations" : [ + { + "name" : "default", + "targetType" : "executable", + "subConfigurations": + { + "ecs":"library" + } + }, + { + "name" : "betterC", + "targetType" : "executable", + "dflags": [ + "-betterC" + ], + "subConfigurations": + { + "bindbc-sdl": "staticBC", + "ecs_utils":"betterC", + "ecs":"library-betterC" + } + } + ] +} \ No newline at end of file diff --git a/demos/simple/source/app.d b/demos/simple/source/app.d new file mode 100644 index 0000000..d8d61f5 --- /dev/null +++ b/demos/simple/source/app.d @@ -0,0 +1,216 @@ +module source.app; + +import ecs.std; +import ecs.core; +import ecs.manager; +import ecs.attributes; +import ecs.entity; + +import bindbc.sdl; + +import utils.utils; +import utils.texture; + +import ecs_utils.math.vector; + +version (WebAssembly) +{ + extern (C) void _start() + { + } +} + +SDL_Renderer *renderer; +SDL_Window* window; +Texture texture; +EntityManager* manager; + +struct CLocation +{ + mixin ECS.Component; + + alias location this; + + vec2 location; +} + +struct CTexture +{ + mixin ECS.Component; + + Texture tex; +} + +struct DrawSystem +{ + mixin ECS.System; + + struct EntitiesData + { + uint length; + @readonly CTexture[] textures; + @readonly CLocation[] locations; + } + + void onUpdate(EntitiesData data) + { + foreach(i; 0..data.length) + { + draw(renderer, data.textures[i].tex, data.locations[i], vec2(32,32), vec4(0,0,1,1)); + } + } +} + +struct MoveSystem +{ + mixin ECS.System; + + struct EntitiesData + { + uint length; + CLocation[] locations; + } + + void onUpdate(EntitiesData data) + { + foreach(i; 0..data.length) + { + data.locations[i].location.y = data.locations[i].location.y + 1; + if(data.locations[i].location.y > 400)data.locations[i].location.y = 0; + } + } +} + +extern (C) int main(int argc, char** argv) +{ + fps = 0; + time = 0; + + if (SDL_Init(SDL_INIT_VIDEO) < 0) + { + printf("SDL could not initialize! SDL_Error: %s", SDL_GetError()); + return -1; + } + + SDL_version sdl_version; + SDL_GetVersion(&sdl_version); + printf("SDL version: %u.%u.%u\n",cast(uint)sdl_version.major,cast(uint)sdl_version.minor,cast(uint)sdl_version.patch); + + SDL_Window* window = SDL_CreateWindow("Simple", SDL_WINDOWPOS_CENTERED, + SDL_WINDOWPOS_CENTERED, 600, 400, SDL_WINDOW_SHOWN); + //SDL_CreateWindowAndRenderer(600, 400, SDL_RENDERER_ACCELERATED, &window, &renderer); + renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); + SDL_SetRenderDrawColor(renderer, 1, 255, 255, 255); + + texture.create(); + texture.load(renderer, "assets/textures/buckler.png"); + + EntityManager.initialize(8); + manager = EntityManager.instance; + + manager.beginRegister(); + + manager.registerComponent!CLocation; + manager.registerComponent!CTexture; + + manager.registerSystem!MoveSystem(64); + manager.registerSystem!DrawSystem(64); + + manager.endRegister(); + + ushort[2] components = [CLocation.component_id, CTexture.component_id]; + EntityTemplate* tmpl = manager.allocateTemplate(components); + CTexture* tex_comp = tmpl.getComponent!CTexture; + tex_comp.tex = texture; + CLocation* loc_comp = tmpl.getComponent!CLocation; + // loc_comp.location = vec2(64,64); + + foreach(i; 0..10) + foreach(j; 0..10) + { + loc_comp.location = vec2(i*32+64,j*32+64); + manager.addEntity(tmpl); + } + + + manager.freeTemplate(tmpl); + + /*image = IMG_Load("assets/owl.png"); + tex = SDL_CreateTextureFromSurface(renderer, image);*/ + + version(WebAssembly) + { + emscripten_set_main_loop_arg(&loop, null, -1, 1); + } + + bool arg = true; + while(arg == true) + { + loop(&arg); + } + + if (window !is null) { + SDL_DestroyWindow(window); + } + + end(); + + return 0; +} + +long time; +uint fps; + +extern(C) void loop(void *arg = null) +{ + static float fps_time = 0; + float delta_time = cast(float)(Time.getUSecTime() - time); + if(delta_time > 1000_000)delta_time = 1000; + time = Time.getUSecTime(); + + if(fps_time < 0)fps_time = 0; + + fps++; + fps_time += delta_time; + if(fps_time > 1000_000) + { + + printf("FPS: %u\n",fps); + fps = 0; + fps_time -= 1000_000; + } + + SDL_Event event; + while (SDL_PollEvent(&event)) + { + if (event.type == SDL_QUIT) { + version(WebAssembly)emscripten_cancel_main_loop(); + *cast(bool*)arg = false; + //return false; + } + + if (event.type == SDL_KEYDOWN) { + version(WebAssembly)emscripten_cancel_main_loop(); + *cast(bool*)arg = false; + //return false; + } + } + + SDL_RenderClear(renderer); + + manager.begin(); + manager.update(); + manager.end(); + + draw(renderer,texture,vec2(32,32),vec2(32,32),vec4(0,0,1,1)); + //SDL_RenderCopy(ctx->renderer, ctx->owl_tex, NULL, &ctx->dest); + SDL_RenderPresent(renderer); + + //return true; +} + +void end() +{ + EntityManager.destroy(); + SDL_Quit(); +} \ No newline at end of file diff --git a/demos/simple/source/utils/texture.d b/demos/simple/source/utils/texture.d new file mode 100644 index 0000000..5b49390 --- /dev/null +++ b/demos/simple/source/utils/texture.d @@ -0,0 +1,49 @@ +module utils.texture; + +import ecs.std; + +import bindbc.sdl; +import bindbc.sdl.image; + +import ecs_utils.math.vector; + +struct Texture +{ + + void create() + { + data = Mallocator.make!Data; + } + + bool load(SDL_Renderer* renderer, const char[] path) + { + char[] cpath = (cast(char*)alloca(path.length+1))[0..path.length+1]; + //cpath[0..$-1] = path[0..$]; + memcpy(cpath.ptr, path.ptr, path.length); + cpath[$-1] = 0; + + SDL_Surface* surf = IMG_Load(cpath.ptr); + if(!surf)return false; + + data.size = ivec2(surf.w,surf.h); + + data.texture = SDL_CreateTextureFromSurface(renderer,surf); + SDL_FreeSurface(surf); + + if(!data.texture)return false; + + return true; + } + + struct Data + { + ubyte[] data; + + ivec2 size; + uint bpp; + + SDL_Texture* texture; + } + + Data* data; +} \ No newline at end of file diff --git a/demos/simple/source/utils/utils.d b/demos/simple/source/utils/utils.d new file mode 100644 index 0000000..c7d3e9d --- /dev/null +++ b/demos/simple/source/utils/utils.d @@ -0,0 +1,110 @@ +module utils.utils; + +extern(C) int printf(scope const char* format, ...) @nogc nothrow @system; + +version(WebAssembly) +{ + + extern (C) alias em_callback_func = void function(); + extern (C) alias em_arg_callback_func = void function(void*); + extern (C) void emscripten_set_main_loop(em_callback_func func, int fps, int simulate_infinite_loop); + extern (C) void emscripten_set_main_loop_arg(em_arg_callback_func func, void *arg, int fps, int simulate_infinite_loop); + extern (C) int emscripten_set_main_loop_timing(int mode, int value); + extern (C) void emscripten_cancel_main_loop(); + + alias int time_t; + alias int clockid_t; + enum CLOCK_REALTIME = 0; + + struct timespec + { + time_t tv_sec; + int tv_nsec; + } + + extern(C) int clock_gettime(clockid_t, timespec*) @nogc nothrow @system; + + struct Time + { + + + static long getUSecTime() + { + time_t time; + timespec spec; + + clock_gettime(CLOCK_REALTIME, &spec); + + //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);*/ + } + } +} +else version(Windows) +{ + import core.stdc.stdio : printf; + import core.sys.windows.windows; + struct Time + { + static long getUSecTime() + { + LARGE_INTEGER time, freq; + QueryPerformanceFrequency(&freq); + QueryPerformanceCounter(&time); + return time.QuadPart / (freq.QuadPart / 1000_000); + } + } +} +else version(Posix) +{ + import core.stdc.stdio : printf; + import core.sys.posix.time; + struct Time + { + static long getUSecTime() + { + time_t time; + timespec spec; + + clock_gettime(CLOCK_REALTIME, &spec); + + //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);*/ + } + } +} + +import bindbc.sdl; +import utils.texture; +import ecs_utils.math.vector; + +ivec2 resolution = ivec2(600, 400); + +void draw(SDL_Renderer* renderer, Texture tex, vec2 pos, vec2 size, vec4 coords, float angle = 0) +{ + + SDL_Rect rect = SDL_Rect(cast(int)(coords.x*tex.data.size.x),cast(int)(coords.y*tex.data.size.y),cast(int)(coords.z*tex.data.size.x),cast(int)(coords.w*tex.data.size.y)); + SDL_Rect rect2 = SDL_Rect(cast(int)((pos.x-size.x*0.5)), + cast(int)(resolution.y - pos.y - size.y*0.5), + cast(int)(size.x), + cast(int)(size.y)); + + SDL_RenderCopyEx(renderer, + tex.data.texture, + &rect, + &rect2, + angle*360, + null, + SDL_FLIP_NONE); + +} \ No newline at end of file diff --git a/demos/utils/dub.json b/demos/utils/dub.json new file mode 100644 index 0000000..14298cb --- /dev/null +++ b/demos/utils/dub.json @@ -0,0 +1,50 @@ +{ + "name": "ecs_utils", + "authors": [ + "Michał Masiukiewicz", "Dawid Masiukiewicz" + ], + "description": "Dynamic Entity Component System examples utils", + "copyright": "Copyright © 2018-2019, Michał Masiukiewicz, Dawid Masiukiewicz", + "license": "BSD", + "sourcePaths" : [ + "source\/" + ], + "importPaths": [ + "source" + ], + "dflags-posix-ldc": [ + "-defaultlib=phobos2-ldc,druntime-ldc" + ], + "dflagss": [ + "-betterC" + ], + "dependencies": { + "bindbc-sdl":"0.10.1" + }, + "versions": [ + "BindSDL_Image", + "SDL_2010" + ], + + "configurations" : [ + { + "name" : "default", + "targetType" : "library", + "subConfigurations": + { + "bindbc-sdl": "static" + } + }, + { + "name" : "betterC", + "targetType" : "library", + "dflags": [ + "-betterC" + ], + "subConfigurations": + { + "bindbc-sdl": "staticBC" + } + } + ] +} \ No newline at end of file diff --git a/demos/utils/source/ecs_utils/math/matrix.d b/demos/utils/source/ecs_utils/math/matrix.d new file mode 100644 index 0000000..8a8e13b --- /dev/null +++ b/demos/utils/source/ecs_utils/math/matrix.d @@ -0,0 +1,6 @@ +module ecs_utils.math.matrix; + +struct mat3 +{ + float[9] data; +} \ No newline at end of file diff --git a/demos/utils/source/ecs_utils/math/vector.d b/demos/utils/source/ecs_utils/math/vector.d new file mode 100644 index 0000000..10b4de5 --- /dev/null +++ b/demos/utils/source/ecs_utils/math/vector.d @@ -0,0 +1,100 @@ +module ecs_utils.math.vector; + +struct vec2 +{ + union + { + struct + { + float x; + float y; + } + float[2] data; + } + + vec2 opBinary(string op)(vec2 v) + { + static if (op == "+") return vec2(x + v.x, y + v.y); + else static if (op == "-") return vec2(x - v.x, y - v.y); + else static if (op == "*") return vec2(x * v.x, y * v.y); + else static if (op == "/") return vec2(x / v.x, y / v.y); + else static assert(0, "Operator "~op~" not implemented"); + } + + vec2 opBinary(string op)(float v) + { + static if (op == "+") return vec2(x + v, y + v); + else static if (op == "-") return vec2(x - v, y - v); + else static if (op == "*") return vec2(x * v, y * v); + else static if (op == "/") return vec2(x / v, y / v); + else static assert(0, "Operator "~op~" not implemented"); + } + + void opOpAssign(string op)(vec2 v) + { + static if (op == "+") + { + x += v.x; + y += v.y; + } + else static if (op == "-") + { + x -= v.x; + y -= v.y; + } + else static if (op == "*") + { + x *= v.x; + y *= v.y; + } + else static if (op == "/") + { + x /= v.x; + y /= v.y; + } + else static assert(0, "Operator "~op~" not implemented"); + } +} + +struct vec4 +{ + union + { + struct + { + float x; + float y; + float z; + float w; + } + float[4] data; + } +} + +struct ivec2 +{ + union + { + struct + { + int x; + int y; + } + int[2] data; + } +} + +struct ivec4 +{ + union + { + struct + { + int x; + int y; + int z; + int w; + } + int[4] data; + } +} \ No newline at end of file diff --git a/demos/zlib1.dll b/demos/zlib1.dll new file mode 100644 index 0000000000000000000000000000000000000000..e7493de315264b254bdf914737274034e9017598 GIT binary patch literal 108544 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 literal 0 HcmV?d00001 diff --git a/source/ecs/std.d b/source/ecs/std.d index c52d3af..c8b7ecd 100644 --- a/source/ecs/std.d +++ b/source/ecs/std.d @@ -56,7 +56,7 @@ version(D_betterC) private const uint max_alloca = 10000; private char[max_alloca] alloca_array; private uint alloca_pos = 0; - void* alloca(size_t length) @nogc nothrow + export extern(C) void* alloca(size_t length) @nogc nothrow { if(alloca_pos + length > max_alloca)alloca_pos = 0; void* ret = &alloca_array[alloca_pos]; @@ -69,7 +69,7 @@ else version(WebAssembly) private const uint max_alloca = 10000; private char[max_alloca] alloca_array; private uint alloca_pos = 0; - void* alloca(size_t length) @nogc nothrow + export extern(C) void* alloca(size_t length) @nogc nothrow { if(alloca_pos + length > max_alloca)alloca_pos = 0; void* ret = &alloca_array[alloca_pos];