summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/SDL2/src/video/emscripten
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/SDL2/src/video/emscripten')
-rw-r--r--3rdparty/SDL2/src/video/emscripten/SDL_emscriptenevents.c680
-rw-r--r--3rdparty/SDL2/src/video/emscripten/SDL_emscriptenevents.h39
-rw-r--r--3rdparty/SDL2/src/video/emscripten/SDL_emscriptenframebuffer.c178
-rw-r--r--3rdparty/SDL2/src/video/emscripten/SDL_emscriptenframebuffer.h32
-rw-r--r--3rdparty/SDL2/src/video/emscripten/SDL_emscriptenmouse.c236
-rw-r--r--3rdparty/SDL2/src/video/emscripten/SDL_emscriptenmouse.h39
-rw-r--r--3rdparty/SDL2/src/video/emscripten/SDL_emscriptenopengles.c117
-rw-r--r--3rdparty/SDL2/src/video/emscripten/SDL_emscriptenopengles.h49
-rw-r--r--3rdparty/SDL2/src/video/emscripten/SDL_emscriptenvideo.c347
-rw-r--r--3rdparty/SDL2/src/video/emscripten/SDL_emscriptenvideo.h54
10 files changed, 0 insertions, 1771 deletions
diff --git a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenevents.c b/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenevents.c
deleted file mode 100644
index a4720e40224..00000000000
--- a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenevents.c
+++ /dev/null
@@ -1,680 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-
-
-#include "../../SDL_internal.h"
-
-#if SDL_VIDEO_DRIVER_EMSCRIPTEN
-
-#include <emscripten/html5.h>
-
-#include "../../events/SDL_events_c.h"
-#include "../../events/SDL_keyboard_c.h"
-#include "../../events/SDL_touch_c.h"
-
-#include "SDL_emscriptenevents.h"
-#include "SDL_emscriptenvideo.h"
-
-#include "SDL_hints.h"
-
-#define FULLSCREEN_MASK ( SDL_WINDOW_FULLSCREEN_DESKTOP | SDL_WINDOW_FULLSCREEN )
-
-/*
-.keyCode to scancode
-https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent
-https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
-*/
-static const SDL_Scancode emscripten_scancode_table[] = {
- /* 0 */ SDL_SCANCODE_UNKNOWN,
- /* 1 */ SDL_SCANCODE_UNKNOWN,
- /* 2 */ SDL_SCANCODE_UNKNOWN,
- /* 3 */ SDL_SCANCODE_CANCEL,
- /* 4 */ SDL_SCANCODE_UNKNOWN,
- /* 5 */ SDL_SCANCODE_UNKNOWN,
- /* 6 */ SDL_SCANCODE_HELP,
- /* 7 */ SDL_SCANCODE_UNKNOWN,
- /* 8 */ SDL_SCANCODE_BACKSPACE,
- /* 9 */ SDL_SCANCODE_TAB,
- /* 10 */ SDL_SCANCODE_UNKNOWN,
- /* 11 */ SDL_SCANCODE_UNKNOWN,
- /* 12 */ SDL_SCANCODE_UNKNOWN,
- /* 13 */ SDL_SCANCODE_RETURN,
- /* 14 */ SDL_SCANCODE_UNKNOWN,
- /* 15 */ SDL_SCANCODE_UNKNOWN,
- /* 16 */ SDL_SCANCODE_LSHIFT,
- /* 17 */ SDL_SCANCODE_LCTRL,
- /* 18 */ SDL_SCANCODE_LALT,
- /* 19 */ SDL_SCANCODE_PAUSE,
- /* 20 */ SDL_SCANCODE_CAPSLOCK,
- /* 21 */ SDL_SCANCODE_UNKNOWN,
- /* 22 */ SDL_SCANCODE_UNKNOWN,
- /* 23 */ SDL_SCANCODE_UNKNOWN,
- /* 24 */ SDL_SCANCODE_UNKNOWN,
- /* 25 */ SDL_SCANCODE_UNKNOWN,
- /* 26 */ SDL_SCANCODE_UNKNOWN,
- /* 27 */ SDL_SCANCODE_ESCAPE,
- /* 28 */ SDL_SCANCODE_UNKNOWN,
- /* 29 */ SDL_SCANCODE_UNKNOWN,
- /* 30 */ SDL_SCANCODE_UNKNOWN,
- /* 31 */ SDL_SCANCODE_UNKNOWN,
- /* 32 */ SDL_SCANCODE_SPACE,
- /* 33 */ SDL_SCANCODE_PAGEUP,
- /* 34 */ SDL_SCANCODE_PAGEDOWN,
- /* 35 */ SDL_SCANCODE_END,
- /* 36 */ SDL_SCANCODE_HOME,
- /* 37 */ SDL_SCANCODE_LEFT,
- /* 38 */ SDL_SCANCODE_UP,
- /* 39 */ SDL_SCANCODE_RIGHT,
- /* 40 */ SDL_SCANCODE_DOWN,
- /* 41 */ SDL_SCANCODE_UNKNOWN,
- /* 42 */ SDL_SCANCODE_UNKNOWN,
- /* 43 */ SDL_SCANCODE_UNKNOWN,
- /* 44 */ SDL_SCANCODE_UNKNOWN,
- /* 45 */ SDL_SCANCODE_INSERT,
- /* 46 */ SDL_SCANCODE_DELETE,
- /* 47 */ SDL_SCANCODE_UNKNOWN,
- /* 48 */ SDL_SCANCODE_0,
- /* 49 */ SDL_SCANCODE_1,
- /* 50 */ SDL_SCANCODE_2,
- /* 51 */ SDL_SCANCODE_3,
- /* 52 */ SDL_SCANCODE_4,
- /* 53 */ SDL_SCANCODE_5,
- /* 54 */ SDL_SCANCODE_6,
- /* 55 */ SDL_SCANCODE_7,
- /* 56 */ SDL_SCANCODE_8,
- /* 57 */ SDL_SCANCODE_9,
- /* 58 */ SDL_SCANCODE_UNKNOWN,
- /* 59 */ SDL_SCANCODE_SEMICOLON,
- /* 60 */ SDL_SCANCODE_UNKNOWN,
- /* 61 */ SDL_SCANCODE_EQUALS,
- /* 62 */ SDL_SCANCODE_UNKNOWN,
- /* 63 */ SDL_SCANCODE_UNKNOWN,
- /* 64 */ SDL_SCANCODE_UNKNOWN,
- /* 65 */ SDL_SCANCODE_A,
- /* 66 */ SDL_SCANCODE_B,
- /* 67 */ SDL_SCANCODE_C,
- /* 68 */ SDL_SCANCODE_D,
- /* 69 */ SDL_SCANCODE_E,
- /* 70 */ SDL_SCANCODE_F,
- /* 71 */ SDL_SCANCODE_G,
- /* 72 */ SDL_SCANCODE_H,
- /* 73 */ SDL_SCANCODE_I,
- /* 74 */ SDL_SCANCODE_J,
- /* 75 */ SDL_SCANCODE_K,
- /* 76 */ SDL_SCANCODE_L,
- /* 77 */ SDL_SCANCODE_M,
- /* 78 */ SDL_SCANCODE_N,
- /* 79 */ SDL_SCANCODE_O,
- /* 80 */ SDL_SCANCODE_P,
- /* 81 */ SDL_SCANCODE_Q,
- /* 82 */ SDL_SCANCODE_R,
- /* 83 */ SDL_SCANCODE_S,
- /* 84 */ SDL_SCANCODE_T,
- /* 85 */ SDL_SCANCODE_U,
- /* 86 */ SDL_SCANCODE_V,
- /* 87 */ SDL_SCANCODE_W,
- /* 88 */ SDL_SCANCODE_X,
- /* 89 */ SDL_SCANCODE_Y,
- /* 90 */ SDL_SCANCODE_Z,
- /* 91 */ SDL_SCANCODE_LGUI,
- /* 92 */ SDL_SCANCODE_UNKNOWN,
- /* 93 */ SDL_SCANCODE_APPLICATION,
- /* 94 */ SDL_SCANCODE_UNKNOWN,
- /* 95 */ SDL_SCANCODE_UNKNOWN,
- /* 96 */ SDL_SCANCODE_KP_0,
- /* 97 */ SDL_SCANCODE_KP_1,
- /* 98 */ SDL_SCANCODE_KP_2,
- /* 99 */ SDL_SCANCODE_KP_3,
- /* 100 */ SDL_SCANCODE_KP_4,
- /* 101 */ SDL_SCANCODE_KP_5,
- /* 102 */ SDL_SCANCODE_KP_6,
- /* 103 */ SDL_SCANCODE_KP_7,
- /* 104 */ SDL_SCANCODE_KP_8,
- /* 105 */ SDL_SCANCODE_KP_9,
- /* 106 */ SDL_SCANCODE_KP_MULTIPLY,
- /* 107 */ SDL_SCANCODE_KP_PLUS,
- /* 108 */ SDL_SCANCODE_UNKNOWN,
- /* 109 */ SDL_SCANCODE_KP_MINUS,
- /* 110 */ SDL_SCANCODE_KP_PERIOD,
- /* 111 */ SDL_SCANCODE_KP_DIVIDE,
- /* 112 */ SDL_SCANCODE_F1,
- /* 113 */ SDL_SCANCODE_F2,
- /* 114 */ SDL_SCANCODE_F3,
- /* 115 */ SDL_SCANCODE_F4,
- /* 116 */ SDL_SCANCODE_F5,
- /* 117 */ SDL_SCANCODE_F6,
- /* 118 */ SDL_SCANCODE_F7,
- /* 119 */ SDL_SCANCODE_F8,
- /* 120 */ SDL_SCANCODE_F9,
- /* 121 */ SDL_SCANCODE_F10,
- /* 122 */ SDL_SCANCODE_F11,
- /* 123 */ SDL_SCANCODE_F12,
- /* 124 */ SDL_SCANCODE_F13,
- /* 125 */ SDL_SCANCODE_F14,
- /* 126 */ SDL_SCANCODE_F15,
- /* 127 */ SDL_SCANCODE_F16,
- /* 128 */ SDL_SCANCODE_F17,
- /* 129 */ SDL_SCANCODE_F18,
- /* 130 */ SDL_SCANCODE_F19,
- /* 131 */ SDL_SCANCODE_F20,
- /* 132 */ SDL_SCANCODE_F21,
- /* 133 */ SDL_SCANCODE_F22,
- /* 134 */ SDL_SCANCODE_F23,
- /* 135 */ SDL_SCANCODE_F24,
- /* 136 */ SDL_SCANCODE_UNKNOWN,
- /* 137 */ SDL_SCANCODE_UNKNOWN,
- /* 138 */ SDL_SCANCODE_UNKNOWN,
- /* 139 */ SDL_SCANCODE_UNKNOWN,
- /* 140 */ SDL_SCANCODE_UNKNOWN,
- /* 141 */ SDL_SCANCODE_UNKNOWN,
- /* 142 */ SDL_SCANCODE_UNKNOWN,
- /* 143 */ SDL_SCANCODE_UNKNOWN,
- /* 144 */ SDL_SCANCODE_NUMLOCKCLEAR,
- /* 145 */ SDL_SCANCODE_SCROLLLOCK,
- /* 146 */ SDL_SCANCODE_UNKNOWN,
- /* 147 */ SDL_SCANCODE_UNKNOWN,
- /* 148 */ SDL_SCANCODE_UNKNOWN,
- /* 149 */ SDL_SCANCODE_UNKNOWN,
- /* 150 */ SDL_SCANCODE_UNKNOWN,
- /* 151 */ SDL_SCANCODE_UNKNOWN,
- /* 152 */ SDL_SCANCODE_UNKNOWN,
- /* 153 */ SDL_SCANCODE_UNKNOWN,
- /* 154 */ SDL_SCANCODE_UNKNOWN,
- /* 155 */ SDL_SCANCODE_UNKNOWN,
- /* 156 */ SDL_SCANCODE_UNKNOWN,
- /* 157 */ SDL_SCANCODE_UNKNOWN,
- /* 158 */ SDL_SCANCODE_UNKNOWN,
- /* 159 */ SDL_SCANCODE_UNKNOWN,
- /* 160 */ SDL_SCANCODE_UNKNOWN,
- /* 161 */ SDL_SCANCODE_UNKNOWN,
- /* 162 */ SDL_SCANCODE_UNKNOWN,
- /* 163 */ SDL_SCANCODE_UNKNOWN,
- /* 164 */ SDL_SCANCODE_UNKNOWN,
- /* 165 */ SDL_SCANCODE_UNKNOWN,
- /* 166 */ SDL_SCANCODE_UNKNOWN,
- /* 167 */ SDL_SCANCODE_UNKNOWN,
- /* 168 */ SDL_SCANCODE_UNKNOWN,
- /* 169 */ SDL_SCANCODE_UNKNOWN,
- /* 170 */ SDL_SCANCODE_UNKNOWN,
- /* 171 */ SDL_SCANCODE_UNKNOWN,
- /* 172 */ SDL_SCANCODE_UNKNOWN,
- /* 173 */ SDL_SCANCODE_MINUS, /*FX*/
- /* 174 */ SDL_SCANCODE_VOLUMEDOWN, /*IE, Chrome*/
- /* 175 */ SDL_SCANCODE_VOLUMEUP, /*IE, Chrome*/
- /* 176 */ SDL_SCANCODE_AUDIONEXT, /*IE, Chrome*/
- /* 177 */ SDL_SCANCODE_AUDIOPREV, /*IE, Chrome*/
- /* 178 */ SDL_SCANCODE_UNKNOWN,
- /* 179 */ SDL_SCANCODE_AUDIOPLAY, /*IE, Chrome*/
- /* 180 */ SDL_SCANCODE_UNKNOWN,
- /* 181 */ SDL_SCANCODE_AUDIOMUTE, /*FX*/
- /* 182 */ SDL_SCANCODE_VOLUMEDOWN, /*FX*/
- /* 183 */ SDL_SCANCODE_VOLUMEUP, /*FX*/
- /* 184 */ SDL_SCANCODE_UNKNOWN,
- /* 185 */ SDL_SCANCODE_UNKNOWN,
- /* 186 */ SDL_SCANCODE_SEMICOLON, /*IE, Chrome, D3E legacy*/
- /* 187 */ SDL_SCANCODE_EQUALS, /*IE, Chrome, D3E legacy*/
- /* 188 */ SDL_SCANCODE_COMMA,
- /* 189 */ SDL_SCANCODE_MINUS, /*IE, Chrome, D3E legacy*/
- /* 190 */ SDL_SCANCODE_PERIOD,
- /* 191 */ SDL_SCANCODE_SLASH,
- /* 192 */ SDL_SCANCODE_GRAVE, /*FX, D3E legacy (SDL_SCANCODE_APOSTROPHE in IE/Chrome)*/
- /* 193 */ SDL_SCANCODE_UNKNOWN,
- /* 194 */ SDL_SCANCODE_UNKNOWN,
- /* 195 */ SDL_SCANCODE_UNKNOWN,
- /* 196 */ SDL_SCANCODE_UNKNOWN,
- /* 197 */ SDL_SCANCODE_UNKNOWN,
- /* 198 */ SDL_SCANCODE_UNKNOWN,
- /* 199 */ SDL_SCANCODE_UNKNOWN,
- /* 200 */ SDL_SCANCODE_UNKNOWN,
- /* 201 */ SDL_SCANCODE_UNKNOWN,
- /* 202 */ SDL_SCANCODE_UNKNOWN,
- /* 203 */ SDL_SCANCODE_UNKNOWN,
- /* 204 */ SDL_SCANCODE_UNKNOWN,
- /* 205 */ SDL_SCANCODE_UNKNOWN,
- /* 206 */ SDL_SCANCODE_UNKNOWN,
- /* 207 */ SDL_SCANCODE_UNKNOWN,
- /* 208 */ SDL_SCANCODE_UNKNOWN,
- /* 209 */ SDL_SCANCODE_UNKNOWN,
- /* 210 */ SDL_SCANCODE_UNKNOWN,
- /* 211 */ SDL_SCANCODE_UNKNOWN,
- /* 212 */ SDL_SCANCODE_UNKNOWN,
- /* 213 */ SDL_SCANCODE_UNKNOWN,
- /* 214 */ SDL_SCANCODE_UNKNOWN,
- /* 215 */ SDL_SCANCODE_UNKNOWN,
- /* 216 */ SDL_SCANCODE_UNKNOWN,
- /* 217 */ SDL_SCANCODE_UNKNOWN,
- /* 218 */ SDL_SCANCODE_UNKNOWN,
- /* 219 */ SDL_SCANCODE_LEFTBRACKET,
- /* 220 */ SDL_SCANCODE_BACKSLASH,
- /* 221 */ SDL_SCANCODE_RIGHTBRACKET,
- /* 222 */ SDL_SCANCODE_APOSTROPHE, /*FX, D3E legacy*/
-};
-
-
-/* "borrowed" from SDL_windowsevents.c */
-int
-Emscripten_ConvertUTF32toUTF8(Uint32 codepoint, char * text)
-{
- if (codepoint <= 0x7F) {
- text[0] = (char) codepoint;
- text[1] = '\0';
- } else if (codepoint <= 0x7FF) {
- text[0] = 0xC0 | (char) ((codepoint >> 6) & 0x1F);
- text[1] = 0x80 | (char) (codepoint & 0x3F);
- text[2] = '\0';
- } else if (codepoint <= 0xFFFF) {
- text[0] = 0xE0 | (char) ((codepoint >> 12) & 0x0F);
- text[1] = 0x80 | (char) ((codepoint >> 6) & 0x3F);
- text[2] = 0x80 | (char) (codepoint & 0x3F);
- text[3] = '\0';
- } else if (codepoint <= 0x10FFFF) {
- text[0] = 0xF0 | (char) ((codepoint >> 18) & 0x0F);
- text[1] = 0x80 | (char) ((codepoint >> 12) & 0x3F);
- text[2] = 0x80 | (char) ((codepoint >> 6) & 0x3F);
- text[3] = 0x80 | (char) (codepoint & 0x3F);
- text[4] = '\0';
- } else {
- return SDL_FALSE;
- }
- return SDL_TRUE;
-}
-
-EM_BOOL
-Emscripten_HandleMouseMove(int eventType, const EmscriptenMouseEvent *mouseEvent, void *userData)
-{
- SDL_WindowData *window_data = userData;
- int mx, my;
- static double residualx = 0, residualy = 0;
- EmscriptenPointerlockChangeEvent pointerlock_status;
-
- /* rescale (in case canvas is being scaled)*/
- double client_w, client_h, xscale, yscale;
- emscripten_get_element_css_size(NULL, &client_w, &client_h);
- xscale = window_data->window->w / client_w;
- yscale = window_data->window->h / client_h;
-
- /* check for pointer lock */
- int isPointerLockSupported = emscripten_get_pointerlock_status(&pointerlock_status);
- int isPointerLocked = isPointerLockSupported == EMSCRIPTEN_RESULT_SUCCESS ? pointerlock_status.isActive : SDL_FALSE;
-
- if (isPointerLocked) {
- residualx += mouseEvent->movementX * xscale;
- residualy += mouseEvent->movementY * yscale;
- /* Let slow sub-pixel motion accumulate. Don't lose it. */
- mx = residualx;
- residualx -= mx;
- my = residualy;
- residualy -= my;
- } else {
- mx = mouseEvent->canvasX * xscale;
- my = mouseEvent->canvasY * yscale;
- }
-
- SDL_SendMouseMotion(window_data->window, 0, isPointerLocked, mx, my);
- return 0;
-}
-
-EM_BOOL
-Emscripten_HandleMouseButton(int eventType, const EmscriptenMouseEvent *mouseEvent, void *userData)
-{
- SDL_WindowData *window_data = userData;
- uint32_t sdl_button;
- switch (mouseEvent->button) {
- case 0:
- sdl_button = SDL_BUTTON_LEFT;
- break;
- case 1:
- sdl_button = SDL_BUTTON_MIDDLE;
- break;
- case 2:
- sdl_button = SDL_BUTTON_RIGHT;
- break;
- default:
- return 0;
- }
-
- SDL_EventType sdl_event_type = (eventType == EMSCRIPTEN_EVENT_MOUSEDOWN ? SDL_PRESSED : SDL_RELEASED);
- SDL_SendMouseButton(window_data->window, 0, sdl_event_type, sdl_button);
- return SDL_GetEventState(sdl_event_type) == SDL_ENABLE;
-}
-
-EM_BOOL
-Emscripten_HandleMouseFocus(int eventType, const EmscriptenMouseEvent *mouseEvent, void *userData)
-{
- SDL_WindowData *window_data = userData;
-
- int mx = mouseEvent->canvasX, my = mouseEvent->canvasY;
- EmscriptenPointerlockChangeEvent pointerlock_status;
-
- /* check for pointer lock */
- int isPointerLockSupported = emscripten_get_pointerlock_status(&pointerlock_status);
- int isPointerLocked = isPointerLockSupported == EMSCRIPTEN_RESULT_SUCCESS ? pointerlock_status.isActive : SDL_FALSE;
-
- if (!isPointerLocked) {
- /* rescale (in case canvas is being scaled)*/
- double client_w, client_h;
- emscripten_get_element_css_size(NULL, &client_w, &client_h);
-
- mx = mx * (window_data->window->w / client_w);
- my = my * (window_data->window->h / client_h);
- SDL_SendMouseMotion(window_data->window, 0, isPointerLocked, mx, my);
- }
-
- SDL_SetMouseFocus(eventType == EMSCRIPTEN_EVENT_MOUSEENTER ? window_data->window : NULL);
- return SDL_GetEventState(SDL_WINDOWEVENT) == SDL_ENABLE;
-}
-
-EM_BOOL
-Emscripten_HandleWheel(int eventType, const EmscriptenWheelEvent *wheelEvent, void *userData)
-{
- SDL_WindowData *window_data = userData;
- SDL_SendMouseWheel(window_data->window, 0, wheelEvent->deltaX, -wheelEvent->deltaY, SDL_MOUSEWHEEL_NORMAL);
- return SDL_GetEventState(SDL_MOUSEWHEEL) == SDL_ENABLE;
-}
-
-EM_BOOL
-Emscripten_HandleFocus(int eventType, const EmscriptenFocusEvent *wheelEvent, void *userData)
-{
- SDL_WindowData *window_data = userData;
- /* If the user switches away while keys are pressed (such as
- * via Alt+Tab), key release events won't be received. */
- if (eventType == EMSCRIPTEN_EVENT_BLUR) {
- SDL_ResetKeyboard();
- }
-
-
- SDL_SendWindowEvent(window_data->window, eventType == EMSCRIPTEN_EVENT_FOCUS ? SDL_WINDOWEVENT_FOCUS_GAINED : SDL_WINDOWEVENT_FOCUS_LOST, 0, 0);
- return SDL_GetEventState(SDL_WINDOWEVENT) == SDL_ENABLE;
-}
-
-EM_BOOL
-Emscripten_HandleTouch(int eventType, const EmscriptenTouchEvent *touchEvent, void *userData)
-{
- SDL_WindowData *window_data = userData;
- int i;
- double client_w, client_h;
- int preventDefault = 0;
-
- SDL_TouchID deviceId = 1;
- if (SDL_AddTouch(deviceId, "") < 0) {
- return 0;
- }
-
- emscripten_get_element_css_size(NULL, &client_w, &client_h);
-
- for (i = 0; i < touchEvent->numTouches; i++) {
- SDL_FingerID id;
- float x, y;
-
- if (!touchEvent->touches[i].isChanged)
- continue;
-
- id = touchEvent->touches[i].identifier;
- x = touchEvent->touches[i].canvasX / client_w;
- y = touchEvent->touches[i].canvasY / client_h;
-
- if (eventType == EMSCRIPTEN_EVENT_TOUCHSTART) {
- if (!window_data->finger_touching) {
- window_data->finger_touching = SDL_TRUE;
- window_data->first_finger = id;
- SDL_SendMouseMotion(window_data->window, SDL_TOUCH_MOUSEID, 0, x, y);
- SDL_SendMouseButton(window_data->window, SDL_TOUCH_MOUSEID, SDL_PRESSED, SDL_BUTTON_LEFT);
- }
- SDL_SendTouch(deviceId, id, SDL_TRUE, x, y, 1.0f);
-
- if (!preventDefault && SDL_GetEventState(SDL_FINGERDOWN) == SDL_ENABLE) {
- preventDefault = 1;
- }
- } else if (eventType == EMSCRIPTEN_EVENT_TOUCHMOVE) {
- if ((window_data->finger_touching) && (window_data->first_finger == id)) {
- SDL_SendMouseMotion(window_data->window, SDL_TOUCH_MOUSEID, 0, x, y);
- }
- SDL_SendTouchMotion(deviceId, id, x, y, 1.0f);
-
- if (!preventDefault && SDL_GetEventState(SDL_FINGERMOTION) == SDL_ENABLE) {
- preventDefault = 1;
- }
- } else {
- if ((window_data->finger_touching) && (window_data->first_finger == id)) {
- SDL_SendMouseButton(window_data->window, SDL_TOUCH_MOUSEID, SDL_RELEASED, SDL_BUTTON_LEFT);
- window_data->finger_touching = SDL_FALSE;
- }
- SDL_SendTouch(deviceId, id, SDL_FALSE, x, y, 1.0f);
-
- if (!preventDefault && SDL_GetEventState(SDL_FINGERUP) == SDL_ENABLE) {
- preventDefault = 1;
- }
- }
- }
-
- return preventDefault;
-}
-
-EM_BOOL
-Emscripten_HandleKey(int eventType, const EmscriptenKeyboardEvent *keyEvent, void *userData)
-{
- Uint32 scancode;
-
- /* .keyCode is deprecated, but still the most reliable way to get keys */
- if (keyEvent->keyCode < SDL_arraysize(emscripten_scancode_table)) {
- scancode = emscripten_scancode_table[keyEvent->keyCode];
-
- if (scancode != SDL_SCANCODE_UNKNOWN) {
-
- if (keyEvent->location == DOM_KEY_LOCATION_RIGHT) {
- switch (scancode) {
- case SDL_SCANCODE_LSHIFT:
- scancode = SDL_SCANCODE_RSHIFT;
- break;
- case SDL_SCANCODE_LCTRL:
- scancode = SDL_SCANCODE_RCTRL;
- break;
- case SDL_SCANCODE_LALT:
- scancode = SDL_SCANCODE_RALT;
- break;
- case SDL_SCANCODE_LGUI:
- scancode = SDL_SCANCODE_RGUI;
- break;
- }
- }
- SDL_SendKeyboardKey(eventType == EMSCRIPTEN_EVENT_KEYDOWN ? SDL_PRESSED : SDL_RELEASED, scancode);
- }
- }
-
- SDL_bool prevent_default = SDL_GetEventState(eventType == EMSCRIPTEN_EVENT_KEYDOWN ? SDL_KEYDOWN : SDL_KEYUP) == SDL_ENABLE;
-
- /* if TEXTINPUT events are enabled we can't prevent keydown or we won't get keypress
- * we need to ALWAYS prevent backspace and tab otherwise chrome takes action and does bad navigation UX
- */
- if (eventType == EMSCRIPTEN_EVENT_KEYDOWN && SDL_GetEventState(SDL_TEXTINPUT) == SDL_ENABLE && keyEvent->keyCode != 8 /* backspace */ && keyEvent->keyCode != 9 /* tab */)
- prevent_default = SDL_FALSE;
-
- return prevent_default;
-}
-
-EM_BOOL
-Emscripten_HandleKeyPress(int eventType, const EmscriptenKeyboardEvent *keyEvent, void *userData)
-{
- char text[5];
- if (Emscripten_ConvertUTF32toUTF8(keyEvent->charCode, text)) {
- SDL_SendKeyboardText(text);
- }
- return SDL_GetEventState(SDL_TEXTINPUT) == SDL_ENABLE;
-}
-
-EM_BOOL
-Emscripten_HandleFullscreenChange(int eventType, const EmscriptenFullscreenChangeEvent *fullscreenChangeEvent, void *userData)
-{
- SDL_WindowData *window_data = userData;
- if(fullscreenChangeEvent->isFullscreen)
- {
- window_data->window->flags |= window_data->requested_fullscreen_mode;
-
- window_data->requested_fullscreen_mode = 0;
-
- if(!window_data->requested_fullscreen_mode)
- window_data->window->flags |= SDL_WINDOW_FULLSCREEN; /*we didn't reqest fullscreen*/
- }
- else
- {
- window_data->window->flags &= ~FULLSCREEN_MASK;
- }
-
- return 0;
-}
-
-EM_BOOL
-Emscripten_HandleResize(int eventType, const EmscriptenUiEvent *uiEvent, void *userData)
-{
- SDL_WindowData *window_data = userData;
-
- /* update pixel ratio */
- window_data->pixel_ratio = emscripten_get_device_pixel_ratio();
-
- if(!(window_data->window->flags & FULLSCREEN_MASK))
- {
- /* this will only work if the canvas size is set through css */
- if(window_data->window->flags & SDL_WINDOW_RESIZABLE)
- {
- double w = window_data->window->w;
- double h = window_data->window->h;
-
- if(window_data->external_size) {
- emscripten_get_element_css_size(NULL, &w, &h);
- }
-
- emscripten_set_canvas_size(w * window_data->pixel_ratio, h * window_data->pixel_ratio);
-
- /* set_canvas_size unsets this */
- if (!window_data->external_size && window_data->pixel_ratio != 1.0f) {
- emscripten_set_element_css_size(NULL, w, h);
- }
-
- SDL_SendWindowEvent(window_data->window, SDL_WINDOWEVENT_RESIZED, w, h);
- }
- }
-
- return 0;
-}
-
-EM_BOOL
-Emscripten_HandleCanvasResize(int eventType, const void *reserved, void *userData)
-{
- /*this is used during fullscreen changes*/
- SDL_WindowData *window_data = userData;
-
- if(window_data->fullscreen_resize)
- {
- double css_w, css_h;
- emscripten_get_element_css_size(NULL, &css_w, &css_h);
- SDL_SendWindowEvent(window_data->window, SDL_WINDOWEVENT_RESIZED, css_w, css_h);
- }
-
- return 0;
-}
-
-EM_BOOL
-Emscripten_HandleVisibilityChange(int eventType, const EmscriptenVisibilityChangeEvent *visEvent, void *userData)
-{
- SDL_WindowData *window_data = userData;
- SDL_SendWindowEvent(window_data->window, visEvent->hidden ? SDL_WINDOWEVENT_HIDDEN : SDL_WINDOWEVENT_SHOWN, 0, 0);
- return 0;
-}
-
-void
-Emscripten_RegisterEventHandlers(SDL_WindowData *data)
-{
- /* There is only one window and that window is the canvas */
- emscripten_set_mousemove_callback("#canvas", data, 0, Emscripten_HandleMouseMove);
-
- emscripten_set_mousedown_callback("#canvas", data, 0, Emscripten_HandleMouseButton);
- emscripten_set_mouseup_callback("#document", data, 0, Emscripten_HandleMouseButton);
-
- emscripten_set_mouseenter_callback("#canvas", data, 0, Emscripten_HandleMouseFocus);
- emscripten_set_mouseleave_callback("#canvas", data, 0, Emscripten_HandleMouseFocus);
-
- emscripten_set_wheel_callback("#canvas", data, 0, Emscripten_HandleWheel);
-
- emscripten_set_focus_callback("#window", data, 0, Emscripten_HandleFocus);
- emscripten_set_blur_callback("#window", data, 0, Emscripten_HandleFocus);
-
- emscripten_set_touchstart_callback("#canvas", data, 0, Emscripten_HandleTouch);
- emscripten_set_touchend_callback("#canvas", data, 0, Emscripten_HandleTouch);
- emscripten_set_touchmove_callback("#canvas", data, 0, Emscripten_HandleTouch);
- emscripten_set_touchcancel_callback("#canvas", data, 0, Emscripten_HandleTouch);
-
- /* Keyboard events are awkward */
- const char *keyElement = SDL_GetHint(SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT);
- if (!keyElement) keyElement = "#window";
-
- emscripten_set_keydown_callback(keyElement, data, 0, Emscripten_HandleKey);
- emscripten_set_keyup_callback(keyElement, data, 0, Emscripten_HandleKey);
- emscripten_set_keypress_callback(keyElement, data, 0, Emscripten_HandleKeyPress);
-
- emscripten_set_fullscreenchange_callback("#document", data, 0, Emscripten_HandleFullscreenChange);
-
- emscripten_set_resize_callback("#window", data, 0, Emscripten_HandleResize);
-
- emscripten_set_visibilitychange_callback(data, 0, Emscripten_HandleVisibilityChange);
-}
-
-void
-Emscripten_UnregisterEventHandlers(SDL_WindowData *data)
-{
- /* only works due to having one window */
- emscripten_set_mousemove_callback("#canvas", NULL, 0, NULL);
-
- emscripten_set_mousedown_callback("#canvas", NULL, 0, NULL);
- emscripten_set_mouseup_callback("#document", NULL, 0, NULL);
-
- emscripten_set_mouseenter_callback("#canvas", NULL, 0, NULL);
- emscripten_set_mouseleave_callback("#canvas", NULL, 0, NULL);
-
- emscripten_set_wheel_callback("#canvas", NULL, 0, NULL);
-
- emscripten_set_focus_callback("#window", NULL, 0, NULL);
- emscripten_set_blur_callback("#window", NULL, 0, NULL);
-
- emscripten_set_touchstart_callback("#canvas", NULL, 0, NULL);
- emscripten_set_touchend_callback("#canvas", NULL, 0, NULL);
- emscripten_set_touchmove_callback("#canvas", NULL, 0, NULL);
- emscripten_set_touchcancel_callback("#canvas", NULL, 0, NULL);
-
- const char *target = SDL_GetHint(SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT);
- if (!target) {
- target = "#window";
- }
-
- emscripten_set_keydown_callback(target, NULL, 0, NULL);
- emscripten_set_keyup_callback(target, NULL, 0, NULL);
-
- emscripten_set_keypress_callback(target, NULL, 0, NULL);
-
- emscripten_set_fullscreenchange_callback("#document", NULL, 0, NULL);
-
- emscripten_set_resize_callback("#window", NULL, 0, NULL);
-
- emscripten_set_visibilitychange_callback(NULL, 0, NULL);
-}
-
-#endif /* SDL_VIDEO_DRIVER_EMSCRIPTEN */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenevents.h b/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenevents.h
deleted file mode 100644
index 089ff60da5c..00000000000
--- a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenevents.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-
-
-#ifndef _SDL_emscriptenevents_h
-#define _SDL_emscriptenevents_h
-
-#include "SDL_emscriptenvideo.h"
-
-extern void
-Emscripten_RegisterEventHandlers(SDL_WindowData *data);
-
-extern void
-Emscripten_UnregisterEventHandlers(SDL_WindowData *data);
-
-extern int
-Emscripten_HandleCanvasResize(int eventType, const void *reserved, void *userData);
-#endif /* _SDL_emscriptenevents_h */
-
-/* vi: set ts=4 sw=4 expandtab: */
-
diff --git a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenframebuffer.c b/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenframebuffer.c
deleted file mode 100644
index 8a6a465d94f..00000000000
--- a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenframebuffer.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#if SDL_VIDEO_DRIVER_EMSCRIPTEN
-
-#include "SDL_emscriptenvideo.h"
-#include "SDL_emscriptenframebuffer.h"
-
-
-int Emscripten_CreateWindowFramebuffer(_THIS, SDL_Window * window, Uint32 * format, void ** pixels, int *pitch)
-{
- SDL_Surface *surface;
- const Uint32 surface_format = SDL_PIXELFORMAT_BGR888;
- int w, h;
- int bpp;
- Uint32 Rmask, Gmask, Bmask, Amask;
-
- /* Free the old framebuffer surface */
- SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
- surface = data->surface;
- SDL_FreeSurface(surface);
-
- /* Create a new one */
- SDL_PixelFormatEnumToMasks(surface_format, &bpp, &Rmask, &Gmask, &Bmask, &Amask);
- SDL_GetWindowSize(window, &w, &h);
-
- surface = SDL_CreateRGBSurface(0, w, h, bpp, Rmask, Gmask, Bmask, Amask);
- if (!surface) {
- return -1;
- }
-
- /* Save the info and return! */
- data->surface = surface;
- *format = surface_format;
- *pixels = surface->pixels;
- *pitch = surface->pitch;
- return 0;
-}
-
-int Emscripten_UpdateWindowFramebuffer(_THIS, SDL_Window * window, const SDL_Rect * rects, int numrects)
-{
- SDL_Surface *surface;
-
- SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
- surface = data->surface;
- if (!surface) {
- return SDL_SetError("Couldn't find framebuffer surface for window");
- }
-
- /* Send the data to the display */
-
- EM_ASM_INT({
- var w = $0;
- var h = $1;
- var pixels = $2;
-
- if (!Module['SDL2']) Module['SDL2'] = {};
- var SDL2 = Module['SDL2'];
- if (SDL2.ctxCanvas !== Module['canvas']) {
- SDL2.ctx = Module['createContext'](Module['canvas'], false, true);
- SDL2.ctxCanvas = Module['canvas'];
- }
- if (SDL2.w !== w || SDL2.h !== h || SDL2.imageCtx !== SDL2.ctx) {
- SDL2.image = SDL2.ctx.createImageData(w, h);
- SDL2.w = w;
- SDL2.h = h;
- SDL2.imageCtx = SDL2.ctx;
- }
- var data = SDL2.image.data;
- var src = pixels >> 2;
- var dst = 0;
- var num;
- if (typeof CanvasPixelArray !== 'undefined' && data instanceof CanvasPixelArray) {
- // IE10/IE11: ImageData objects are backed by the deprecated CanvasPixelArray,
- // not UInt8ClampedArray. These don't have buffers, so we need to revert
- // to copying a byte at a time. We do the undefined check because modern
- // browsers do not define CanvasPixelArray anymore.
- num = data.length;
- while (dst < num) {
- var val = HEAP32[src]; // This is optimized. Instead, we could do {{{ makeGetValue('buffer', 'dst', 'i32') }}};
- data[dst ] = val & 0xff;
- data[dst+1] = (val >> 8) & 0xff;
- data[dst+2] = (val >> 16) & 0xff;
- data[dst+3] = 0xff;
- src++;
- dst += 4;
- }
- } else {
- if (SDL2.data32Data !== data) {
- SDL2.data32 = new Int32Array(data.buffer);
- SDL2.data8 = new Uint8Array(data.buffer);
- }
- var data32 = SDL2.data32;
- num = data32.length;
- // logically we need to do
- // while (dst < num) {
- // data32[dst++] = HEAP32[src++] | 0xff000000
- // }
- // the following code is faster though, because
- // .set() is almost free - easily 10x faster due to
- // native memcpy efficiencies, and the remaining loop
- // just stores, not load + store, so it is faster
- data32.set(HEAP32.subarray(src, src + num));
- var data8 = SDL2.data8;
- var i = 3;
- var j = i + 4*num;
- if (num % 8 == 0) {
- // unrolling gives big speedups
- while (i < j) {
- data8[i] = 0xff;
- i = i + 4 | 0;
- data8[i] = 0xff;
- i = i + 4 | 0;
- data8[i] = 0xff;
- i = i + 4 | 0;
- data8[i] = 0xff;
- i = i + 4 | 0;
- data8[i] = 0xff;
- i = i + 4 | 0;
- data8[i] = 0xff;
- i = i + 4 | 0;
- data8[i] = 0xff;
- i = i + 4 | 0;
- data8[i] = 0xff;
- i = i + 4 | 0;
- }
- } else {
- while (i < j) {
- data8[i] = 0xff;
- i = i + 4 | 0;
- }
- }
- }
-
- SDL2.ctx.putImageData(SDL2.image, 0, 0);
- return 0;
- }, surface->w, surface->h, surface->pixels);
-
- /*if (SDL_getenv("SDL_VIDEO_Emscripten_SAVE_FRAMES")) {
- static int frame_number = 0;
- char file[128];
- SDL_snprintf(file, sizeof(file), "SDL_window%d-%8.8d.bmp",
- SDL_GetWindowID(window), ++frame_number);
- SDL_SaveBMP(surface, file);
- }*/
- return 0;
-}
-
-void Emscripten_DestroyWindowFramebuffer(_THIS, SDL_Window * window)
-{
- SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
-
- SDL_FreeSurface(data->surface);
- data->surface = NULL;
-}
-
-#endif /* SDL_VIDEO_DRIVER_EMSCRIPTEN */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenframebuffer.h b/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenframebuffer.h
deleted file mode 100644
index b2a6d3b3700..00000000000
--- a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenframebuffer.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#ifndef _SDL_emscriptenframebuffer_h
-#define _SDL_emscriptenframebuffer_h
-
-extern int Emscripten_CreateWindowFramebuffer(_THIS, SDL_Window * window, Uint32 * format, void ** pixels, int *pitch);
-extern int Emscripten_UpdateWindowFramebuffer(_THIS, SDL_Window * window, const SDL_Rect * rects, int numrects);
-extern void Emscripten_DestroyWindowFramebuffer(_THIS, SDL_Window * window);
-
-#endif /* _SDL_emscriptenframebuffer_h */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenmouse.c b/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenmouse.c
deleted file mode 100644
index 512ad2220da..00000000000
--- a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenmouse.c
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-
-
-#include "../../SDL_internal.h"
-
-#if SDL_VIDEO_DRIVER_EMSCRIPTEN
-
-#include <emscripten/emscripten.h>
-#include <emscripten/html5.h>
-
-#include "SDL_emscriptenmouse.h"
-
-#include "../../events/SDL_mouse_c.h"
-#include "SDL_assert.h"
-
-
-static SDL_Cursor*
-Emscripten_CreateDefaultCursor()
-{
- SDL_Cursor* cursor;
- Emscripten_CursorData *curdata;
-
- cursor = SDL_calloc(1, sizeof(SDL_Cursor));
- if (cursor) {
- curdata = (Emscripten_CursorData *) SDL_calloc(1, sizeof(*curdata));
- if (!curdata) {
- SDL_OutOfMemory();
- SDL_free(cursor);
- return NULL;
- }
-
- curdata->system_cursor = "default";
- cursor->driverdata = curdata;
- }
- else {
- SDL_OutOfMemory();
- }
-
- return cursor;
-}
-
-/*
-static SDL_Cursor*
-Emscripten_CreateCursor(SDL_Surface* sruface, int hot_x, int hot_y)
-{
- return Emscripten_CreateDefaultCursor();
-}
-*/
-
-static SDL_Cursor*
-Emscripten_CreateSystemCursor(SDL_SystemCursor id)
-{
- SDL_Cursor *cursor;
- Emscripten_CursorData *curdata;
- const char *cursor_name = NULL;
-
- switch(id) {
- case SDL_SYSTEM_CURSOR_ARROW:
- cursor_name = "default";
- break;
- case SDL_SYSTEM_CURSOR_IBEAM:
- cursor_name = "text";
- break;
- case SDL_SYSTEM_CURSOR_WAIT:
- cursor_name = "wait";
- break;
- case SDL_SYSTEM_CURSOR_CROSSHAIR:
- cursor_name = "crosshair";
- break;
- case SDL_SYSTEM_CURSOR_WAITARROW:
- cursor_name = "progress";
- break;
- case SDL_SYSTEM_CURSOR_SIZENWSE:
- cursor_name = "nwse-resize";
- break;
- case SDL_SYSTEM_CURSOR_SIZENESW:
- cursor_name = "nesw-resize";
- break;
- case SDL_SYSTEM_CURSOR_SIZEWE:
- cursor_name = "ew-resize";
- break;
- case SDL_SYSTEM_CURSOR_SIZENS:
- cursor_name = "ns-resize";
- break;
- case SDL_SYSTEM_CURSOR_SIZEALL:
- break;
- case SDL_SYSTEM_CURSOR_NO:
- cursor_name = "not-allowed";
- break;
- case SDL_SYSTEM_CURSOR_HAND:
- cursor_name = "pointer";
- break;
- default:
- SDL_assert(0);
- return NULL;
- }
-
- cursor = (SDL_Cursor *) SDL_calloc(1, sizeof(*cursor));
- if (!cursor) {
- SDL_OutOfMemory();
- return NULL;
- }
- curdata = (Emscripten_CursorData *) SDL_calloc(1, sizeof(*curdata));
- if (!curdata) {
- SDL_OutOfMemory();
- SDL_free(cursor);
- return NULL;
- }
-
- curdata->system_cursor = cursor_name;
- cursor->driverdata = curdata;
-
- return cursor;
-}
-
-static void
-Emscripten_FreeCursor(SDL_Cursor* cursor)
-{
- Emscripten_CursorData *curdata;
- if (cursor) {
- curdata = (Emscripten_CursorData *) cursor->driverdata;
-
- if (curdata != NULL) {
- SDL_free(cursor->driverdata);
- }
-
- SDL_free(cursor);
- }
-}
-
-static int
-Emscripten_ShowCursor(SDL_Cursor* cursor)
-{
- Emscripten_CursorData *curdata;
- if (SDL_GetMouseFocus() != NULL) {
- if(cursor && cursor->driverdata) {
- curdata = (Emscripten_CursorData *) cursor->driverdata;
-
- if(curdata->system_cursor) {
- EM_ASM_INT({
- if (Module['canvas']) {
- Module['canvas'].style['cursor'] = Module['Pointer_stringify']($0);
- }
- return 0;
- }, curdata->system_cursor);
- }
- }
- else {
- EM_ASM(
- if (Module['canvas']) {
- Module['canvas'].style['cursor'] = 'none';
- }
- );
- }
- }
- return 0;
-}
-
-static void
-Emscripten_WarpMouse(SDL_Window* window, int x, int y)
-{
- SDL_Unsupported();
-}
-
-static int
-Emscripten_SetRelativeMouseMode(SDL_bool enabled)
-{
- /* TODO: pointer lock isn't actually enabled yet */
- if(enabled) {
- if(emscripten_request_pointerlock(NULL, 1) >= EMSCRIPTEN_RESULT_SUCCESS) {
- return 0;
- }
- } else {
- if(emscripten_exit_pointerlock() >= EMSCRIPTEN_RESULT_SUCCESS) {
- return 0;
- }
- }
- return -1;
-}
-
-void
-Emscripten_InitMouse()
-{
- SDL_Mouse* mouse = SDL_GetMouse();
-
-/*
- mouse->CreateCursor = Emscripten_CreateCursor;
-*/
- mouse->ShowCursor = Emscripten_ShowCursor;
- mouse->FreeCursor = Emscripten_FreeCursor;
- mouse->WarpMouse = Emscripten_WarpMouse;
- mouse->CreateSystemCursor = Emscripten_CreateSystemCursor;
- mouse->SetRelativeMouseMode = Emscripten_SetRelativeMouseMode;
-
- SDL_SetDefaultCursor(Emscripten_CreateDefaultCursor());
-}
-
-void
-Emscripten_FiniMouse()
-{
- SDL_Mouse* mouse = SDL_GetMouse();
-
- Emscripten_FreeCursor(mouse->def_cursor);
- mouse->def_cursor = NULL;
-
- mouse->CreateCursor = NULL;
- mouse->ShowCursor = NULL;
- mouse->FreeCursor = NULL;
- mouse->WarpMouse = NULL;
- mouse->CreateSystemCursor = NULL;
- mouse->SetRelativeMouseMode = NULL;
-}
-
-#endif /* SDL_VIDEO_DRIVER_EMSCRIPTEN */
-
-/* vi: set ts=4 sw=4 expandtab: */
-
diff --git a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenmouse.h b/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenmouse.h
deleted file mode 100644
index 76ea849ede8..00000000000
--- a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenmouse.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-
-
-#ifndef _SDL_emscriptenmouse_h
-#define _SDL_emscriptenmouse_h
-
-typedef struct _Emscripten_CursorData
-{
- const char *system_cursor;
-} Emscripten_CursorData;
-
-extern void
-Emscripten_InitMouse();
-
-extern void
-Emscripten_FiniMouse();
-
-#endif /* _SDL_emscriptenmouse_h */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenopengles.c b/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenopengles.c
deleted file mode 100644
index 12a37c60481..00000000000
--- a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenopengles.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#if SDL_VIDEO_DRIVER_EMSCRIPTEN && SDL_VIDEO_OPENGL_EGL
-
-#include <emscripten/emscripten.h>
-#include <GLES2/gl2.h>
-
-#include "SDL_emscriptenvideo.h"
-#include "SDL_emscriptenopengles.h"
-
-#define LOAD_FUNC(NAME) _this->egl_data->NAME = NAME;
-
-/* EGL implementation of SDL OpenGL support */
-
-int
-Emscripten_GLES_LoadLibrary(_THIS, const char *path) {
- /*we can't load EGL dynamically*/
- _this->egl_data = (struct SDL_EGL_VideoData *) SDL_calloc(1, sizeof(SDL_EGL_VideoData));
- if (!_this->egl_data) {
- return SDL_OutOfMemory();
- }
-
- LOAD_FUNC(eglGetDisplay);
- LOAD_FUNC(eglInitialize);
- LOAD_FUNC(eglTerminate);
- LOAD_FUNC(eglGetProcAddress);
- LOAD_FUNC(eglChooseConfig);
- LOAD_FUNC(eglGetConfigAttrib);
- LOAD_FUNC(eglCreateContext);
- LOAD_FUNC(eglDestroyContext);
- LOAD_FUNC(eglCreateWindowSurface);
- LOAD_FUNC(eglDestroySurface);
- LOAD_FUNC(eglMakeCurrent);
- LOAD_FUNC(eglSwapBuffers);
- LOAD_FUNC(eglSwapInterval);
- LOAD_FUNC(eglWaitNative);
- LOAD_FUNC(eglWaitGL);
- LOAD_FUNC(eglBindAPI);
-
- _this->egl_data->egl_display = _this->egl_data->eglGetDisplay(EGL_DEFAULT_DISPLAY);
- if (!_this->egl_data->egl_display) {
- return SDL_SetError("Could not get EGL display");
- }
-
- if (_this->egl_data->eglInitialize(_this->egl_data->egl_display, NULL, NULL) != EGL_TRUE) {
- return SDL_SetError("Could not initialize EGL");
- }
-
- _this->gl_config.driver_loaded = 1;
-
- if (path) {
- SDL_strlcpy(_this->gl_config.driver_path, path, sizeof(_this->gl_config.driver_path) - 1);
- } else {
- *_this->gl_config.driver_path = '\0';
- }
-
- return 0;
-}
-
-void
-Emscripten_GLES_DeleteContext(_THIS, SDL_GLContext context)
-{
- /*
- WebGL contexts can't actually be deleted, so we need to reset it.
- ES2 renderer resets state on init anyway, clearing the canvas should be enough
- */
-
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
-
- SDL_EGL_DeleteContext(_this, context);
-}
-
-SDL_EGL_CreateContext_impl(Emscripten)
-SDL_EGL_SwapWindow_impl(Emscripten)
-SDL_EGL_MakeCurrent_impl(Emscripten)
-
-void
-Emscripten_GLES_GetDrawableSize(_THIS, SDL_Window * window, int * w, int * h)
-{
- SDL_WindowData *data;
- if (window->driverdata) {
- data = (SDL_WindowData *) window->driverdata;
-
- if (w) {
- *w = window->w * data->pixel_ratio;
- }
-
- if (h) {
- *h = window->h * data->pixel_ratio;
- }
- }
-}
-
-#endif /* SDL_VIDEO_DRIVER_EMSCRIPTEN && SDL_VIDEO_OPENGL_EGL */
-
-/* vi: set ts=4 sw=4 expandtab: */
-
diff --git a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenopengles.h b/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenopengles.h
deleted file mode 100644
index edafed82202..00000000000
--- a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenopengles.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#ifndef _SDL_emscriptenopengles_h
-#define _SDL_emscriptenopengles_h
-
-#if SDL_VIDEO_DRIVER_EMSCRIPTEN && SDL_VIDEO_OPENGL_EGL
-
-#include "../SDL_sysvideo.h"
-#include "../SDL_egl_c.h"
-
-/* OpenGLES functions */
-#define Emscripten_GLES_GetAttribute SDL_EGL_GetAttribute
-#define Emscripten_GLES_GetProcAddress SDL_EGL_GetProcAddress
-#define Emscripten_GLES_UnloadLibrary SDL_EGL_UnloadLibrary
-#define Emscripten_GLES_SetSwapInterval SDL_EGL_SetSwapInterval
-#define Emscripten_GLES_GetSwapInterval SDL_EGL_GetSwapInterval
-
-extern int Emscripten_GLES_LoadLibrary(_THIS, const char *path);
-extern void Emscripten_GLES_DeleteContext(_THIS, SDL_GLContext context);
-extern SDL_GLContext Emscripten_GLES_CreateContext(_THIS, SDL_Window * window);
-extern void Emscripten_GLES_SwapWindow(_THIS, SDL_Window * window);
-extern int Emscripten_GLES_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context);
-extern void Emscripten_GLES_GetDrawableSize(_THIS, SDL_Window * window, int * w, int * h);
-
-#endif /* SDL_VIDEO_DRIVER_EMSCRIPTEN && SDL_VIDEO_OPENGL_EGL */
-
-#endif /* _SDL_emscriptenopengles_h */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenvideo.c b/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenvideo.c
deleted file mode 100644
index 847bb4cf84d..00000000000
--- a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenvideo.c
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#if SDL_VIDEO_DRIVER_EMSCRIPTEN
-
-#include "SDL_video.h"
-#include "SDL_mouse.h"
-#include "SDL_hints.h"
-#include "../SDL_sysvideo.h"
-#include "../SDL_pixels_c.h"
-#include "../SDL_egl_c.h"
-#include "../../events/SDL_events_c.h"
-
-#include "SDL_emscriptenvideo.h"
-#include "SDL_emscriptenopengles.h"
-#include "SDL_emscriptenframebuffer.h"
-#include "SDL_emscriptenevents.h"
-#include "SDL_emscriptenmouse.h"
-
-#define EMSCRIPTENVID_DRIVER_NAME "emscripten"
-
-/* Initialization/Query functions */
-static int Emscripten_VideoInit(_THIS);
-static int Emscripten_SetDisplayMode(_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode);
-static void Emscripten_VideoQuit(_THIS);
-
-static int Emscripten_CreateWindow(_THIS, SDL_Window * window);
-static void Emscripten_SetWindowSize(_THIS, SDL_Window * window);
-static void Emscripten_DestroyWindow(_THIS, SDL_Window * window);
-static void Emscripten_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen);
-static void Emscripten_PumpEvents(_THIS);
-static void Emscripten_SetWindowTitle(_THIS, SDL_Window * window);
-
-
-/* Emscripten driver bootstrap functions */
-
-static int
-Emscripten_Available(void)
-{
- return (1);
-}
-
-static void
-Emscripten_DeleteDevice(SDL_VideoDevice * device)
-{
- SDL_free(device);
-}
-
-static SDL_VideoDevice *
-Emscripten_CreateDevice(int devindex)
-{
- SDL_VideoDevice *device;
-
- /* Initialize all variables that we clean on shutdown */
- device = (SDL_VideoDevice *) SDL_calloc(1, sizeof(SDL_VideoDevice));
- if (!device) {
- SDL_OutOfMemory();
- return (0);
- }
-
- /* Firefox sends blur event which would otherwise prevent full screen
- * when the user clicks to allow full screen.
- * See https://bugzilla.mozilla.org/show_bug.cgi?id=1144964
- */
- SDL_SetHint(SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, "0");
-
- /* Set the function pointers */
- device->VideoInit = Emscripten_VideoInit;
- device->VideoQuit = Emscripten_VideoQuit;
- device->SetDisplayMode = Emscripten_SetDisplayMode;
-
-
- device->PumpEvents = Emscripten_PumpEvents;
-
- device->CreateWindow = Emscripten_CreateWindow;
- /*device->CreateWindowFrom = Emscripten_CreateWindowFrom;*/
- device->SetWindowTitle = Emscripten_SetWindowTitle;
- /*device->SetWindowIcon = Emscripten_SetWindowIcon;
- device->SetWindowPosition = Emscripten_SetWindowPosition;*/
- device->SetWindowSize = Emscripten_SetWindowSize;
- /*device->ShowWindow = Emscripten_ShowWindow;
- device->HideWindow = Emscripten_HideWindow;
- device->RaiseWindow = Emscripten_RaiseWindow;
- device->MaximizeWindow = Emscripten_MaximizeWindow;
- device->MinimizeWindow = Emscripten_MinimizeWindow;
- device->RestoreWindow = Emscripten_RestoreWindow;
- device->SetWindowGrab = Emscripten_SetWindowGrab;*/
- device->DestroyWindow = Emscripten_DestroyWindow;
- device->SetWindowFullscreen = Emscripten_SetWindowFullscreen;
-
- device->CreateWindowFramebuffer = Emscripten_CreateWindowFramebuffer;
- device->UpdateWindowFramebuffer = Emscripten_UpdateWindowFramebuffer;
- device->DestroyWindowFramebuffer = Emscripten_DestroyWindowFramebuffer;
-
- device->GL_LoadLibrary = Emscripten_GLES_LoadLibrary;
- device->GL_GetProcAddress = Emscripten_GLES_GetProcAddress;
- device->GL_UnloadLibrary = Emscripten_GLES_UnloadLibrary;
- device->GL_CreateContext = Emscripten_GLES_CreateContext;
- device->GL_MakeCurrent = Emscripten_GLES_MakeCurrent;
- device->GL_SetSwapInterval = Emscripten_GLES_SetSwapInterval;
- device->GL_GetSwapInterval = Emscripten_GLES_GetSwapInterval;
- device->GL_SwapWindow = Emscripten_GLES_SwapWindow;
- device->GL_DeleteContext = Emscripten_GLES_DeleteContext;
- device->GL_GetDrawableSize = Emscripten_GLES_GetDrawableSize;
-
- device->free = Emscripten_DeleteDevice;
-
- return device;
-}
-
-VideoBootStrap Emscripten_bootstrap = {
- EMSCRIPTENVID_DRIVER_NAME, "SDL emscripten video driver",
- Emscripten_Available, Emscripten_CreateDevice
-};
-
-
-int
-Emscripten_VideoInit(_THIS)
-{
- SDL_DisplayMode mode;
-
- /* Use a fake 32-bpp desktop mode */
- mode.format = SDL_PIXELFORMAT_RGB888;
-
- mode.w = EM_ASM_INT_V({
- return screen.width;
- });
-
- mode.h = EM_ASM_INT_V({
- return screen.height;
- });
-
- mode.refresh_rate = 0;
- mode.driverdata = NULL;
- if (SDL_AddBasicVideoDisplay(&mode) < 0) {
- return -1;
- }
-
- SDL_zero(mode);
- SDL_AddDisplayMode(&_this->displays[0], &mode);
-
- Emscripten_InitMouse();
-
- /* We're done! */
- return 0;
-}
-
-static int
-Emscripten_SetDisplayMode(_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode)
-{
- /* can't do this */
- return 0;
-}
-
-static void
-Emscripten_VideoQuit(_THIS)
-{
- Emscripten_FiniMouse();
-}
-
-static void
-Emscripten_PumpEvents(_THIS)
-{
- /* do nothing. */
-}
-
-static int
-Emscripten_CreateWindow(_THIS, SDL_Window * window)
-{
- SDL_WindowData *wdata;
- double scaled_w, scaled_h;
- double css_w, css_h;
-
- /* Allocate window internal data */
- wdata = (SDL_WindowData *) SDL_calloc(1, sizeof(SDL_WindowData));
- if (wdata == NULL) {
- return SDL_OutOfMemory();
- }
-
- if (window->flags & SDL_WINDOW_ALLOW_HIGHDPI) {
- wdata->pixel_ratio = emscripten_get_device_pixel_ratio();
- } else {
- wdata->pixel_ratio = 1.0f;
- }
-
- scaled_w = SDL_floor(window->w * wdata->pixel_ratio);
- scaled_h = SDL_floor(window->h * wdata->pixel_ratio);
-
- emscripten_set_canvas_size(scaled_w, scaled_h);
-
- emscripten_get_element_css_size(NULL, &css_w, &css_h);
-
- wdata->external_size = SDL_floor(css_w) != scaled_w || SDL_floor(css_h) != scaled_h;
-
- if ((window->flags & SDL_WINDOW_RESIZABLE) && wdata->external_size) {
- /* external css has resized us */
- scaled_w = css_w * wdata->pixel_ratio;
- scaled_h = css_h * wdata->pixel_ratio;
-
- emscripten_set_canvas_size(scaled_w, scaled_h);
- SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, css_w, css_h);
- }
-
- /* if the size is not being controlled by css, we need to scale down for hidpi */
- if (!wdata->external_size) {
- if (wdata->pixel_ratio != 1.0f) {
- /*scale canvas down*/
- emscripten_set_element_css_size(NULL, window->w, window->h);
- }
- }
-
- if (window->flags & SDL_WINDOW_OPENGL) {
- if (!_this->egl_data) {
- if (SDL_GL_LoadLibrary(NULL) < 0) {
- return -1;
- }
- }
- wdata->egl_surface = SDL_EGL_CreateSurface(_this, 0);
-
- if (wdata->egl_surface == EGL_NO_SURFACE) {
- return SDL_SetError("Could not create GLES window surface");
- }
- }
-
- wdata->window = window;
-
- /* Setup driver data for this window */
- window->driverdata = wdata;
-
- /* One window, it always has focus */
- SDL_SetMouseFocus(window);
- SDL_SetKeyboardFocus(window);
-
- Emscripten_RegisterEventHandlers(wdata);
-
- /* Window has been successfully created */
- return 0;
-}
-
-static void Emscripten_SetWindowSize(_THIS, SDL_Window * window)
-{
- SDL_WindowData *data;
-
- if (window->driverdata) {
- data = (SDL_WindowData *) window->driverdata;
- /* update pixel ratio */
- data->pixel_ratio = emscripten_get_device_pixel_ratio();
- emscripten_set_canvas_size(window->w * data->pixel_ratio, window->h * data->pixel_ratio);
-
- /*scale canvas down*/
- if (!data->external_size && data->pixel_ratio != 1.0f) {
- emscripten_set_element_css_size(NULL, window->w, window->h);
- }
- }
-}
-
-static void
-Emscripten_DestroyWindow(_THIS, SDL_Window * window)
-{
- SDL_WindowData *data;
-
- if(window->driverdata) {
- data = (SDL_WindowData *) window->driverdata;
-
- Emscripten_UnregisterEventHandlers(data);
- if (data->egl_surface != EGL_NO_SURFACE) {
- SDL_EGL_DestroySurface(_this, data->egl_surface);
- data->egl_surface = EGL_NO_SURFACE;
- }
- SDL_free(window->driverdata);
- window->driverdata = NULL;
- }
-}
-
-static void
-Emscripten_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display, SDL_bool fullscreen)
-{
- SDL_WindowData *data;
- if(window->driverdata) {
- data = (SDL_WindowData *) window->driverdata;
-
- if(fullscreen) {
- EmscriptenFullscreenStrategy strategy;
- SDL_bool is_desktop_fullscreen = (window->flags & SDL_WINDOW_FULLSCREEN_DESKTOP) == SDL_WINDOW_FULLSCREEN_DESKTOP;
- int res;
-
- strategy.scaleMode = is_desktop_fullscreen ? EMSCRIPTEN_FULLSCREEN_SCALE_STRETCH : EMSCRIPTEN_FULLSCREEN_SCALE_ASPECT;
-
- if(!is_desktop_fullscreen) {
- strategy.canvasResolutionScaleMode = EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_NONE;
- } else if(window->flags & SDL_WINDOW_ALLOW_HIGHDPI) {
- strategy.canvasResolutionScaleMode = EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_HIDEF;
- } else {
- strategy.canvasResolutionScaleMode = EMSCRIPTEN_FULLSCREEN_CANVAS_SCALE_STDDEF;
- }
-
- strategy.filteringMode = EMSCRIPTEN_FULLSCREEN_FILTERING_DEFAULT;
-
- strategy.canvasResizedCallback = Emscripten_HandleCanvasResize;
- strategy.canvasResizedCallbackUserData = data;
-
- data->requested_fullscreen_mode = window->flags & (SDL_WINDOW_FULLSCREEN_DESKTOP | SDL_WINDOW_FULLSCREEN);
- data->fullscreen_resize = is_desktop_fullscreen;
-
- res = emscripten_request_fullscreen_strategy(NULL, 1, &strategy);
- if(res != EMSCRIPTEN_RESULT_SUCCESS && res != EMSCRIPTEN_RESULT_DEFERRED) {
- /* unset flags, fullscreen failed */
- window->flags &= ~(SDL_WINDOW_FULLSCREEN_DESKTOP | SDL_WINDOW_FULLSCREEN);
- }
- }
- else
- emscripten_exit_fullscreen();
- }
-}
-
-static void
-Emscripten_SetWindowTitle(_THIS, SDL_Window * window) {
- EM_ASM_INT({
- if (typeof Module['setWindowTitle'] !== 'undefined') {
- Module['setWindowTitle'](Module['Pointer_stringify']($0));
- }
- return 0;
- }, window->title);
-}
-
-#endif /* SDL_VIDEO_DRIVER_EMSCRIPTEN */
-
-/* vi: set ts=4 sw=4 expandtab: */
diff --git a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenvideo.h b/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenvideo.h
deleted file mode 100644
index 7618ab6cc7d..00000000000
--- a/3rdparty/SDL2/src/video/emscripten/SDL_emscriptenvideo.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- Simple DirectMedia Layer
- Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-*/
-#include "../../SDL_internal.h"
-
-#ifndef _SDL_emscriptenvideo_h
-#define _SDL_emscriptenvideo_h
-
-#include "../SDL_sysvideo.h"
-#include "../../events/SDL_touch_c.h"
-#include <emscripten/emscripten.h>
-#include <emscripten/html5.h>
-
-#include <EGL/egl.h>
-
-typedef struct SDL_WindowData
-{
-#if SDL_VIDEO_OPENGL_EGL
- EGLSurface egl_surface;
-#endif
- SDL_Window *window;
- SDL_Surface *surface;
-
- float pixel_ratio;
-
- SDL_bool external_size;
-
- int requested_fullscreen_mode;
- SDL_bool fullscreen_resize;
-
- SDL_bool finger_touching; /* for mapping touch events to mice */
- SDL_FingerID first_finger;
-} SDL_WindowData;
-
-#endif /* _SDL_emscriptenvideo_h */
-
-/* vi: set ts=4 sw=4 expandtab: */