{"action":"created","issue":{"url":"https://api.github.com/repos/xbmc/xbmc/issues/14019","repository_url":"https://api.github.com/repos/xbmc/xbmc","labels_url":"https://api.github.com/repos/xbmc/xbmc/issues/14019/labels{/name}","comments_url":"https://api.github.com/repos/xbmc/xbmc/issues/14019/comments","events_url":"https://api.github.com/repos/xbmc/xbmc/issues/14019/events","html_url":"https://github.com/xbmc/xbmc/pull/14019","id":331357997,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk0MTA5NDc4","number":14019,"title":"Game OSD: Add rotation setting","user":{"login":"garbear","id":531482,"node_id":"MDQ6VXNlcjUzMTQ4Mg==","avatar_url":"https://avatars2.githubusercontent.com/u/531482?v=4","gravatar_id":"","url":"https://api.github.com/users/garbear","html_url":"https://github.com/garbear","followers_url":"https://api.github.com/users/garbear/followers","following_url":"https://api.github.com/users/garbear/following{/other_user}","gists_url":"https://api.github.com/users/garbear/gists{/gist_id}","starred_url":"https://api.github.com/users/garbear/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garbear/subscriptions","organizations_url":"https://api.github.com/users/garbear/orgs","repos_url":"https://api.github.com/users/garbear/repos","events_url":"https://api.github.com/users/garbear/events{/privacy}","received_events_url":"https://api.github.com/users/garbear/received_events","type":"User","site_admin":false},"labels":[{"id":1659142,"node_id":"MDU6TGFiZWwxNjU5MTQy","url":"https://api.github.com/repos/xbmc/xbmc/labels/Feature","name":"Feature","color":"0b02e1","default":false},{"id":1659186,"node_id":"MDU6TGFiZWwxNjU5MTg2","url":"https://api.github.com/repos/xbmc/xbmc/labels/Fix","name":"Fix","color":"0b02e1","default":false},{"id":499734879,"node_id":"MDU6TGFiZWw0OTk3MzQ4Nzk=","url":"https://api.github.com/repos/xbmc/xbmc/labels/Games","name":"Games","color":"e0218a","default":false},{"id":400751192,"node_id":"MDU6TGFiZWw0MDA3NTExOTI=","url":"https://api.github.com/repos/xbmc/xbmc/labels/v18%20Leia","name":"v18 Leia","color":"fbca04","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/xbmc/xbmc/milestones/108","html_url":"https://github.com/xbmc/xbmc/milestone/108","labels_url":"https://api.github.com/repos/xbmc/xbmc/milestones/108/labels","id":3158033,"node_id":"MDk6TWlsZXN0b25lMzE1ODAzMw==","number":108,"title":"Leia 18.0-alpha2","description":"","creator":{"login":"MartijnKaijser","id":907436,"node_id":"MDQ6VXNlcjkwNzQzNg==","avatar_url":"https://avatars1.githubusercontent.com/u/907436?v=4","gravatar_id":"","url":"https://api.github.com/users/MartijnKaijser","html_url":"https://github.com/MartijnKaijser","followers_url":"https://api.github.com/users/MartijnKaijser/followers","following_url":"https://api.github.com/users/MartijnKaijser/following{/other_user}","gists_url":"https://api.github.com/users/MartijnKaijser/gists{/gist_id}","starred_url":"https://api.github.com/users/MartijnKaijser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MartijnKaijser/subscriptions","organizations_url":"https://api.github.com/users/MartijnKaijser/orgs","repos_url":"https://api.github.com/users/MartijnKaijser/repos","events_url":"https://api.github.com/users/MartijnKaijser/events{/privacy}","received_events_url":"https://api.github.com/users/MartijnKaijser/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":394,"state":"open","created_at":"2018-03-03T07:09:50Z","updated_at":"2018-06-14T15:45:29Z","due_on":"2018-06-13T07:00:00Z","closed_at":null},"comments":1,"created_at":"2018-06-11T21:32:33Z","updated_at":"2018-06-14T19:59:20Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/xbmc/xbmc/pulls/14019","html_url":"https://github.com/xbmc/xbmc/pull/14019","diff_url":"https://github.com/xbmc/xbmc/pull/14019.diff","patch_url":"https://github.com/xbmc/xbmc/pull/14019.patch"},"body":"This adds \"Rotation\" to the list of settings in the Game OSD. RetroPlayer borrowed its geometry math from VP, which unfortunately is completely intertwined with local state. It also failed to handle all view modes for most rotations, resulting in stretched or minified images.\r\n\r\nThe math in the renderer has now been completely separated from state. In addition to fixing the geometry math, many improvements were made to RetroPlayer, mostly removing and splitting up code.\r\n\r\n## Motivation and Context\r\nMany games have black screens because RetroPlayer cannot handle images of different sizes. Fixing the geometry is the first step in tackling this bug. My motivation for adding Rotation was initially to test the geometry, but I figured it would be useful to leave in settings.\r\n\r\n## How Has This Been Tested?\r\nTested with landscape (8/7) and portrait (4/5) frames. The following view modes are now functioning correctly:\r\n\r\n* Normal: Fits to screen\r\n* Stretch 4:3: Stretches to 4:3 and fits to screen\r\n* Fullscreen: Stretches to fill the screen\r\n* Original: Original size\r\n\r\n## Screenshots (if appropriate):\r\nUpdated game settings in the OSD:\r\n![game osd settings](https://user-images.githubusercontent.com/531482/41260751-a7955d12-6d8d-11e8-8c17-0515d48f97be.png)\r\n\r\n\r\n\r\nRotating the game 90 degrees:\r\n![90 degree rotation](https://user-images.githubusercontent.com/531482/41257995-a0917ac8-6d83-11e8-9568-1a30c3f83864.png)\r\n\r\n\r\n\r\nStretching a rotated game to fullscreen in the View Modes setting:\r\n![fullscreen rotation](https://user-images.githubusercontent.com/531482/41258016-b21fcf56-6d83-11e8-8739-1cadc0f98947.png)\r\n\r\n\r\n\r\nTested in arcade cabinet mode:\r\n![arcade cabinet mode](https://user-images.githubusercontent.com/531482/41258180-1dc633e4-6d84-11e8-9e92-49ade75b1560.png)\r\n\r\n\r\n## Types of change\r\n<!--- What type of change does your code introduce? Put an `x` in all the boxes that apply like this: [X] -->\r\n- [x] Bug fix (non-breaking change which fixes an issue)\r\n- [ ] Improvement (non-breaking change which improves existing functionality)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [ ] Breaking change (fix or feature that would cause existing functionality to change)\r\n"},"comment":{"url":"https://api.github.com/repos/xbmc/xbmc/issues/comments/397420000","html_url":"https://github.com/xbmc/xbmc/pull/14019#issuecomment-397420000","issue_url":"https://api.github.com/repos/xbmc/xbmc/issues/14019","id":397420000,"node_id":"MDEyOklzc3VlQ29tbWVudDM5NzQyMDAwMA==","user":{"login":"garbear","id":531482,"node_id":"MDQ6VXNlcjUzMTQ4Mg==","avatar_url":"https://avatars2.githubusercontent.com/u/531482?v=4","gravatar_id":"","url":"https://api.github.com/users/garbear","html_url":"https://github.com/garbear","followers_url":"https://api.github.com/users/garbear/followers","following_url":"https://api.github.com/users/garbear/following{/other_user}","gists_url":"https://api.github.com/users/garbear/gists{/gist_id}","starred_url":"https://api.github.com/users/garbear/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/garbear/subscriptions","organizations_url":"https://api.github.com/users/garbear/orgs","repos_url":"https://api.github.com/users/garbear/repos","events_url":"https://api.github.com/users/garbear/events{/privacy}","received_events_url":"https://api.github.com/users/garbear/received_events","type":"User","site_admin":false},"created_at":"2018-06-14T19:59:20Z","updated_at":"2018-06-14T19:59:20Z","author_association":"MEMBER","body":"jenkins build and merge"}}
{"actor":{"display_login":"garbear"}}