-
-
Notifications
You must be signed in to change notification settings - Fork 6.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Game OSD: Add rotation setting #14019
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
garbear
added
Type: Feature
non-breaking change which adds functionality
Type: Fix
non-breaking change which fixes an issue
v18 Leia
Component: Games
labels
Jun 11, 2018
garbear
changed the title
Game OSD: Add rotation setting.
Game OSD: Add rotation setting
Jun 11, 2018
jenkins4kodi
added
the
Rebase needed
PR that does not apply/merge cleanly to current base branch
label
Jun 12, 2018
jenkins4kodi
removed
the
Rebase needed
PR that does not apply/merge cleanly to current base branch
label
Jun 12, 2018
jenkins build this please |
Scaling method is swapped for a std::string, which allows seamless integration with shader preset paths. Video filter logic has been encapsulated within CRenderVideoSettings.
This fixes the geometry of 90° and 270° rotations for all view modes: * Normal: Fits to screen * Stretch 4:3: Stretches to 4:3 and fits to screen * Fullscreen: Stretches to fill the screen * Original: Original size Geometry from VideoPlayer was heavy intertwined with local state. This refactors all geometry math into a new class, CRenderUtils. The operations have been organized and greatly simplified.
jenkins build and merge |
build errors unrelated (they both passed the previous run) |
6 tasks
70 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
Component: Games
Type: Feature
non-breaking change which adds functionality
Type: Fix
non-breaking change which fixes an issue
v18 Leia
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
The 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.
Motivation and Context
Many 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.
How Has This Been Tested?
Tested with landscape (8/7) and portrait (4/5) frames. The following view modes are now functioning correctly:
Screenshots (if appropriate):
Updated game settings in the OSD:
Rotating the game 90 degrees:
Stretching a rotated game to fullscreen in the View Modes setting:
Tested in arcade cabinet mode:
Types of change