Commit graph

1106 commits

Author SHA1 Message Date
Connor McLaughlin 29a09a3685 Introduce ControllerInterface class, port SDL interface over
This breaks controller support in the SDL frontend until it's ported
over to the common interface.
2020-03-22 00:49:46 +10:00
Connor McLaughlin afe2f96474 Qt: Fix display not updating after resize when paused
Fixes #104.
2020-03-18 22:27:45 +10:00
Connor McLaughlin 282998d0bb Qt: Add screenshot button 2020-03-16 00:06:39 +10:00
Connor McLaughlin 2bb992a702 HostDisplay: Add texture dumping/saving support 2020-03-16 00:03:49 +10:00
Connor McLaughlin fe2e6561d3 Qt: Add audio dumping options 2020-03-15 22:04:32 +10:00
Connor McLaughlin c3cb6ef393 Qt: Fix debug menu not updating selected GPU renderer
Fixes #93.
2020-03-14 12:34:41 +10:00
Connor McLaughlin 21ecf231d9 Qt: Show game list scanning progress visually 2020-03-12 15:32:34 +10:00
Connor McLaughlin 0e3bcfa7b5 Qt/HostInterface: Track main window pointer 2020-03-12 15:32:30 +10:00
Connor McLaughlin f71a03202b Qt: Add ProgressCallback implementation 2020-03-12 15:32:15 +10:00
Connor McLaughlin 8f39a0f154 Qt: Properly implement "Start Fullscreen" 2020-03-12 13:53:58 +10:00
Connor McLaughlin 2480624cbe Qt: Replace QWindow for display with QWidget base
Not as elegant, but it solves the input focus issue.
2020-03-12 13:53:51 +10:00
Connor McLaughlin e0a339ca96 GameList: Seperate disc region and console region 2020-03-12 13:51:29 +10:00
Connor McLaughlin e8a5259e68 Qt: Show save times in save state menu as well 2020-03-12 13:51:23 +10:00
Connor McLaughlin b2d0dd2d6c Qt/GameList: Update entry rather than ignoring same directory added twice 2020-03-10 23:10:20 +10:00
Connor McLaughlin ed0abf3912 Qt: Fix possible assertion failure when removing search directories 2020-03-10 22:59:17 +10:00
Connor McLaughlin bd25aa2f9d Qt: Include .chd in disc image filter
Fixes #77.
2020-03-10 00:18:13 +10:00
Connor McLaughlin 2004de7170 Qt: Fix controller rebinding not registering when paused 2020-03-06 21:55:10 +10:00
Connor McLaughlin 552a01a9b6 Qt: Disable LTCG on Release-only builds
It wasn't being used anyway.
2020-03-04 23:21:43 +10:00
Connor McLaughlin b405c01652 Qt: Save settings for column visibility/sorting in game list 2020-03-02 11:08:29 +10:00
Connor McLaughlin 5c0660744a Qt: Implement "File Title" column and toggling in game list 2020-03-02 11:08:25 +10:00
Connor McLaughlin c8954a3089 Qt: Fix game list sorting by column 2020-03-02 11:08:20 +10:00
Connor McLaughlin 69f03959aa Qt: Implement context menu in game list 2020-03-02 11:08:16 +10:00
Connor McLaughlin 0c40903f74 Qt: Fix double mutex lock on controller type change
Fixes #39.
2020-03-02 11:05:13 +10:00
Connor McLaughlin 635ab72b37 GPU: Implement "Scaled Dithering" option
Fixes #29.
2020-03-01 00:05:31 +10:00
Connor McLaughlin e1d4c0b9d4 HostDisplay: Fudge texture coordinates for better linear filtering 2020-02-29 00:18:24 +10:00
Connor McLaughlin e8e44991db GPU: Fix display in OpenGL renderer 2020-02-28 22:42:56 +10:00
Connor McLaughlin fcc0ae9571 GPU: Implement "Crop Mode" (none, overscan, all borders) 2020-02-28 17:01:01 +10:00
Connor McLaughlin f35970fcac FrontendCommon: Move input binding and some other logic from Qt to common 2020-02-28 17:00:09 +10:00
Connor McLaughlin ccbe6f0c42 Qt: Don't store floats in settings as QVariant data 2020-02-28 17:00:07 +10:00
Connor McLaughlin 07ba2ecd3d Settings: Simplify resolution scale enumeration 2020-02-28 16:59:55 +10:00
Connor McLaughlin 509f26ad7e Qt: Add some more default hotkeys (fullscreen/pause/poweroff)
Along with the previous commit, fixes #32
2020-02-26 19:31:12 +10:00
Connor McLaughlin e4ff8b0936 Qt: Add power off hotkey and confirmation message 2020-02-26 19:26:20 +10:00
Connor McLaughlin 27c9f2d834 Qt: Add a method for the emulation thread to focus the display widget 2020-02-26 19:26:14 +10:00
Connor McLaughlin e9dea6e0f7 HostInterface: Add a ConfirmMessage() method 2020-02-26 19:25:57 +10:00
Connor McLaughlin 8ffdcf1b7e Qt: Add a way for the emulation thread to request fullscreen state 2020-02-26 19:25:51 +10:00
Connor McLaughlin 460ff24248 Qt: Support SDL audio backend 2020-02-25 23:40:46 +10:00
Connor McLaughlin 223b52736f Qt: Populate audio backend drop-down 2020-02-25 23:40:42 +10:00
Connor McLaughlin c68d188029 Disable DXGI handling of ALT+ENTER
We manage fullscreen ourselves.
2020-02-24 18:19:20 +09:00
Connor McLaughlin 959a555274 CDROM: Implement asynchronous disc reading 2020-02-22 00:24:35 +09:00
Connor McLaughlin 784a5c789f Qt: Use precompiled D3D11 display shaders 2020-02-20 23:22:28 +09:00
Connor McLaughlin 11b90b2beb Qt: Fix mac build again 2020-02-18 00:31:05 +09:00
Connor McLaughlin 262331504f Qt: Support binding controller axes 2020-02-18 00:06:28 +09:00
Connor McLaughlin b7dfe06f74 Qt: Support axes in input binding widgets 2020-02-18 00:06:11 +09:00
Connor McLaughlin 208928b6dc Qt: Fix load state menu not refreshing after save 2020-02-16 00:15:18 +09:00
Connor McLaughlin 6456c5d63d Qt: Don't resume when booting without game code 2020-02-16 00:15:11 +09:00
Connor McLaughlin 06f4d72631 FrontendCommon: Use SDL_InitSubSystem() for lazy initialization 2020-02-16 00:15:05 +09:00
Connor McLaughlin e48e6141c8 Qt: Set display window size on context create not constructor
The size isn't known at construction time.
2020-02-16 00:15:00 +09:00
Connor McLaughlin 6d945439eb Qt: Fix possible crash/race when startup fails 2020-02-16 00:14:56 +09:00
Connor McLaughlin 59cf799491 Qt: Implement controller interface/binding 2020-02-16 00:14:53 +09:00
Connor McLaughlin 6a1206dde7 Frontends: Add option for "Increase Timer Resolution" 2020-02-16 00:14:51 +09:00
Connor McLaughlin e01cf0dccb Frontends: Implement auto save on exit/resume 2020-02-16 00:14:49 +09:00
Connor McLaughlin 5f3be68028 HostInterface: Notify host when controller types change 2020-02-16 00:14:44 +09:00
Connor McLaughlin 1e009133ae Rename 'Default' audio backend to 'SDL' 2020-02-16 00:14:35 +09:00
Connor McLaughlin d17f0a3923 Qt: Implement disc change in QtHostInterface 2020-02-16 00:14:33 +09:00
Connor McLaughlin e5740a5632 Qt: Pass QStrings by reference in HostInterface 2020-02-16 00:14:30 +09:00
Connor McLaughlin fd8ed08307 Move more logic from frontend to base HostInterface 2020-02-16 00:14:28 +09:00
Connor McLaughlin 153eded978 Qt: Use a single column in hotkey binding list 2020-02-16 00:14:23 +09:00
Connor McLaughlin 5c303705ac Qt: Use scroll area for hotkey binding list 2020-02-16 00:14:08 +09:00
Connor McLaughlin 1ce1e016ae Qt: Implement save state menus 2020-02-16 00:14:04 +09:00
Connor McLaughlin 97ea851097 Qt: Narrowing warning fix 2020-02-16 00:14:02 +09:00
Connor McLaughlin 745c2785b2 Move shared frontend code from SDL to a seperate project 2020-02-16 00:13:53 +09:00
Connor McLaughlin f5482cb3b6 Don't require OpenGL compatibility profile 2020-02-15 21:11:51 +09:00
Connor McLaughlin 65b5013da0 Qt: Work around indirect include of glext.h by QOpenGLContext on macOS
Hacky, but aside from not using glad I'm not sure what else to do.
2020-02-15 17:23:35 +09:00
Connor McLaughlin d7f8884291 Qt: Fix compilation under clang-9
Fixes #23.
2020-02-13 16:54:09 +09:00
Connor McLaughlin c008a5d523 Display: Fix bleeding from adjacent VRAM columns with linear filtering 2020-02-13 00:19:46 +09:00
Connor McLaughlin 70fe43a3ec System: Implement variable emulation speed 2020-02-11 12:02:42 +09:00
Connor McLaughlin a81a0c0f21 Qt: Add normalized float values to SettingWidgetBinder 2020-02-10 22:44:00 +09:00
Connor McLaughlin 2bf6912f39 Qt: Simplify emulation thread loop 2020-02-09 22:16:37 +09:00
Connor McLaughlin c820ddba79 HostInterface: Move throttle and perf stats to System class 2020-02-09 22:16:25 +09:00
Connor McLaughlin 895cefec60 Qt: Fix core trying to use core OpenGL shaders on OpenGL ES 2020-02-08 21:18:41 +09:00
Stenzek 8d9ce82281 Qt: Slightly rework desktop/GLES context creation 2020-02-06 21:02:47 +09:00
Stenzek 8654778298 Qt: OpenGL display window crash fix 2020-02-05 22:47:49 +09:00
Stenzek e4e15f234b Qt: Fix up debug CPU mode switch menu 2020-02-05 17:43:25 +09:00
Stenzek 93f85535eb Qt: Handle creation of ES contexts even when it wasn't specified 2020-02-05 17:42:50 +09:00
Stenzek edb6d7c97e Qt: Add debug settings to menu 2020-02-04 15:22:56 +09:00
Stenzek 6718f0442c Qt: Support QActions in SettingsWidgetBinder 2020-02-04 15:22:39 +09:00
Connor McLaughlin 899a8e0f03 Qt: Add "Use Debug Device" to GPU settings 2020-02-02 00:22:14 +10:00
Connor McLaughlin 96be414e3e Qt: Populate console region drop-down dynamically 2020-02-02 00:22:07 +10:00
Connor McLaughlin c72d86cf1b Qt: Hook up CPU execution mode setting 2020-02-01 00:05:20 +10:00
Connor McLaughlin 070e6c32d6 Frontends: Add .chd files to open filter 2020-01-30 20:06:15 +10:00
Connor McLaughlin 6624df1e8c Qt: Add CPU settings/emulation speed to console settings 2020-01-29 00:01:44 +10:00
Connor McLaughlin 5272ecd572 Qt: Support binding settings to QSliders 2020-01-29 00:01:35 +10:00
Connor McLaughlin faf2308695 Settings: Move set defaults to HostInterface so it can use user paths 2020-01-24 14:52:04 +10:00
Connor McLaughlin 2276975d62 Qt: Implement GitHub Repository/Issue Tracker links 2020-01-24 14:51:59 +10:00
Connor McLaughlin 1ed187fd57 Qt: Add hotkey for increasing/decreasing resolution scale 2020-01-24 14:51:57 +10:00
Connor McLaughlin 8148486a9f Qt: Add hotkey to toggle software rendering 2020-01-24 14:51:55 +10:00
Connor McLaughlin f2231d6669 HostInterface: Move setting update logic to base class 2020-01-24 14:51:52 +10:00
Connor McLaughlin 687772c4da HostDisplay: Move some derived class fields to base class 2020-01-24 14:51:36 +10:00
Connor McLaughlin 736d85b0f3 Qt: Implement display linear filtering 2020-01-24 14:51:34 +10:00
Connor McLaughlin abf48b6cc2 Qt: Update GPU settings when enhancements are changed 2020-01-24 14:51:33 +10:00
Connor McLaughlin f05f5aeb2b Qt: Implement browse button for BIOS path 2020-01-24 14:51:31 +10:00
Connor McLaughlin 2694181811 Qt: Hook up HostInterface::Report{Error,Message} 2020-01-24 14:51:30 +10:00
Connor McLaughlin 19cd91a684 Qt: Fix crash on exit when boot fails 2020-01-24 14:51:28 +10:00
Connor McLaughlin 78f984c412 Qt: Add automatic download of redump disc database for game list 2020-01-24 14:51:25 +10:00
Connor McLaughlin b937275073 Qt: Link with and copy Qt5Network library 2020-01-24 14:51:24 +10:00
Connor McLaughlin 65ae85eb7b Qt: Skeleton for audio settings 2020-01-24 14:51:13 +10:00
Connor McLaughlin b4c06fdcc6 GameList: Auto set cache/database path from user directory 2020-01-24 14:51:09 +10:00
Connor McLaughlin feb48899c3 Qt: Don't double-create game list 2020-01-24 14:51:07 +10:00
Connor McLaughlin 77b282862f HostInterface: Move running title info to System 2020-01-24 14:51:05 +10:00
Connor McLaughlin b3db3a1cc0 HostInterface: Share settings between SDL and Qt frontends 2020-01-24 14:51:03 +10:00
Connor McLaughlin 9456dc5d9b Qt: Power off system correctly when exiting 2020-01-24 14:50:56 +10:00
Connor McLaughlin 069bdd471c Qt: Stub saving resume state when powering off 2020-01-24 14:50:54 +10:00
Connor McLaughlin 0200b9ffc1 Qt: Hook up 'Add Game List Directory' function 2020-01-24 14:50:53 +10:00
Connor McLaughlin 98eb71aa3f Qt: Fix extra margins in pad settings panel 2020-01-24 14:50:52 +10:00
Connor McLaughlin 1cdd4e01fb Qt: Reorder settings categories 2020-01-24 14:50:51 +10:00
Connor McLaughlin f2d5ce74df Qt: Fix bug where render window is not focused leaving fullscreen 2020-01-24 14:50:47 +10:00
Connor McLaughlin 20b60e0f01 Qt: Update window title/save states from running title 2020-01-24 14:50:46 +10:00
Connor McLaughlin 82b4229f1b GameList: Move entry to global scope so it can be forward declared 2020-01-24 14:50:44 +10:00
Connor McLaughlin 183928b0f6 Qt: Skeleton of load/save state menus 2020-01-24 14:50:42 +10:00
Connor McLaughlin 1998aa96a4 Qt: Simplify Change Disc menu logic 2020-01-24 14:50:40 +10:00
Connor McLaughlin 69841d0a09 Qt: Move quick CPU/GPU switch to Debug menu 2020-01-24 14:49:54 +10:00
Connor McLaughlin 6737b3ec44 Qt: Drop Settings accessor from HostInterface
This should only be accessed on the emulation thread.
2020-01-24 14:49:53 +10:00
Connor McLaughlin d343743768 Qt: Safer GPU renderer switching 2020-01-24 14:49:51 +10:00
Connor McLaughlin c5282b99e1 Qt: Thread-safe QSettings access and updating 2020-01-24 14:49:49 +10:00
Connor McLaughlin 9562cbea56 Frontends: Add frame time performance counters 2020-01-24 14:49:47 +10:00
Connor McLaughlin 67710ca184 Qt: Add a signal when the game list selection is changed 2020-01-24 14:49:46 +10:00
Connor McLaughlin 99af858562 Qt/GameList: Fix incorrect game booting when sorted 2020-01-24 14:49:44 +10:00
Connor McLaughlin ed1ac6df4a Frontend: Fix error in swap chain ResizeBuffers() 2020-01-20 17:26:57 +10:00
Connor McLaughlin b9538a55f5 Settings: Add option for creating a debug GPU device 2020-01-19 14:54:19 +10:00
Connor McLaughlin 46033898ba Frontends: Use DXGI_PRESENT_FLAG_ALLOW_TEARING for presentatation 2020-01-18 18:12:09 +10:00
Connor McLaughlin 28efc50a04 Qt: Fix worker thread lockup on shutdown 2020-01-11 14:21:08 +10:00
Connor McLaughlin d52d6252a9 Qt: Remove QAudioOutput-based audio stream 2020-01-11 14:04:58 +10:00
Connor McLaughlin 8f6ac437ab Frontends: Add cubeb as audio backend option 2020-01-11 13:51:44 +10:00
Connor McLaughlin 9586970a9f AudioStream: Add cubeb implementation 2020-01-11 13:51:41 +10:00
Connor McLaughlin 71c1e243fe Remove YBaseLib dependency 2020-01-10 13:40:53 +10:00
Connor McLaughlin 1c2c4c8489 Qt: Fix emulation thread using 100% CPU when idle 2020-01-10 13:28:13 +10:00
Connor McLaughlin c52040434a Core: Linux warning fixes 2020-01-09 08:46:52 +10:00
Connor McLaughlin 2611e64459 Qt: Implement game list sorting 2020-01-08 15:01:04 +10:00
Connor McLaughlin 64426a0be2 Qt: Fix shutdown-and-restart failing in D3D11 renderer 2020-01-08 14:00:28 +10:00
Connor McLaughlin 25f55690f2 Qt: Add icons for game list entry type (disc/exe) 2020-01-08 13:50:44 +10:00
Connor McLaughlin ecc8109d43 Qt: Show flags for region instead of text 2020-01-08 13:39:19 +10:00
Connor McLaughlin 9402c7c145 Qt: Fix double-free/crash on shutdown 2020-01-08 13:39:04 +10:00
Connor McLaughlin 048c6835e5 Qt: Don't highlight headings in game list 2020-01-08 13:38:31 +10:00
Connor McLaughlin c03c1451fe GameList: Support caching entries 2020-01-08 13:37:43 +10:00
Connor McLaughlin e7bebb0105 Qt: Support runtime renderer switching 2020-01-07 18:55:36 +10:00
Connor McLaughlin c6d6b0405f Qt: Don't create imgui.ini 2020-01-07 18:55:26 +10:00
Connor McLaughlin 686df4a203 Qt: Improve imgui hidpi scaling 2020-01-07 18:52:33 +10:00
Connor McLaughlin 168eb5fe2d Qt: Add D3D11 display window implementation 2020-01-07 15:54:44 +10:00
Connor McLaughlin 5076d7dfe8 Qt: Fix handling of display window size in hidpi 2020-01-07 14:27:48 +10:00
Connor McLaughlin 1b7be01507 Qt: Implement audio output 2020-01-07 14:18:51 +10:00
Connor McLaughlin 207c75e6eb Qt: Implement fullscreen 2020-01-06 16:27:39 +10:00
Connor McLaughlin 87889a13e0 Qt: Properly handle modifier keys for input 2020-01-06 15:14:47 +10:00
Connor McLaughlin 6d5eca13a6 Qt: Ignore key repeat events for input 2020-01-06 14:08:15 +10:00
Connor McLaughlin d61f12cb4e Qt: Set focus to display window when starting 2020-01-06 14:08:00 +10:00
Connor McLaughlin 40e1b7af23 Qt: Initial hotkey implementation 2020-01-05 12:46:03 +10:00
Connor McLaughlin d88fc20434 Qt: GPU settings tab 2020-01-03 17:51:58 +10:00
Connor McLaughlin fbf5e7f0e3 Qt: Enable DPI scaling 2020-01-03 17:51:45 +10:00
Connor McLaughlin bea15c97cd Qt: ImGui support 2020-01-02 19:14:16 +10:00
Connor McLaughlin 9436ffc806 Qt: Move some functionalty from OpenGLDisplayWindow into QtDisplayWindow 2020-01-02 17:45:25 +10:00
Connor McLaughlin ac6a7bad3f Qt: Hack for setting swap interval at runtime (currently Windows only) 2020-01-02 16:33:52 +10:00
Connor McLaughlin b135b32159 Qt: Add config and implementation for basic controller input 2020-01-02 16:13:03 +10:00
Connor McLaughlin eb7659368e Qt: Add natvis file for Qt data structures 2020-01-02 16:11:22 +10:00
Connor McLaughlin 3bdafa1932 Qt: Fix double-scanning of game list at start 2020-01-01 14:02:45 +10:00
Connor McLaughlin 77a47c87d2 Qt: Hook up console settings 2020-01-01 14:01:58 +10:00
Connor McLaughlin 62e1829ec9 Qt: Fix recursive setting toggle in game list settings 2019-12-31 16:40:24 +10:00
Connor McLaughlin f3e9c3ec8c Add initial work on Qt frontend 2019-12-31 16:18:30 +10:00