From fc5c7be51a15f49a80ff00fdd9774eb889af994e Mon Sep 17 00:00:00 2001 From: VPeruS Date: Sat, 17 Jun 2017 17:30:01 +0300 Subject: [PATCH] Fix interop for wheel events --- src/OpenTK/Platform/MacOS/Cocoa/Cocoa.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/OpenTK/Platform/MacOS/Cocoa/Cocoa.cs b/src/OpenTK/Platform/MacOS/Cocoa/Cocoa.cs index ac6ae977..0732538a 100644 --- a/src/OpenTK/Platform/MacOS/Cocoa/Cocoa.cs +++ b/src/OpenTK/Platform/MacOS/Cocoa/Cocoa.cs @@ -138,13 +138,17 @@ namespace OpenTK.Platform.MacOS [DllImport(LibObjC, EntryPoint="objc_msgSend_fpret")] extern static float SendFloat_i386(IntPtr receiver, IntPtr selector); + // On x64 using selector that return CGFloat give you 64 bit == double [DllImport(LibObjC, EntryPoint="objc_msgSend")] - extern static float SendFloat_normal(IntPtr receiver, IntPtr selector); + extern static double SendFloat_x64(IntPtr receiver, IntPtr selector); + + [DllImport(LibObjC, EntryPoint="objc_msgSend")] + extern static float SendFloat_ios(IntPtr receiver, IntPtr selector); public static float SendFloat(IntPtr receiver, IntPtr selector) { #if IOS - return SendFloat_normal(receiver, selector); + return SendFloat_ios(receiver, selector); #else if (IntPtr.Size == 4) { @@ -152,7 +156,7 @@ namespace OpenTK.Platform.MacOS } else { - return SendFloat_normal(receiver, selector); + return (float)SendFloat_x64(receiver, selector); } #endif }