emscripten: Fixes for data addresses above 2gb

This includes both wasm64 and wasm32 when addressing more than 2gb of memory.

Fixes: #9052

(Manually cherry-picked from 3deb07ea395373204462130c1e062bc1f71fe060.)
This commit is contained in:
Ryan C. Gordon
2024-10-08 17:41:18 -04:00
parent c34790f9f1
commit 02434cd293
4 changed files with 12 additions and 5 deletions

View File

@@ -88,7 +88,7 @@ bool Emscripten_UpdateWindowFramebuffer(SDL_VideoDevice *_this, SDL_Window *wind
SDL3.imageCtx = SDL3.ctx;
}
var data = SDL3.image.data;
var src = pixels >> 2;
var src = pixels / 4;
var dst = 0;
var num;

View File

@@ -94,7 +94,7 @@ static SDL_Cursor *Emscripten_CreateCursor(SDL_Surface *surface, int hot_x, int
var image = ctx.createImageData(w, h);
var data = image.data;
var src = pixels >> 2;
var src = pixels / 4;
var data32 = new Int32Array(data.buffer);
data32.set(HEAP32.subarray(src, src + data32.length));