diff options
| author | Filoppi <filippotarpini@hotmail.it> | 2023-09-09 15:48:37 +0300 |
|---|---|---|
| committer | Filoppi <filippotarpini@hotmail.it> | 2023-12-18 00:28:14 +0200 |
| commit | 24004af8145a7babe0d0fcfb1b18231dda665aff (patch) | |
| tree | 8daacb2069e6275ea3b6bc0fcfd66271b1be2b0e /Source/Core/VideoCommon | |
| parent | b4bfc4feba19fe314913bceed913cebfc6d19372 (diff) | |
Video: polish aspect ratio related code comments to make it clearer
Diffstat (limited to 'Source/Core/VideoCommon')
| -rw-r--r-- | Source/Core/VideoCommon/Present.h | 6 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/VertexManagerBase.cpp | 5 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/Widescreen.cpp | 1 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/Widescreen.h | 3 |
4 files changed, 12 insertions, 3 deletions
diff --git a/Source/Core/VideoCommon/Present.h b/Source/Core/VideoCommon/Present.h index c8bbf44257..82942e0270 100644 --- a/Source/Core/VideoCommon/Present.h +++ b/Source/Core/VideoCommon/Present.h @@ -46,7 +46,7 @@ public: void ConfigChanged(u32 changed_bits); - // Display resolution + // Window resolution (display resolution if fullscreen) int GetBackbufferWidth() const { return m_backbuffer_width; } int GetBackbufferHeight() const { return m_backbuffer_height; } float GetBackbufferScale() const { return m_backbuffer_scale; } @@ -58,6 +58,7 @@ public: void UpdateDrawRectangle(); + // Returns the target aspect ratio the XFB output should be drawn with. float CalculateDrawAspectRatio(bool allow_stretch = true) const; // Crops the target rectangle to the framebuffer dimensions, reducing the size of the source @@ -126,6 +127,9 @@ private: Common::Flag m_surface_changed; Common::Flag m_surface_resized; + // The presentation rectangle. + // Width and height correspond to the final output resolution. + // Offsets imply black borders (if the window aspect ratio doesn't match the game's one). MathUtil::Rectangle<int> m_target_rectangle = {}; RcTcacheEntry m_xfb_entry; diff --git a/Source/Core/VideoCommon/VertexManagerBase.cpp b/Source/Core/VideoCommon/VertexManagerBase.cpp index ac4446abba..35239d4e66 100644 --- a/Source/Core/VideoCommon/VertexManagerBase.cpp +++ b/Source/Core/VideoCommon/VertexManagerBase.cpp @@ -91,8 +91,9 @@ static bool IsAnamorphicProjection(const Projection::Raw& projection, const View const VideoConfig& config) { // If ratio between our projection and viewport aspect ratios is similar to 16:9 / 4:3 - // we have an anamorphic projection. This value can be overridden - // by a GameINI. + // we have an anamorphic projection. This value can be overridden by a GameINI. + // Game cheats that change the aspect ratio to natively unsupported ones + // won't be automatically recognized here. return std::abs(CalculateProjectionViewportRatio(projection, viewport) - config.widescreen_heuristic_widescreen_ratio) < diff --git a/Source/Core/VideoCommon/Widescreen.cpp b/Source/Core/VideoCommon/Widescreen.cpp index 4ca1ac3ccd..7591d098a4 100644 --- a/Source/Core/VideoCommon/Widescreen.cpp +++ b/Source/Core/VideoCommon/Widescreen.cpp @@ -53,6 +53,7 @@ void WidescreenManager::Update() } // Heuristic to detect if a GameCube game is in 16:9 anamorphic widescreen mode. +// Cheats that change the game aspect ratio to natively unsupported ones won't be recognized here. void WidescreenManager::UpdateWidescreenHeuristic() { const auto flush_statistics = g_vertex_manager->ResetFlushAspectRatioCount(); diff --git a/Source/Core/VideoCommon/Widescreen.h b/Source/Core/VideoCommon/Widescreen.h index c8dc5847ec..586aa48e84 100644 --- a/Source/Core/VideoCommon/Widescreen.h +++ b/Source/Core/VideoCommon/Widescreen.h @@ -11,11 +11,14 @@ class PointerWrap; // This class is responsible for tracking the game's aspect ratio. +// This exclusively supports 4:3 or 16:9 detection by default. class WidescreenManager { public: WidescreenManager(); + // Just a helper to tell whether the game seems to be running in widescreen, + // or if it's being forced to. bool IsGameWidescreen() const { return m_is_game_widescreen; } void DoState(PointerWrap& p); |
