Skip to content

Commit cb40f59

Browse files
authored
[wasm64] Fix window system/graphics JS libraries (#20276)
- update dynamic call signatures to `p` where the parameter type is a pointer. - proxied events needs additional work.
1 parent 1e645ed commit cb40f59

10 files changed

+92
-57
lines changed

ChangeLog.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ See docs/process.md for more on how version tagging works.
2020

2121
3.1.47 (in development)
2222
-----------------------
23+
- The egl, html5, sdl and webgpu libraries now support basic functionality with
24+
`-sMEMORY64`. (#20276)
2325
- Value types in `emscripten/html5.h` that correspond the WebIDL `long` type are
2426
now represented as `int` rather than `long` types so that they are 32-bit wide
2527
on both wasm32 and wasm64. (#20290)

emscripten.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -892,6 +892,7 @@ def create_pointer_conversion_wrappers(metadata):
892892
'stackAlloc': 'pp',
893893
'emscripten_builtin_malloc': 'pp',
894894
'malloc': 'pp',
895+
'memalign': 'ppp',
895896
'__getTypeName': 'pp',
896897
'setThrew': '_p',
897898
'free': '_p',

src/library_browser.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1044,7 +1044,7 @@ var LibraryBrowser = {
10441044
// Runs natively in pthread, no __proxy needed.
10451045
emscripten_set_main_loop_arg__deps: ['$setMainLoop'],
10461046
emscripten_set_main_loop_arg: (func, arg, fps, simulateInfiniteLoop) => {
1047-
var browserIterationFunc = () => {{{ makeDynCall('vi', 'func') }}}(arg);
1047+
var browserIterationFunc = () => {{{ makeDynCall('vp', 'func') }}}(arg);
10481048
setMainLoop(browserIterationFunc, fps, simulateInfiniteLoop, arg);
10491049
},
10501050

@@ -1067,15 +1067,15 @@ var LibraryBrowser = {
10671067
// Runs natively in pthread, no __proxy needed.
10681068
_emscripten_push_main_loop_blocker: (func, arg, name) => {
10691069
Browser.mainLoop.queue.push({ func: () => {
1070-
{{{ makeDynCall('vi', 'func') }}}(arg);
1070+
{{{ makeDynCall('vp', 'func') }}}(arg);
10711071
}, name: UTF8ToString(name), counted: true });
10721072
Browser.mainLoop.updateStatus();
10731073
},
10741074

10751075
// Runs natively in pthread, no __proxy needed.
10761076
_emscripten_push_uncounted_main_loop_blocker: (func, arg, name) => {
10771077
Browser.mainLoop.queue.push({ func: () => {
1078-
{{{ makeDynCall('vi', 'func') }}}(arg);
1078+
{{{ makeDynCall('vp', 'func') }}}(arg);
10791079
}, name: UTF8ToString(name), counted: false });
10801080
Browser.mainLoop.updateStatus();
10811081
},

src/library_egl.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ var LibraryEGL = {
8181
{{{ makeSetValue('numConfigs', '0', '1', 'i32') }}}; // Total number of supported configs: 1.
8282
}
8383
if (config && config_size > 0) {
84-
{{{ makeSetValue('config', '0', '62002' /* Magic ID for the only EGLConfig supported by Emscripten */, 'i32') }}};
84+
{{{ makeSetValue('config', '0', '62002' /* Magic ID for the only EGLConfig supported by Emscripten */, '*') }}};
8585
}
8686

8787
EGL.setErrorCode(0x3000 /* EGL_SUCCESS */);

src/library_eventloop.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ LibraryJSEventLoop = {
127127
var n = t + msecs;
128128
{{{ runtimeKeepalivePop() }}}
129129
callUserCallback(function() {
130-
if ({{{ makeDynCall('idi', 'cb') }}}(t, userData)) {
130+
if ({{{ makeDynCall('idp', 'cb') }}}(t, userData)) {
131131
// Save a little bit of code space: modern browsers should treat
132132
// negative setTimeout as timeout of 0
133133
// (https://stackoverflow.com/questions/8430966/is-calling-settimeout-with-a-negative-delay-ok)
@@ -145,7 +145,7 @@ LibraryJSEventLoop = {
145145
{{{ runtimeKeepalivePush() }}}
146146
return setInterval(function() {
147147
callUserCallback(function() {
148-
{{{ makeDynCall('vi', 'cb') }}}(userData)
148+
{{{ makeDynCall('vp', 'cb') }}}(userData)
149149
});
150150
}, msecs);
151151
},

src/library_html5.js

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,7 @@ var LibraryHTML5 = {
209209
},
210210

211211
#if PTHREADS
212+
// TODO: Support proxied events for MEMORY64
212213
queueEventHandlerOnThread_iiii(targetThread, eventHandlerFunc, eventTypeId, eventData, userData) {
213214
withStackSave(() => {
214215
var varargs = stackAlloc(12);
@@ -287,7 +288,7 @@ var LibraryHTML5 = {
287288
#endif
288289
{{{ makeSetValue('keyEventData', C_STRUCTS.EmscriptenKeyboardEvent.timestamp, 'e.timeStamp', 'double') }}};
289290

290-
var idx = keyEventData >> 2;
291+
var idx ={{{ getHeapOffset('keyEventData', 'i32') }}};
291292

292293
HEAP32[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.location / 4}}}] = e.location;
293294
HEAP32[idx + {{{ C_STRUCTS.EmscriptenKeyboardEvent.ctrlKey / 4}}}] = e.ctrlKey;
@@ -307,7 +308,7 @@ var LibraryHTML5 = {
307308
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, keyEventData, userData);
308309
else
309310
#endif
310-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, keyEventData, userData)) e.preventDefault();
311+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, keyEventData, userData)) e.preventDefault();
311312
};
312313

313314
var eventHandler = {
@@ -461,7 +462,7 @@ var LibraryHTML5 = {
461462
assert(eventStruct % 4 == 0);
462463
#endif
463464
{{{ makeSetValue('eventStruct', C_STRUCTS.EmscriptenMouseEvent.timestamp, 'e.timeStamp', 'double') }}};
464-
var idx = eventStruct >> 2;
465+
var idx = {{{ getHeapOffset('eventStruct', 'i32') }}};
465466
HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.screenX / 4 }}}] = e.screenX;
466467
HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.screenY / 4 }}}] = e.screenY;
467468
HEAP32[idx + {{{ C_STRUCTS.EmscriptenMouseEvent.clientX / 4 }}}] = e.clientX;
@@ -547,7 +548,7 @@ var LibraryHTML5 = {
547548
JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, mouseEventData, userData);
548549
} else
549550
#endif
550-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, JSEvents.mouseEvent, userData)) e.preventDefault();
551+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, JSEvents.mouseEvent, userData)) e.preventDefault();
551552
};
552553

