{"action":"created","issue":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/5983","repository_url":"https://api.github.com/repos/mapbox/mapbox-gl-native","labels_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/5983/labels{/name}","comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/5983/comments","events_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/5983/events","html_url":"https://github.com/mapbox/mapbox-gl-native/issues/5983","id":170947983,"number":5983,"title":"Avoid animating to the same camera options","user":{"login":"1ec5","id":1231218,"avatar_url":"https://avatars.githubusercontent.com/u/1231218?v=3","gravatar_id":"","url":"https://api.github.com/users/1ec5","html_url":"https://github.com/1ec5","followers_url":"https://api.github.com/users/1ec5/followers","following_url":"https://api.github.com/users/1ec5/following{/other_user}","gists_url":"https://api.github.com/users/1ec5/gists{/gist_id}","starred_url":"https://api.github.com/users/1ec5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/1ec5/subscriptions","organizations_url":"https://api.github.com/users/1ec5/orgs","repos_url":"https://api.github.com/users/1ec5/repos","events_url":"https://api.github.com/users/1ec5/events{/privacy}","received_events_url":"https://api.github.com/users/1ec5/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/labels/Core%20GL","name":"Core GL","color":"000000"},{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/labels/navigation","name":"navigation","color":"fbca04"},{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/labels/performance","name":"performance","color":"0052cc"}],"state":"open","locked":false,"assignee":{"login":"incanus","id":17722,"avatar_url":"https://avatars.githubusercontent.com/u/17722?v=3","gravatar_id":"","url":"https://api.github.com/users/incanus","html_url":"https://github.com/incanus","followers_url":"https://api.github.com/users/incanus/followers","following_url":"https://api.github.com/users/incanus/following{/other_user}","gists_url":"https://api.github.com/users/incanus/gists{/gist_id}","starred_url":"https://api.github.com/users/incanus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/incanus/subscriptions","organizations_url":"https://api.github.com/users/incanus/orgs","repos_url":"https://api.github.com/users/incanus/repos","events_url":"https://api.github.com/users/incanus/events{/privacy}","received_events_url":"https://api.github.com/users/incanus/received_events","type":"User","site_admin":false},"assignees":[{"login":"incanus","id":17722,"avatar_url":"https://avatars.githubusercontent.com/u/17722?v=3","gravatar_id":"","url":"https://api.github.com/users/incanus","html_url":"https://github.com/incanus","followers_url":"https://api.github.com/users/incanus/followers","following_url":"https://api.github.com/users/incanus/following{/other_user}","gists_url":"https://api.github.com/users/incanus/gists{/gist_id}","starred_url":"https://api.github.com/users/incanus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/incanus/subscriptions","organizations_url":"https://api.github.com/users/incanus/orgs","repos_url":"https://api.github.com/users/incanus/repos","events_url":"https://api.github.com/users/incanus/events{/privacy}","received_events_url":"https://api.github.com/users/incanus/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/milestones/37","html_url":"https://github.com/mapbox/mapbox-gl-native/milestones/ios-v3.4.0","labels_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/milestones/37/labels","id":1783804,"number":37,"title":"ios-v3.4.0","description":"The release will go through a series of alpha and beta versions until it reaches a stable state and is made generally available. In the alpha phase, we publish a version that have enough new features as to be useful for developers who would like to test and help report issues. In the beta phase, we've locked down new feature development and are focused mostly on stability issues. In general, after the first alpha, we aim to release a new alpha (or beta) version once per week.\r\n\r\n## Releases\r\n\r\n- Alpha 1: 8/11\r\n- Alpha 2: 8/18 (planned)\r\n","creator":{"login":"friedbunny","id":1198851,"avatar_url":"https://avatars.githubusercontent.com/u/1198851?v=3","gravatar_id":"","url":"https://api.github.com/users/friedbunny","html_url":"https://github.com/friedbunny","followers_url":"https://api.github.com/users/friedbunny/followers","following_url":"https://api.github.com/users/friedbunny/following{/other_user}","gists_url":"https://api.github.com/users/friedbunny/gists{/gist_id}","starred_url":"https://api.github.com/users/friedbunny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/friedbunny/subscriptions","organizations_url":"https://api.github.com/users/friedbunny/orgs","repos_url":"https://api.github.com/users/friedbunny/repos","events_url":"https://api.github.com/users/friedbunny/events{/privacy}","received_events_url":"https://api.github.com/users/friedbunny/received_events","type":"User","site_admin":false},"open_issues":50,"closed_issues":30,"state":"open","created_at":"2016-05-23T22:50:20Z","updated_at":"2016-08-16T22:42:38Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2016-08-12T19:59:29Z","updated_at":"2016-08-16T23:51:43Z","closed_at":null,"body":"If you attempt to change the camera to an `mbgl::CameraOptions` that’s identical to the current `CameraOptions`, `mbgl::Transform` still goes through the entire animation machinery. We do [avoid modifying the `TransformState`](https://github.com/mapbox/mapbox-gl-native/blob/532c659b22c73eac04c7d643aff6ac5f1cc9f55a/src/mbgl/map/transform.cpp#L151) in that case, but by then it’s too late: we’ve already kicked off an animation timer and all the calculations for each step of the animation. The animation timer updates the map on a schedule regardless of whether the transform state changes.\r\n\r\nThere are multiple places where we can short-circuit the animation, and we should consider all of them to avoid severe energy consumption in navigation use cases, which require constant animation.\r\n\r\nIncidentally, when we bail for a no-op animation, should the completion callback by called immediately, or still on a delay?\r\n\r\n/cc @kkaefer @friedbunny"},"comment":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/comments/240274523","html_url":"https://github.com/mapbox/mapbox-gl-native/issues/5983#issuecomment-240274523","issue_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/5983","id":240274523,"user":{"login":"incanus","id":17722,"avatar_url":"https://avatars.githubusercontent.com/u/17722?v=3","gravatar_id":"","url":"https://api.github.com/users/incanus","html_url":"https://github.com/incanus","followers_url":"https://api.github.com/users/incanus/followers","following_url":"https://api.github.com/users/incanus/following{/other_user}","gists_url":"https://api.github.com/users/incanus/gists{/gist_id}","starred_url":"https://api.github.com/users/incanus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/incanus/subscriptions","organizations_url":"https://api.github.com/users/incanus/orgs","repos_url":"https://api.github.com/users/incanus/repos","events_url":"https://api.github.com/users/incanus/events{/privacy}","received_events_url":"https://api.github.com/users/incanus/received_events","type":"User","site_admin":false},"created_at":"2016-08-16T23:51:43Z","updated_at":"2016-08-16T23:51:43Z","body":"Beginning in https://github.com/mapbox/mapbox-gl-native/commit/4ef336ecb3e1986238e221bd0676d9f220056e1f I am gating each viewport change method on `MGLMapView` (center, zoom, direction, bounds, camera, etc. with or without padding) by checks to bail early (possibly immediately running a passed completion callback in the main thread) before attempting any further mutation of the viewport state. \r\n\r\nI also abstracted some routines out that we use more than once and created a set of convenience handlers for checking the viewport changes by passing some or all of these parameters. \r\n\r\nThis is just iOS to start. \r\n\r\n/cc @1ec5 @friedbunny"}}
{"actor":{"display_login":"incanus"}}