{"action":"created","issue":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/5288","repository_url":"https://api.github.com/repos/MarlinFirmware/Marlin","labels_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/5288/labels{/name}","comments_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/5288/comments","events_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/5288/events","html_url":"https://github.com/MarlinFirmware/Marlin/pull/5288","id":191408977,"number":5288,"title":"Optimize graphical display with selective rendering","user":{"login":"thinkyhead","id":698003,"avatar_url":"https://avatars.githubusercontent.com/u/698003?v=3","gravatar_id":"","url":"https://api.github.com/users/thinkyhead","html_url":"https://github.com/thinkyhead","followers_url":"https://api.github.com/users/thinkyhead/followers","following_url":"https://api.github.com/users/thinkyhead/following{/other_user}","gists_url":"https://api.github.com/users/thinkyhead/gists{/gist_id}","starred_url":"https://api.github.com/users/thinkyhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thinkyhead/subscriptions","organizations_url":"https://api.github.com/users/thinkyhead/orgs","repos_url":"https://api.github.com/users/thinkyhead/repos","events_url":"https://api.github.com/users/thinkyhead/events{/privacy}","received_events_url":"https://api.github.com/users/thinkyhead/received_events","type":"User","site_admin":false},"labels":[{"id":92052497,"url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/Improvement","name":"Improvement","color":"009800","default":false},{"id":421766514,"url":"https://api.github.com/repos/MarlinFirmware/Marlin/labels/Support:%20LCD%20&%20Controllers","name":"Support: LCD & Controllers","color":"006b75","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":17,"created_at":"2016-11-24T00:33:43Z","updated_at":"2016-11-25T18:33:44Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/pulls/5288","html_url":"https://github.com/MarlinFirmware/Marlin/pull/5288","diff_url":"https://github.com/MarlinFirmware/Marlin/pull/5288.diff","patch_url":"https://github.com/MarlinFirmware/Marlin/pull/5288.patch"},"body":"The draw loop wastes a lot of cycles because it re-calculates the whole display 2 or more times per screen render. This PR employs two strategies to reduce rendering time:\r\n\r\n- Add bounds-checking so that only items within the current page being rendered are drawn.\r\n- For XYZ —overlapping both halves of the screen— the value strings are cached.\r\n\r\nAdditionally:\r\n- Use `uint8_t` for u8g coordinates. (u8g also supplies a `u8g_int` type)\r\n- Use `const` for function arguments and locals, where appropriate.\r\n\r\nI look forward to your test results!"},"comment":{"url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/comments/263008952","html_url":"https://github.com/MarlinFirmware/Marlin/pull/5288#issuecomment-263008952","issue_url":"https://api.github.com/repos/MarlinFirmware/Marlin/issues/5288","id":263008952,"user":{"login":"thinkyhead","id":698003,"avatar_url":"https://avatars.githubusercontent.com/u/698003?v=3","gravatar_id":"","url":"https://api.github.com/users/thinkyhead","html_url":"https://github.com/thinkyhead","followers_url":"https://api.github.com/users/thinkyhead/followers","following_url":"https://api.github.com/users/thinkyhead/following{/other_user}","gists_url":"https://api.github.com/users/thinkyhead/gists{/gist_id}","starred_url":"https://api.github.com/users/thinkyhead/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thinkyhead/subscriptions","organizations_url":"https://api.github.com/users/thinkyhead/orgs","repos_url":"https://api.github.com/users/thinkyhead/repos","events_url":"https://api.github.com/users/thinkyhead/events{/privacy}","received_events_url":"https://api.github.com/users/thinkyhead/received_events","type":"User","site_admin":false},"created_at":"2016-11-25T18:33:44Z","updated_at":"2016-11-25T18:33:44Z","body":"> they were still missing PROGMEM support\r\n\r\nOliver is being very responsive! He has already submitted this for us olikraus/u8g2#94"}}
{"actor":{"display_login":"thinkyhead"}}