webp_js/*.html: fix canvas mapping

after:
24d7f9cb Switch code to SDL2.

fixes:
webp_wasm.js:1 Uncaught TypeError: Cannot read properties of null
    (reading 'addEventListener')
    at Object.registerOrRemoveHandler (webp_wasm.js:1:101330)
    at registerMouseEventCallback (webp_wasm.js:1:154227)
    at _emscripten_set_mousemove_callback_on_thread (webp_wasm.js:1:155015)
    ...

The SDL2 port forces the canvas id to '#canvas':
324df6865a/src/video/emscripten/SDL_emscriptenvideo.c (L210)

This change maps '#output_canvas' to this entry in specialHTMLTargets[]:
https://emscripten.org/docs/api_reference/html5.h.html

https://github.com/libsdl-org/SDL/issues/5260 &
https://github.com/emscripten-ports/SDL2/issues/130 may also be related.

Change-Id: I26f4aa22b9d68b0fc45b83edfe6fe074b59a82a7
Test: emscripten 3.1.16
This commit is contained in:
James Zern 2024-03-29 11:53:13 -07:00
parent e2c8f233ef
commit f88666eb47
2 changed files with 4 additions and 0 deletions

View File

@ -29,6 +29,8 @@ function decode(webp_data, canvas_id) {
// clear previous picture (if any) // clear previous picture (if any)
Module.canvas = canvas; Module.canvas = canvas;
canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height); canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height);
// Map this canvas to the default selector used by emscripten/SDL2.
specialHTMLTargets["#canvas"] = Module.canvas;
// decode and measure timing // decode and measure timing
var start = new Date(); var start = new Date();
var ret = WebpToCanvas(webp_data, webp_data.length); var ret = WebpToCanvas(webp_data, webp_data.length);

View File

@ -30,6 +30,8 @@ function decode(webp_data, canvas_id) {
// clear previous picture (if any) // clear previous picture (if any)
Module.canvas = canvas; Module.canvas = canvas;
canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height); canvas.getContext('2d').clearRect(0, 0, canvas.width, canvas.height);
// Map this canvas to the default selector used by emscripten/SDL2.
specialHTMLTargets["#canvas"] = Module.canvas;
// decode and measure timing // decode and measure timing
var start = new Date(); var start = new Date();
var ret = WebpToCanvas(webp_data, webp_data.length); var ret = WebpToCanvas(webp_data, webp_data.length);