early-access version 2281
This commit is contained in:
@@ -409,7 +409,22 @@ static EM_BOOL
|
||||
Emscripten_HandleWheel(int eventType, const EmscriptenWheelEvent *wheelEvent, void *userData)
|
||||
{
|
||||
SDL_WindowData *window_data = userData;
|
||||
SDL_SendMouseWheel(window_data->window, 0, (float)wheelEvent->deltaX, (float)-wheelEvent->deltaY, SDL_MOUSEWHEEL_NORMAL);
|
||||
|
||||
float deltaY = wheelEvent->deltaY;
|
||||
|
||||
switch (wheelEvent->deltaMode) {
|
||||
case DOM_DELTA_PIXEL:
|
||||
deltaY /= 100; /* 100 pixels make up a step */
|
||||
break;
|
||||
case DOM_DELTA_LINE:
|
||||
deltaY /= 3; /* 3 lines make up a step */
|
||||
break;
|
||||
case DOM_DELTA_PAGE:
|
||||
deltaY *= 80; /* A page makes up 80 steps */
|
||||
break;
|
||||
}
|
||||
|
||||
SDL_SendMouseWheel(window_data->window, 0, (float)wheelEvent->deltaX, -deltaY, SDL_MOUSEWHEEL_NORMAL);
|
||||
return SDL_GetEventState(SDL_MOUSEWHEEL) == SDL_ENABLE;
|
||||
}
|
||||
|
||||
@@ -607,9 +622,6 @@ Emscripten_HandleFullscreenChange(int eventType, const EmscriptenFullscreenChang
|
||||
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 request fullscreen*/
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -109,6 +109,7 @@ int Emscripten_UpdateWindowFramebuffer(_THIS, SDL_Window * window, const SDL_Rec
|
||||
if (SDL2.data32Data !== data) {
|
||||
SDL2.data32 = new Int32Array(data.buffer);
|
||||
SDL2.data8 = new Uint8Array(data.buffer);
|
||||
SDL2.data32Data = data;
|
||||
}
|
||||
var data32 = SDL2.data32;
|
||||
num = data32.length;
|
||||
@@ -118,7 +119,7 @@ int Emscripten_UpdateWindowFramebuffer(_THIS, SDL_Window * window, const SDL_Rec
|
||||
// }
|
||||
// the following code is faster though, because
|
||||
// .set() is almost free - easily 10x faster due to
|
||||
// native memcpy efficiencies, and the remaining loop
|
||||
// native SDL_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;
|
||||
@@ -156,14 +157,6 @@ int Emscripten_UpdateWindowFramebuffer(_THIS, SDL_Window * window, const SDL_Rec
|
||||
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);
|
||||
}*/
|
||||
|
||||
if (emscripten_has_asyncify() && SDL_GetHintBoolean(SDL_HINT_EMSCRIPTEN_ASYNCIFY, SDL_TRUE)) {
|
||||
/* give back control to browser for screen refresh */
|
||||
emscripten_sleep(0);
|
||||
|
@@ -137,14 +137,7 @@ Emscripten_VideoInit(_THIS)
|
||||
|
||||
/* 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;
|
||||
});
|
||||
emscripten_get_screen_size(&mode.w, &mode.h);
|
||||
|
||||
mode.refresh_rate = 0;
|
||||
mode.driverdata = NULL;
|
||||
@@ -359,12 +352,7 @@ Emscripten_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * di
|
||||
|
||||
static void
|
||||
Emscripten_SetWindowTitle(_THIS, SDL_Window * window) {
|
||||
EM_ASM_INT({
|
||||
if (typeof setWindowTitle !== 'undefined') {
|
||||
setWindowTitle(UTF8ToString($0));
|
||||
}
|
||||
return 0;
|
||||
}, window->title);
|
||||
emscripten_set_window_title(window->title);
|
||||
}
|
||||
|
||||
#endif /* SDL_VIDEO_DRIVER_EMSCRIPTEN */
|
||||
|
Reference in New Issue
Block a user