553554
var eventHandler = {
@@ -646,7 +647,7 @@ var LibraryHTML5 = {
646647
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, wheelEvent, userData);
647648
else
648649
#endif
649-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, wheelEvent, userData)) e.preventDefault();
650+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, wheelEvent, userData)) e.preventDefault();
650651
};
651652
#if MIN_IE_VERSION <= 8 || MIN_SAFARI_VERSION < 60100 // Browsers that do not support https://caniuse.com/#feat=mdn-api_wheelevent
652653
// The 'mousewheel' event as implemented in Safari 6.0.5
@@ -658,7 +659,7 @@ var LibraryHTML5 = {
658659
{{{ makeSetValue('JSEvents.wheelEvent', C_STRUCTS.EmscriptenWheelEvent.deltaY, 'wheelDeltaY', 'double') }}};
659660
{{{ makeSetValue('JSEvents.wheelEvent', C_STRUCTS.EmscriptenWheelEvent.deltaZ, '0 /* Not available */', 'double') }}};
660661
{{{ makeSetValue('JSEvents.wheelEvent', C_STRUCTS.EmscriptenWheelEvent.deltaMode, '0 /* DOM_DELTA_PIXEL */', 'i32') }}};
661-
var shouldCancel = {{{ makeDynCall('iiii', 'callbackfunc') }}}( eventTypeId, JSEvents.wheelEvent, userData);
662+
var shouldCancel = {{{ makeDynCall('iipp', 'callbackfunc') }}}( eventTypeId, JSEvents.wheelEvent, userData);
662663
if (shouldCancel) {
663664
e.preventDefault();
664665
}
@@ -747,7 +748,7 @@ var LibraryHTML5 = {
747748
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, uiEvent, userData);
748749
else
749750
#endif
750-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, uiEvent, userData)) e.preventDefault();
751+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, uiEvent, userData)) e.preventDefault();
751752
};
752753

