* Enable the SecondScreenPresentation class
* Update everything to enable second screen on android under GL and Vulkan. Still some issues!
* Some attempts to enable surface changes
* OpenGL is working on surface change, vulkan still no
* release surfaces (also fixed vulkan?)
* added and enabled layout setting
* resolve merge conflict
* rearrange switch cases to satisfy linux compiler
* openGL is working!
* several vk changes to try to fix crashes
* maybe vulkan is working?
* removing unnecessary code attempts
* Simplified secondscreen for better performance
* vk_platform.cpp: Fixed build failure caused by bad rebase
* vk_present_window.h: Removed stray newline
* Applied clang-format
* bug fix for odin 2
* Applied clang-format
* Updated license headers
* Moved SecondScreen class to org.citra.citra_emu.display
* Various formatting and readability improvements
* Added brackets where previously absent for readability
* Additional readability improvement
* RendererVulkan::NotifySurfaceChanged: Simplified condition checking
* change all references to "secondary screen" to "secondary display" to limit confusion with top screen / bottom screen
* rename main_window to main_present_window and second_window to secondary_present_window
* Reverted accidentally downgraded compatibility list submodule
* Removed unnecessary log message
* Applied clang-format
* Added a description to the Secondary Display Screen Layout setting
* Added `_ptr` suffix to `secondary_present_window`
This distinguishes it as a pointer, as `main_present_window` isn't a pointer, so there could be confusion on whether to use `.` or `->`
---------
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
* renderer_vulkan: remove out of context SDL_Quit call (fixes#1220)
SDL_Quit must not be called unless the application must exit or SDL is no longer needed
* comment: simplify, forgot init had ref-count
* renderer_vulkan: Disable FIFO when refresh rate is lower than ~60hz
Also disables FIFO when Apple low power mode is enabled, as it can limit the application framerate to 30fps
* renderer_vulkan.cpp: Put `IsLowRefreshRate` into anon namespace + make static
Uses SIMD operations on the RasterizerAccelerated::AnalyzeVertexArray
function, which is hot code. Slightly reduces GPU processing time
on all games.
This idea was suggested by an anonymous contributor.
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>
When the frame limit was set to 0 (unthrottled), the Vulkan present mode would be unintentionally set to FIFO, which caps out at the monitor's refresh rate
* Stereoscopic 3D Enhancements
- Increase maximum 3D depth to 255%
- Fix touch screen to only render 2D when separate window layout is used
- Cleanup some 3D option localizations
* qt: Added warning label below depth slider for values over 100%
* Fixed broken rendering for Interlaced, Reverse Interlaced and Anaglyph options when using 3D with seperate windows
* android: Added warning label below depth slider for values over 100%
* Fixed a bracket and break statement being incorrectly positioned
---------
Co-authored-by: oneup03 <oneup03@gmail.com>
* error checking for layout value from older config
* rename enum and update aspect ratio code
* rewrite LargeFrameLayout to support multiple positions
* add settings for smallscreenposition, fix minsize function
* fixed framebuffer from res scale (screenshots)
* add desktop UI for small screen position
* small screen position submenu on desktop
* fix int-float conversion warning
* rename Above and Below to hopefully fix linux issue
* Add Small Screen Position Setting to android settings menu
* fix sliders to work with floats, mostly
* fix android slider textinput ui
* change None enums in settings and cam_params
* Apply clang-format-18
* SettingsAdapter.kt: Make more null pointer exception resistant
* Updated license headers
* Code formatting nitpicks
* fix bug in main.ui that was hiding menu
* replace default layout with a special call to LargeFrame (like SideBySide does)
* fix bug when "large screen" is actually narrower
* edit documentation for LargeScreenLayout
* update PortraitTopFullFrameLayout to use LargeFrameLayout
* fix unary minus on unsigned int bug
* Applied formatting correction
* Added `const`s where appropriate
* android: Add mention of the bottom-right small screen position being the default
* review fixes + more constants
* refactor all Upright calculations to a reverseLayout method, simplifying code and reducing bugs
* Removed stray extra newline
* SettingsAdapter.kt: Fixed some strange indentation
* Removed unnecessary `if` in favour of direct value usage
---------
Co-authored-by: Reg Tiangha <rtiangha@users.noreply.github.com>
Co-authored-by: OpenSauce04 <opensauce04@gmail.com>