icedcoffee icon indicating copy to clipboard operation
icedcoffee copied to clipboard

Control event dispatch exhibits bad performance on iOS

Open starbugs opened this issue 12 years ago • 1 comments

ICTouchEventDispatcher performs hit tests on each touchesMoved: event received, which results in bad performance when dragging over ICControl-based nodes. A draggable control will receive touchesMoved: events too late on iOS devices, resulting in a serious lag when dragging over the touch display.

starbugs avatar Sep 11 '12 21:09 starbugs

The issue has been fixed partially by avoiding processing multiple touchesMoved: events per frame in control event dispatch on iOS. This allows for acceptable performance in a simple test environment where a single touch is processed. However, even for a single touch (continuously moving) the framerate drops from 60 FPS to about 40 FPS on an iPhone 4S. Further optimizations for the iOS platform are required to improve this.

This fix may cause problems in configurations using on demand frame updates. This will be fixed as soon as extensive testing is done.

starbugs avatar Sep 16 '12 21:09 starbugs