753754
var eventHandler = {
@@ -793,7 +794,7 @@ var LibraryHTML5 = {
793794
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, focusEvent, userData);
794795
else
795796
#endif
796-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, focusEvent, userData)) e.preventDefault();
797+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, focusEvent, userData)) e.preventDefault();
797798
};
798799

799800
var eventHandler = {
@@ -855,7 +856,7 @@ var LibraryHTML5 = {
855856
JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, deviceOrientationEvent, userData);
856857
} else
857858
#endif
858-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, JSEvents.deviceOrientationEvent, userData)) e.preventDefault();
859+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, JSEvents.deviceOrientationEvent, userData)) e.preventDefault();
859860
};
860861

861862
var eventHandler = {
@@ -925,7 +926,7 @@ var LibraryHTML5 = {
925926
JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, deviceMotionEvent, userData);
926927
} else
927928
#endif
928-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, JSEvents.deviceMotionEvent, userData)) e.preventDefault();
929+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, JSEvents.deviceMotionEvent, userData)) e.preventDefault();
929930
};
930931

931932
var eventHandler = {
@@ -995,7 +996,7 @@ var LibraryHTML5 = {
995996
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, orientationChangeEvent, userData);
996997
else
997998
#endif
998-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, orientationChangeEvent, userData)) e.preventDefault();
999+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, orientationChangeEvent, userData)) e.preventDefault();
9991000
};
10001001

10011002
if (eventTypeString == "orientationchange" && screen.mozOrientation !== undefined) {
@@ -1114,7 +1115,7 @@ var LibraryHTML5 = {
11141115
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, fullscreenChangeEvent, userData);
11151116
else
11161117
#endif
1117-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, fullscreenChangeEvent, userData)) e.preventDefault();
1118+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, fullscreenChangeEvent, userData)) e.preventDefault();
11181119
};
11191120

