Added 2 finger camera pan, zoom, and rotate

This commit is contained in:
Yousef Khadadeh 2026-03-05 12:03:10 +03:00
parent ac911f3f87
commit 8b46c31bd7
10 changed files with 295 additions and 18 deletions

View file

@ -810,28 +810,17 @@ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) {
}
case SDL_EVENT_FINGER_DOWN: {
mS.m->update_scale_and_density();
mS.m->input.touch.isDown = true;
mS.m->input.mouse.leftDown = true;
if((std::chrono::steady_clock::now() - mS.m->input.touch.lastLeftClickTime) > std::chrono::milliseconds(300))
mS.m->input.touch.leftClicksSaved = 0;
mS.m->input.touch.leftClicksSaved++;
mS.m->input.mouse.leftClicks = mS.m->input.touch.leftClicksSaved;
mS.m->input.touch.lastLeftClickTime = std::chrono::steady_clock::now();
mS.m->input.mouse.set_pos({event->tfinger.x * mS.m->window.size.x() * mS.m->window.density, event->tfinger.y * mS.m->window.size.y() * mS.m->window.density});
mS.m->input.mouse.move = Vector2f{0.0f, 0.0f};
mS.m->input.backend_touch_finger_down_update(event->tfinger);
break;
}
case SDL_EVENT_FINGER_UP: {
mS.m->update_scale_and_density();
mS.m->input.touch.isDown = false;
mS.m->input.mouse.leftDown = false;
mS.m->input.mouse.set_pos({-1.0f, -1.0f});
mS.m->input.mouse.move = Vector2f{0.0f, 0.0f};
mS.m->input.backend_touch_finger_up_update(event->tfinger);
break;
}
case SDL_EVENT_FINGER_MOTION: {
mS.m->update_scale_and_density();
mS.m->input.mouse.set_pos({event->tfinger.x * mS.m->window.size.x() * mS.m->window.density, event->tfinger.y * mS.m->window.size.y() * mS.m->window.density});
mS.m->input.backend_touch_finger_motion_update(event->tfinger);
break;
}
case SDL_EVENT_DISPLAY_ORIENTATION: