* Support for Swift, added emulator keyboard
* fixed toggle key handling using magic number hack for now
* fixed keyboard transparency slider for now with suboptimal fix; add gesture recognizer to hide/show keyboard
* Support CocoaView extensions in Swift; move keyboard delegate impl and setup to swift extension
* moved keyboard view model creation out of EmulatorKeyboard
* implement key pressed delegate in swift extension
* added input method for directly sending RETROK_* codes to support a touchscreen keyboard; assign keyboard model delegates; updated keyboard layout (added F1-F12 keys); change shift, control and alt keys to be modifiers
* enable focus mode when custom keyboard is shown; enable/disable overlay when custom keyboard is toggled
* Specify -DHAVE_OPENGLES2 instead of -DHAVE_OPENGLES3 since glsym_es3.h does not compile in iOS 14.5
Fix tvOS build using compiler flags
* Create new project for iOS 13 deploy target; add check for deploy target to conditionally compile for new iOS 13 specific feature (custom keyboard)
* force disable core info caching for iOS, use opengl es2 for debug
* Add flag for iOS custom keyboard - 3-finger swipe up to show, 3-finger swipe down to hide
* use OpenGLES2 instead; using ES3 results in compile time errors on iOS 14.5
* code cleanup
* Updated references to -DDONT_WANT_ARM_ASM_OPTIMIZATIONS flag
* Add JIT support for non-jailbroken devices
* iOS: Add support for touch mouse handler
* Added a HAVE_IOS_TOUCHMOUSE preprocessor macro so that it builds under the iOS11_Metal xcode project
* Changed click-and-drag behavior to double tap hold and drag
* Visual improvements to the emulator keyboard: updated colors, improved key-press effect
* Any pad can control the menu
== DETAILS
I am not sure I've quite got it so that any pad can *open* the
menu, but I do have it so any pad can control it.
- split out the input processing into a separate method
- track down and squish some hairy bugs that boiled down to
bad pointer math
- it looks like `menu_driver.c` has a mix of line endings, so I
ran it through `dos2unix` so it has consistent line endings
again.
- verified that this change did not impact actual cores
* optimize out cumulative_bits
* Incorporate PR feedback
Many thanks to @jdgleaver for providing these optimizations.
* apply one more optimization
* (Metal/WindowListener) Fix duplicate symbol errors by
moving implementation of WindowListener to cocoa_common.m
* (Apple) Cleanup some conditionals
* (Cocoa) Cut down on OSX ifdefs in Cocoa-specific code
The input driver was using absolute coordinate arithmetic while making
use of delta changes for each coordinate, as a result the absolute
change netted to zero. This fixes that and tries to mitigate cursor
event sync issues (sync issues will require more work).