11201121
var eventHandler = {
@@ -1197,7 +1198,7 @@ var LibraryHTML5 = {
11971198
if (strategy.canvasResizedCallbackTargetThread) JSEvents.queueEventHandlerOnThread_iiii(strategy.canvasResizedCallbackTargetThread, strategy.canvasResizedCallback, {{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, strategy.canvasResizedCallbackUserData);
11981199
else
11991200
#endif
1200-
{{{ makeDynCall('iiii', 'strategy.canvasResizedCallback') }}}({{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, strategy.canvasResizedCallbackUserData);
1201+
{{{ makeDynCall('iipp', 'strategy.canvasResizedCallback') }}}({{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, strategy.canvasResizedCallbackUserData);
12011202
}
12021203

12031204
return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}};
@@ -1349,7 +1350,7 @@ var LibraryHTML5 = {
13491350
if (currentFullscreenStrategy.canvasResizedCallbackTargetThread) JSEvents.queueEventHandlerOnThread_iiii(currentFullscreenStrategy.canvasResizedCallbackTargetThread, currentFullscreenStrategy.canvasResizedCallback, {{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, currentFullscreenStrategy.canvasResizedCallbackUserData);
13501351
else
13511352
#endif
1352-
{{{ makeDynCall('iiii', 'currentFullscreenStrategy.canvasResizedCallback') }}}({{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, currentFullscreenStrategy.canvasResizedCallbackUserData);
1353+
{{{ makeDynCall('iipp', 'currentFullscreenStrategy.canvasResizedCallback') }}}({{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, currentFullscreenStrategy.canvasResizedCallbackUserData);
13531354
}
13541355
}
13551356
}
@@ -1477,7 +1478,7 @@ var LibraryHTML5 = {
14771478
if (currentFullscreenStrategy.canvasResizedCallbackTargetThread) JSEvents.queueEventHandlerOnThread_iiii(currentFullscreenStrategy.canvasResizedCallbackTargetThread, currentFullscreenStrategy.canvasResizedCallback, {{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, currentFullscreenStrategy.canvasResizedCallbackUserData);
14781479
else
14791480
#endif
1480-
{{{ makeDynCall('iiii', 'currentFullscreenStrategy.canvasResizedCallback') }}}({{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, currentFullscreenStrategy.canvasResizedCallbackUserData);
1481+
{{{ makeDynCall('iipp', 'currentFullscreenStrategy.canvasResizedCallback') }}}({{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, currentFullscreenStrategy.canvasResizedCallbackUserData);
14811482
}
14821483
},
14831484

@@ -1597,7 +1598,7 @@ var LibraryHTML5 = {
15971598
if (strategy.canvasResizedCallbackTargetThread) JSEvents.queueEventHandlerOnThread_iiii(strategy.canvasResizedCallbackTargetThread, strategy.canvasResizedCallback, {{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, strategy.canvasResizedCallbackUserData);
15981599
else
15991600
#endif
1600-
{{{ makeDynCall('iiii', 'strategy.canvasResizedCallback') }}}({{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, strategy.canvasResizedCallbackUserData);
1601+
{{{ makeDynCall('iipp', 'strategy.canvasResizedCallback') }}}({{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, strategy.canvasResizedCallbackUserData);
16011602
}
16021603
currentFullscreenStrategy = 0;
16031604
}
@@ -1611,7 +1612,7 @@ var LibraryHTML5 = {
16111612
if (strategy.canvasResizedCallbackTargetThread) JSEvents.queueEventHandlerOnThread_iiii(strategy.canvasResizedCallbackTargetThread, strategy.canvasResizedCallback, {{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, strategy.canvasResizedCallbackUserData);
16121613
else
16131614
#endif
1614-
{{{ makeDynCall('iiii', 'strategy.canvasResizedCallback') }}}({{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, strategy.canvasResizedCallbackUserData);
1615+
{{{ makeDynCall('iipp', 'strategy.canvasResizedCallback') }}}({{{ cDefs.EMSCRIPTEN_EVENT_CANVASRESIZED }}}, 0, strategy.canvasResizedCallbackUserData);
16151616
}
16161617

16171618
return {{{ cDefs.EMSCRIPTEN_RESULT_SUCCESS }}};
@@ -1691,7 +1692,7 @@ var LibraryHTML5 = {
16911692
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, pointerlockChangeEvent, userData);
16921693
else
16931694
#endif
1694-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, pointerlockChangeEvent, userData)) e.preventDefault();
1695+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, pointerlockChangeEvent, userData)) e.preventDefault();
16951696
};
16961697

16971698
var eventHandler = {
@@ -1736,7 +1737,7 @@ var LibraryHTML5 = {
17361737
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, 0, userData);
17371738
else
17381739
#endif
1739-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, 0, userData)) e.preventDefault();
1740+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, 0, userData)) e.preventDefault();
17401741
};
17411742

17421743
var eventHandler = {
@@ -1936,7 +1937,7 @@ var LibraryHTML5 = {
19361937
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, visibilityChangeEvent, userData);
19371938
else
19381939
#endif
1939-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, visibilityChangeEvent, userData)) e.preventDefault();
1940+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, visibilityChangeEvent, userData)) e.preventDefault();
19401941
};
19411942

19421943
var eventHandler = {
@@ -2012,7 +2013,7 @@ var LibraryHTML5 = {
20122013
var touchEvent = JSEvents.touchEvent;
20132014
#endif
20142015
{{{ makeSetValue('touchEvent', C_STRUCTS.EmscriptenTouchEvent.timestamp, 'e.timeStamp', 'double') }}};
2015-
var idx = touchEvent>>2; // Pre-shift the ptr to index to HEAP32 to save code size
2016+
var idx ={{{ getHeapOffset('touchEvent', 'i32') }}};// Pre-shift the ptr to index to HEAP32 to save code size
20162017
HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchEvent.ctrlKey / 4}}}] = e.ctrlKey;
20172018
HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchEvent.shiftKey / 4}}}] = e.shiftKey;
20182019
HEAP32[idx + {{{ C_STRUCTS.EmscriptenTouchEvent.altKey / 4}}}] = e.altKey;
@@ -2053,7 +2054,7 @@ var LibraryHTML5 = {
20532054
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, touchEvent, userData);
20542055
else
20552056
#endif
2056-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, touchEvent, userData)) e.preventDefault();
2057+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, touchEvent, userData)) e.preventDefault();
20572058
};
20582059

