From c62269e11e32388dd5a256a892b8586b7afc11d2 Mon Sep 17 00:00:00 2001 From: scawful Date: Sat, 10 Aug 2024 12:26:40 -0400 Subject: [PATCH] optimize hover gesture recognizer ios --- src/app/core/platform/app_view_controller.h | 1 + src/ios/main.mm | 35 +++++---------------- 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/src/app/core/platform/app_view_controller.h b/src/app/core/platform/app_view_controller.h index a12e1cb4..dda350eb 100644 --- a/src/app/core/platform/app_view_controller.h +++ b/src/app/core/platform/app_view_controller.h @@ -11,6 +11,7 @@ #else @interface AppViewController : UIViewController @property(nonatomic) yaze::app::core::Controller *controller; +@property(nonatomic) UIHoverGestureRecognizer *hoverGestureRecognizer; @end #endif diff --git a/src/ios/main.mm b/src/ios/main.mm index bd2dc09c..3e368877 100644 --- a/src/ios/main.mm +++ b/src/ios/main.mm @@ -95,6 +95,10 @@ abort(); } _controller->SetupScreen(); + + _hoverGestureRecognizer = [[UIHoverGestureRecognizer alloc] initWithTarget:self action:@selector(hoverGesture:)]; + [self.view addGestureRecognizer:_hoverGestureRecognizer]; + return self; } @@ -196,9 +200,9 @@ } } io.AddMouseButtonEvent(0, hasActiveTouch); - - UIHoverGestureRecognizer *hoverGestureRecognizer = [[UIHoverGestureRecognizer alloc] initWithTarget:self action:@selector(hoverGesture:)]; - [self.view addGestureRecognizer:hoverGestureRecognizer]; + +} + - (void)hoverGesture:(UIHoverGestureRecognizer *)gesture { ImGuiIO &io = ImGui::GetIO(); io.AddMouseSourceEvent(ImGuiMouseSource_TouchScreen); @@ -343,34 +347,9 @@ //----------------------------------------------------------------------------------- #if TARGET_OS_OSX - int main(int argc, const char *argv[]) { return NSApplicationMain(argc, argv); } - #else -// int SDL_main(int argc, char*argv[]) { -// yaze::app::core::Controller controller; -// controller.OnEntry(); -// while (controller.IsActive()) { -// controller.OnInput(); -// if (auto status = controller.OnLoad(); !status.ok()) { -// std::cerr << status.message() << std::endl; -// break; -// } -// controller.DoRender(); -// } -// controller.OnExit(); -// -// return EXIT_SUCCESS; -// -// -// return 0; -// } -// int main(int argc, char *argv[]) -//{ -// return SDL_UIKitRunApp(argc, argv, SDL_main); -// } - int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));