20592060
var eventHandler = {
@@ -2140,7 +2141,7 @@ var LibraryHTML5 = {
21402141
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, gamepadEvent, userData);
21412142
else
21422143
#endif
2143-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, gamepadEvent, userData)) e.preventDefault();
2144+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, gamepadEvent, userData)) e.preventDefault();
21442145
};
21452146

21462147
var eventHandler = {
@@ -2212,7 +2213,7 @@ var LibraryHTML5 = {
22122213
$registerBeforeUnloadEventCallback: (target, userData, useCapture, callbackfunc, eventTypeId, eventTypeString) => {
22132214
var beforeUnloadEventHandlerFunc = (e = event) => {
22142215
// Note: This is always called on the main browser thread, since it needs synchronously return a value!
2215-
var confirmationMessage = {{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, 0, userData);
2216+
var confirmationMessage = {{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, 0, userData);
22162217

22172218
if (confirmationMessage) {
22182219
confirmationMessage = UTF8ToString(confirmationMessage);
@@ -2272,7 +2273,7 @@ var LibraryHTML5 = {
22722273
if (targetThread) JSEvents.queueEventHandlerOnThread_iiii(targetThread, callbackfunc, eventTypeId, batteryEvent, userData);
22732274
else
22742275
#endif
2275-
if ({{{ makeDynCall('iiii', 'callbackfunc') }}}(eventTypeId, batteryEvent, userData)) e.preventDefault();
2276+
if ({{{ makeDynCall('iipp', 'callbackfunc') }}}(eventTypeId, batteryEvent, userData)) e.preventDefault();
22762277
};
22772278

22782279
var eventHandler = {
@@ -2564,13 +2565,13 @@ var LibraryHTML5 = {
25642565
emscripten_html5_remove_all_event_listeners: () => JSEvents.removeAllEventListeners(),
25652566

25662567
emscripten_request_animation_frame: (cb, userData) =>
2567-
requestAnimationFrame((timeStamp) => {{{ makeDynCall('idi', 'cb') }}}(timeStamp, userData)),
2568+
requestAnimationFrame((timeStamp) => {{{ makeDynCall('idp', 'cb') }}}(timeStamp, userData)),
25682569

25692570
emscripten_cancel_animation_frame: (id) => cancelAnimationFrame(id),
25702571

25712572
emscripten_request_animation_frame_loop: (cb, userData) => {
25722573
function tick(timeStamp) {
2573-
if ({{{ makeDynCall('idi', 'cb') }}}(timeStamp, userData)) {
2574+
if ({{{ makeDynCall('idp', 'cb') }}}(timeStamp, userData)) {
25742575
requestAnimationFrame(tick);
25752576
}
25762577
}

src/library_sdl.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -871,7 +871,7 @@ var LibrarySDL = {
871871
if (!SDL.eventHandler) return;
872872

873873
while (SDL.pollEvent(SDL.eventHandlerTemp)) {
874-
{{{ makeDynCall('iii', 'SDL.eventHandler') }}}(SDL.eventHandlerContext, SDL.eventHandlerTemp);
874+
{{{ makeDynCall('ipp', 'SDL.eventHandler') }}}(SDL.eventHandlerContext, SDL.eventHandlerTemp);
875875
}
876876
},
877877

@@ -3525,7 +3525,7 @@ var LibrarySDL = {
35253525
SDL_AddTimer__deps: ['$safeSetTimeout'],
35263526
SDL_AddTimer: (interval, callback, param) =>
35273527
safeSetTimeout(
3528-
() => {{{ makeDynCall('iii', 'callback') }}}(interval, param),
3528+
() => {{{ makeDynCall('iip', 'callback') }}}(interval, param),
35293529
interval),
35303530

35313531
SDL_RemoveTimer__proxy: 'sync',

0 commit comments

Comments
 (0)